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

inferno at chromium.org inferno at chromium.org
Wed Dec 22 14:28:22 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit f217621fc13d11dad1a9a3b5d8ef3da8332b6ef6
Author: inferno at chromium.org <inferno at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Oct 11 06:29:29 2010 +0000

    2010-10-10  Abhishek Arya  <inferno at chromium.org>
    
            Reviewed by Dan Bernstein.
    
            Overhanging floats are not added to flexible boxes since they behave like
            block formatting contexts. This causes the intruding floats added in siblings
            to not get cleared. Enforce the float release by checking if the parent is a
            flexible box and if yes, use that as the outermost block.
    
            https://bugs.webkit.org/show_bug.cgi?id=47104
    
            Test: fast/flexbox/overhanging-floats-removed.html
    
            * rendering/RenderBox.cpp:
            (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
    2010-10-10  Abhishek Arya  <inferno at chromium.org>
    
            Reviewed by Dan Bernstein.
    
            Tests that intruding floats get properly cleared in flexible box layout.
            https://bugs.webkit.org/show_bug.cgi?id=47104
    
            * fast/flexbox/overhanging-floats-removed-expected.checksum: Added.
            * fast/flexbox/overhanging-floats-removed-expected.png: Added.
            * fast/flexbox/overhanging-floats-removed-expected.txt: Added.
            * fast/flexbox/overhanging-floats-removed.html: Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69476 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index cee585d..e867bb9 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2010-10-10  Abhishek Arya  <inferno at chromium.org>
+
+        Reviewed by Dan Bernstein.
+
+        Tests that intruding floats get properly cleared in flexible box layout.
+        https://bugs.webkit.org/show_bug.cgi?id=47104
+
+        * fast/flexbox/overhanging-floats-removed-expected.checksum: Added.
+        * fast/flexbox/overhanging-floats-removed-expected.png: Added.
+        * fast/flexbox/overhanging-floats-removed-expected.txt: Added.
+        * fast/flexbox/overhanging-floats-removed.html: Added.
+
 2010-10-10  Chris Fleizach  <cfleizach at apple.com>
 
         Reviewed by Beth Dakin.
diff --git a/LayoutTests/fast/flexbox/overhanging-floats-removed-expected.checksum b/LayoutTests/fast/flexbox/overhanging-floats-removed-expected.checksum
new file mode 100644
index 0000000..c4d41dd
--- /dev/null
+++ b/LayoutTests/fast/flexbox/overhanging-floats-removed-expected.checksum
@@ -0,0 +1 @@
+2423f179100b3721cb89ba9ab955c206
\ No newline at end of file
diff --git a/LayoutTests/fast/flexbox/overhanging-floats-removed-expected.png b/LayoutTests/fast/flexbox/overhanging-floats-removed-expected.png
new file mode 100644
index 0000000..230deaa
Binary files /dev/null and b/LayoutTests/fast/flexbox/overhanging-floats-removed-expected.png differ
diff --git a/LayoutTests/fast/flexbox/overhanging-floats-removed-expected.txt b/LayoutTests/fast/flexbox/overhanging-floats-removed-expected.txt
new file mode 100644
index 0000000..7da1d40
--- /dev/null
+++ b/LayoutTests/fast/flexbox/overhanging-floats-removed-expected.txt
@@ -0,0 +1,12 @@
+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 (8,8) size 784x584
+      RenderFlexibleBox {DIV} at (0,0) size 784x160
+        RenderBlock {DIV} at (0,0) size 80x80 [bgcolor=#0000FF]
+        RenderBlock {DIV} at (0,80) size 80x80 [bgcolor=#FFFF00]
+          RenderText {#text} at (0,0) size 176x48
+            text run at (0,0) width 64: "Test"
+            text run at (0,16) width 176: "overhanging"
+            text run at (0,32) width 96: "floats"
diff --git a/LayoutTests/fast/flexbox/overhanging-floats-removed.html b/LayoutTests/fast/flexbox/overhanging-floats-removed.html
new file mode 100644
index 0000000..844e486
--- /dev/null
+++ b/LayoutTests/fast/flexbox/overhanging-floats-removed.html
@@ -0,0 +1,10 @@
+<div style="display: -webkit-box; -webkit-box-orient: vertical;">
+    <div style="width: 80px; height: 80px; background-color: blue;">
+        <div id="float" style="float: left; width: 20px; height: 110px; background-color: silver;"></div>
+    </div>
+    <div style="font-family: ahem; width: 80px; height: 80px; background-color: yellow;">Test overhanging floats</div>
+</div>
+<script>
+    document.body.offsetTop;
+    document.getElementById("float").style.display = "none";
+</script>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index c8cbe8a..9bd463c 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-10-10  Abhishek Arya  <inferno at chromium.org>
+
+        Reviewed by Dan Bernstein.
+
+        Overhanging floats are not added to flexible boxes since they behave like
+        block formatting contexts. This causes the intruding floats added in siblings
+        to not get cleared. Enforce the float release by checking if the parent is a
+        flexible box and if yes, use that as the outermost block.
+        
+        https://bugs.webkit.org/show_bug.cgi?id=47104
+
+        Test: fast/flexbox/overhanging-floats-removed.html
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
+
 2010-10-10  Chris Fleizach  <cfleizach at apple.com>
 
         Reviewed by Beth Dakin.
diff --git a/WebCore/rendering/RenderBox.cpp b/WebCore/rendering/RenderBox.cpp
index b8a2846..989ef4e 100644
--- a/WebCore/rendering/RenderBox.cpp
+++ b/WebCore/rendering/RenderBox.cpp
@@ -223,8 +223,13 @@ void RenderBox::removeFloatingOrPositionedChildFromBlockLists()
                 outermostBlock = p;
         }
 
-        if (outermostBlock)
+        if (outermostBlock) {
+            RenderObject* parent = outermostBlock->parent();
+            if (parent && parent->isFlexibleBox())
+                outermostBlock = toRenderBlock(parent);
+
             outermostBlock->markAllDescendantsWithFloatsForLayout(this, false);
+        }
     }
 
     if (isPositioned()) {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list