[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

mitz at apple.com mitz at apple.com
Wed Dec 22 11:19:32 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 5c265e625d3a8e2ea885a381d598f6a846139e80
Author: mitz at apple.com <mitz at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Jul 19 16:48:36 2010 +0000

    <rdar://problem/7232109> Unpainted white area appears at the edge of the page when body has bg color
    https://bugs.webkit.org/show_bug.cgi?id=34913
    
    Reviewed by Simon Fraser.
    
    WebCore:
    
    Tests: fast/repaint/view-background-from-body-1.html
           fast/repaint/view-background-from-body-2.html
    
    * rendering/RenderBox.cpp:
    (WebCore::RenderBox::styleWillChange): If this is the body renderer and its current style is
    null, repaint the view, similarly to how the view is repainted for any repaint-or-higher
    style changes.
    * rendering/RenderObjectChildList.cpp:
    (WebCore::RenderObjectChildList::removeChildNode): If the removed child is the body renderer,
    repaint the view, in case the body’s background was propagated to the view.
    
    LayoutTests:
    
    * fast/repaint/view-background-from-body-1.html: Added.
    * fast/repaint/view-background-from-body-2.html: Added.
    * platform/mac/fast/repaint/view-background-from-body-1-expected.checksum: Added.
    * platform/mac/fast/repaint/view-background-from-body-1-expected.png: Added.
    * platform/mac/fast/repaint/view-background-from-body-1-expected.txt: Added.
    * platform/mac/fast/repaint/view-background-from-body-2-expected.checksum: Added.
    * platform/mac/fast/repaint/view-background-from-body-2-expected.png: Added.
    * platform/mac/fast/repaint/view-background-from-body-2-expected.txt: Added.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63672 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index ee7bcd4..c53de6f 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,19 @@
+2010-07-19  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        <rdar://problem/7232109> Unpainted white area appears at the edge of the page when body has bg color
+        https://bugs.webkit.org/show_bug.cgi?id=34913
+
+        * fast/repaint/view-background-from-body-1.html: Added.
+        * fast/repaint/view-background-from-body-2.html: Added.
+        * platform/mac/fast/repaint/view-background-from-body-1-expected.checksum: Added.
+        * platform/mac/fast/repaint/view-background-from-body-1-expected.png: Added.
+        * platform/mac/fast/repaint/view-background-from-body-1-expected.txt: Added.
+        * platform/mac/fast/repaint/view-background-from-body-2-expected.checksum: Added.
+        * platform/mac/fast/repaint/view-background-from-body-2-expected.png: Added.
+        * platform/mac/fast/repaint/view-background-from-body-2-expected.txt: Added.
+
 2010-07-19  Anders Carlsson  <andersca at apple.com>
 
         Reviewed by Adam Roben.
diff --git a/LayoutTests/fast/repaint/view-background-from-body-1.html b/LayoutTests/fast/repaint/view-background-from-body-1.html
new file mode 100644
index 0000000..1319830
--- /dev/null
+++ b/LayoutTests/fast/repaint/view-background-from-body-1.html
@@ -0,0 +1,12 @@
+<head>
+    <!-- The entire viewport should be white, with no red margin. -->
+    <script src="resources/repaint.js" type="text/javascript"></script>
+    <script type="text/javascript">
+       function repaintTest()
+       {
+            document.body.style.display = "none";
+       }
+    </script>
+</head>
+<body onload="runRepaintTest();" style="margin: 50px; background-color: red;">
+</body>
diff --git a/LayoutTests/fast/repaint/view-background-from-body-2.html b/LayoutTests/fast/repaint/view-background-from-body-2.html
new file mode 100644
index 0000000..a1d1709
--- /dev/null
+++ b/LayoutTests/fast/repaint/view-background-from-body-2.html
@@ -0,0 +1,12 @@
+<head>
+    <!-- The entire viewport should be solid blue, with no white margin. -->
+    <script src="resources/repaint.js" type="text/javascript"></script>
+    <script type="text/javascript">
+       function repaintTest()
+       {
+            document.body.style.removeProperty("display");
+       }
+    </script>
+</head>
+<body onload="runRepaintTest();" style="margin: 50px; background-color: blue; display: none;">
+</body>
diff --git a/LayoutTests/platform/chromium-mac/fast/js/missing-title-end-tag-js-expected.checksum b/LayoutTests/platform/mac/fast/repaint/view-background-from-body-1-expected.checksum
similarity index 100%
copy from LayoutTests/platform/chromium-mac/fast/js/missing-title-end-tag-js-expected.checksum
copy to LayoutTests/platform/mac/fast/repaint/view-background-from-body-1-expected.checksum
diff --git a/LayoutTests/platform/mac/fast/repaint/view-background-from-body-1-expected.png b/LayoutTests/platform/mac/fast/repaint/view-background-from-body-1-expected.png
new file mode 100644
index 0000000..3892168
Binary files /dev/null and b/LayoutTests/platform/mac/fast/repaint/view-background-from-body-1-expected.png differ
diff --git a/LayoutTests/platform/mac/fast/events/onloadFrameCrash-expected.txt b/LayoutTests/platform/mac/fast/repaint/view-background-from-body-1-expected.txt
similarity index 100%
copy from LayoutTests/platform/mac/fast/events/onloadFrameCrash-expected.txt
copy to LayoutTests/platform/mac/fast/repaint/view-background-from-body-1-expected.txt
diff --git a/LayoutTests/platform/mac/fast/repaint/view-background-from-body-2-expected.checksum b/LayoutTests/platform/mac/fast/repaint/view-background-from-body-2-expected.checksum
new file mode 100644
index 0000000..9920a44
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/repaint/view-background-from-body-2-expected.checksum
@@ -0,0 +1 @@
+483a463f69d2fd454249a4813d925c6c
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/fast/repaint/view-background-from-body-2-expected.png b/LayoutTests/platform/mac/fast/repaint/view-background-from-body-2-expected.png
new file mode 100644
index 0000000..be3747e
Binary files /dev/null and b/LayoutTests/platform/mac/fast/repaint/view-background-from-body-2-expected.png differ
diff --git a/LayoutTests/platform/mac/fast/repaint/view-background-from-body-2-expected.txt b/LayoutTests/platform/mac/fast/repaint/view-background-from-body-2-expected.txt
new file mode 100644
index 0000000..530ef06
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/repaint/view-background-from-body-2-expected.txt
@@ -0,0 +1,5 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (50,50) size 700x500 [bgcolor=#0000FF]
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 78b0a7a..4017923 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,21 @@
+2010-07-19  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        <rdar://problem/7232109> Unpainted white area appears at the edge of the page when body has bg color
+        https://bugs.webkit.org/show_bug.cgi?id=34913
+
+        Tests: fast/repaint/view-background-from-body-1.html
+               fast/repaint/view-background-from-body-2.html
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::styleWillChange): If this is the body renderer and its current style is
+        null, repaint the view, similarly to how the view is repainted for any repaint-or-higher
+        style changes.
+        * rendering/RenderObjectChildList.cpp:
+        (WebCore::RenderObjectChildList::removeChildNode): If the removed child is the body renderer,
+        repaint the view, in case the body’s background was propagated to the view.
+
 2010-07-19  Adam Roben  <aroben at apple.com>
 
         Fix an assertion when a plugin returns -1 from NPP_Write
diff --git a/WebCore/rendering/RenderBox.cpp b/WebCore/rendering/RenderBox.cpp
index f8d9497..2020003 100644
--- a/WebCore/rendering/RenderBox.cpp
+++ b/WebCore/rendering/RenderBox.cpp
@@ -3,7 +3,7 @@
  *           (C) 1999 Antti Koivisto (koivisto at kde.org)
  *           (C) 2005 Allan Sandfeld Jensen (kde at carewolf.com)
  *           (C) 2005, 2006 Samuel Weinig (sam.weinig at gmail.com)
- * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -145,7 +145,9 @@ void RenderBox::styleWillChange(StyleDifference diff, const RenderStyle* newStyl
             if (isFloating() && !isPositioned() && (newStyle->position() == AbsolutePosition || newStyle->position() == FixedPosition))
                 removeFloatingOrPositionedChildFromBlockLists();
         }
-    }
+    } else if (newStyle && isBody())
+        view()->repaint();
+
     if (FrameView *frameView = view()->frameView()) {
         bool newStyleIsFixed = newStyle && newStyle->position() == FixedPosition;
         bool oldStyleIsFixed = style() && style()->position() == FixedPosition;
diff --git a/WebCore/rendering/RenderObjectChildList.cpp b/WebCore/rendering/RenderObjectChildList.cpp
index 6775537..323dc20 100644
--- a/WebCore/rendering/RenderObjectChildList.cpp
+++ b/WebCore/rendering/RenderObjectChildList.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009 Apple Inc.  All rights reserved.
+ * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -62,9 +62,12 @@ RenderObject* RenderObjectChildList::removeChildNode(RenderObject* owner, Render
     // disappears gets repainted properly.
     if (!owner->documentBeingDestroyed() && fullRemove && oldChild->m_everHadLayout) {
         oldChild->setNeedsLayoutAndPrefWidthsRecalc();
-        oldChild->repaint();
+        if (oldChild->isBody())
+            owner->view()->repaint();
+        else
+            oldChild->repaint();
     }
-        
+
     // If we have a line box wrapper, delete it.
     if (oldChild->isBox())
         toRenderBox(oldChild)->deleteLineBoxWrapper();

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list