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

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 13:24:19 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit cf45df9edd13e03c3d7f33d05bf58194d8878547
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Sep 14 13:25:06 2010 +0000

    2010-09-14  Pierre-Antoine LaFayette  <plafayet at codeaurora.org>
    
            Reviewed by Darin Adler.
    
            REGRESSION (r52839): Incomplete repaint of IMG with text-align:center
            https://bugs.webkit.org/show_bug.cgi?id=40142
    
            Add pixel tests to verify proper repaint of RenderReplaced as well as non-inline children.
    
            * fast/repaint/block-layout-inline-children-float-positioned.html: Added.
            * fast/repaint/block-layout-inline-children-replaced.html: Added.
            * platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.checksum: Added.
            * platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.png: Added.
            * platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.txt: Added.
            * platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.checksum: Added.
            * platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.png: Added.
            * platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.txt: Added.
    2010-09-14  Pierre-Antoine LaFayette  <plafayet at codeaurora.org>
    
            Reviewed by Darin Adler.
    
            REGRESSION (r52839): Incomplete repaint of IMG with text-align:center
            https://bugs.webkit.org/show_bug.cgi?id=40142
    
            http://trac.webkit.org/changeset/52839 didn't really deal with the inline replaced element case.  This just generalizes to all inline content.
    
            Patch by: Dave Hyatt
    
            Tests: fast/repaint/block-layout-inline-children-float-positioned.html
                   fast/repaint/block-layout-inline-children-replaced.html
    
            * rendering/RenderBlockLineLayout.cpp:
            (WebCore::RenderBlock::layoutInlineChildren):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67463 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 84db42d..13747fb 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,21 @@
+2010-09-14  Pierre-Antoine LaFayette  <plafayet at codeaurora.org>
+
+        Reviewed by Darin Adler.
+
+        REGRESSION (r52839): Incomplete repaint of IMG with text-align:center
+        https://bugs.webkit.org/show_bug.cgi?id=40142
+
+        Add pixel tests to verify proper repaint of RenderReplaced as well as non-inline children.
+
+        * fast/repaint/block-layout-inline-children-float-positioned.html: Added.
+        * fast/repaint/block-layout-inline-children-replaced.html: Added.
+        * platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.checksum: Added.
+        * platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.png: Added.
+        * platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.txt: Added.
+        * platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.checksum: Added.
+        * platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.png: Added.
+        * platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.txt: Added.
+
 2010-09-14  Pavel Podivilov  <podivilov at chromium.org>
 
         Reviewed by Pavel Feldman.
diff --git a/LayoutTests/fast/repaint/block-layout-inline-children-float-positioned.html b/LayoutTests/fast/repaint/block-layout-inline-children-float-positioned.html
new file mode 100644
index 0000000..6d35f42
--- /dev/null
+++ b/LayoutTests/fast/repaint/block-layout-inline-children-float-positioned.html
@@ -0,0 +1,32 @@
+<head>
+<title>This is a test for regression against https://bugs.webkit.org/show_bug.cgi?id=40142</title>
+<style>
+#target {
+    width: 600px;
+    height: 100px;
+    text-align: center;
+    border: 1px solid #ddd;
+}
+</style>
+</head>
+
+<body style="margin: 0;" onload="runRepaintTest()">
+    <script>
+        function repaintTest()
+        {
+            document.getElementById("target").innerHTML +=
+                '<span style="float: right;">the quick brown fox jumped over the lazy dog</span>';
+
+            document.getElementById("target").innerHTML +=
+                '<span style="position: absolute;">the quick brown fox jumped over the lazy dog</span>';
+        }
+    </script>
+
+    <script src="resources/repaint.js"></script>
+
+    <p>This is a test for regression against <a href="https://bugs.webkit.org/show_bug.cgi?id=40142">https://bugs.webkit.org/show_bug.cgi?id=40142</a></p>
+
+    <div>
+        <div id="target"></div>
+    </div>
+</body>
diff --git a/LayoutTests/fast/repaint/block-layout-inline-children-replaced.html b/LayoutTests/fast/repaint/block-layout-inline-children-replaced.html
new file mode 100644
index 0000000..e1f2e71
--- /dev/null
+++ b/LayoutTests/fast/repaint/block-layout-inline-children-replaced.html
@@ -0,0 +1,29 @@
+<head>
+<title>This is a test for regression against https://bugs.webkit.org/show_bug.cgi?id=40142</title>
+<style>
+.target {
+    width: 400px;
+    height: 150px;
+    text-align: center;
+    border: 1px solid #ddd;
+}
+</style>
+</head>
+
+<body style="margin: 0;" onload="runRepaintTest()">
+    <script>
+        function repaintTest()
+        {
+            document.getElementById("target").innerHTML +=
+                '<img style="height: 100px;" src="resources/apple.jpg" >';
+        }
+    </script>
+
+    <script src="resources/repaint.js"></script>
+
+    <p>This is a test for regression against <a href="https://bugs.webkit.org/show_bug.cgi?id=40142">https://bugs.webkit.org/show_bug.cgi?id=40142</a></p>
+
+    <div>
+        <div class="target" id="target"></div>
+    </div>
+</body>
diff --git a/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.checksum b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.checksum
new file mode 100644
index 0000000..f7bc0eb
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.checksum
@@ -0,0 +1 @@
+a67d9e72e4b66928e01246cf21fb6eac
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.png b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.png
new file mode 100644
index 0000000..209caca
Binary files /dev/null and b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.png differ
diff --git a/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.txt b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.txt
new file mode 100644
index 0000000..dc6f252
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-float-positioned-expected.txt
@@ -0,0 +1,20 @@
+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 (0,0) size 800x600
+      RenderBlock {P} at (0,0) size 800x18
+        RenderText {#text} at (0,0) size 220x18
+          text run at (0,0) width 220: "This is a test for regression against "
+        RenderInline {A} at (0,0) size 305x18 [color=#0000EE]
+          RenderText {#text} at (220,0) size 305x18
+            text run at (220,0) width 305: "https://bugs.webkit.org/show_bug.cgi?id=40142"
+      RenderBlock {DIV} at (0,34) size 800x102
+        RenderBlock {DIV} at (0,0) size 602x102 [border: (1px solid #DDDDDD)]
+          RenderBlock (floating) {SPAN} at (309,1) size 292x18
+            RenderText {#text} at (0,0) size 292x18
+              text run at (0,0) width 292: "the quick brown fox jumped over the lazy dog"
+layer at (1,35) size 292x18
+  RenderBlock (positioned) {SPAN} at (1,35) size 292x18
+    RenderText {#text} at (0,0) size 292x18
+      text run at (0,0) width 292: "the quick brown fox jumped over the lazy dog"
diff --git a/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.checksum b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.checksum
new file mode 100644
index 0000000..0b1976b
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.checksum
@@ -0,0 +1 @@
+f69fe4e6fcfdd9e726df375cdbe5c821
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.png b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.png
new file mode 100644
index 0000000..6f21727
Binary files /dev/null and b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.png differ
diff --git a/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.txt b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.txt
new file mode 100644
index 0000000..cc268c6
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.txt
@@ -0,0 +1,14 @@
+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 (0,0) size 800x600
+      RenderBlock {P} at (0,0) size 800x18
+        RenderText {#text} at (0,0) size 220x18
+          text run at (0,0) width 220: "This is a test for regression against "
+        RenderInline {A} at (0,0) size 305x18 [color=#0000EE]
+          RenderText {#text} at (220,0) size 305x18
+            text run at (220,0) width 305: "https://bugs.webkit.org/show_bug.cgi?id=40142"
+      RenderBlock {DIV} at (0,34) size 800x152
+        RenderBlock {DIV} at (0,0) size 402x152 [border: (1px solid #DDDDDD)]
+          RenderImage {IMG} at (155,1) size 92x100
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 9bb73c8..81a5b87 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2010-09-14  Pierre-Antoine LaFayette  <plafayet at codeaurora.org>
+
+        Reviewed by Darin Adler.
+
+        REGRESSION (r52839): Incomplete repaint of IMG with text-align:center
+        https://bugs.webkit.org/show_bug.cgi?id=40142
+
+        http://trac.webkit.org/changeset/52839 didn't really deal with the inline replaced element case.  This just generalizes to all inline content.
+
+        Patch by: Dave Hyatt
+
+        Tests: fast/repaint/block-layout-inline-children-float-positioned.html
+               fast/repaint/block-layout-inline-children-replaced.html
+
+        * rendering/RenderBlockLineLayout.cpp:
+        (WebCore::RenderBlock::layoutInlineChildren):
+         
 2010-09-14  Balazs Kelemen  <kb at inf.u-szeged.hu>
 
         Reviewed by Andreas Kling.
diff --git a/WebCore/rendering/RenderBlockLineLayout.cpp b/WebCore/rendering/RenderBlockLineLayout.cpp
index 6785eb2..e57f28e 100644
--- a/WebCore/rendering/RenderBlockLineLayout.cpp
+++ b/WebCore/rendering/RenderBlockLineLayout.cpp
@@ -559,6 +559,9 @@ void RenderBlock::layoutInlineChildren(bool relayoutChildren, int& repaintTop, i
         Vector<FloatWithRect> floats;
         bool hasInlineChild = false;
         while (o) {
+            if (!hasInlineChild && o->isInline())
+                hasInlineChild = true;
+
             if (o->isReplaced() || o->isFloating() || o->isPositioned()) {
                 RenderBox* box = toRenderBox(o);
                 
@@ -580,7 +583,6 @@ void RenderBlock::layoutInlineChildren(bool relayoutChildren, int& repaintTop, i
                     o->layoutIfNeeded();
                 }
             } else if (o->isText() || (o->isRenderInline() && !endOfInline)) {
-                hasInlineChild = true;
                 if (fullLayout || o->selfNeedsLayout())
                     dirtyLineBoxesForRenderer(o, fullLayout);
                 o->setNeedsLayout(false);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list