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

hyatt at apple.com hyatt at apple.com
Wed Dec 22 13:39:39 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit d6ab7502c45a79babf3b18a563b92658f042c59e
Author: hyatt at apple.com <hyatt at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Sep 22 19:35:22 2010 +0000

    https://bugs.webkit.org/show_bug.cgi?id=45957, fix regression in column rules stacking test.
    
    Reviewed by Simon Fraser.
    
    WebCore:
    
    Rewrite how the pagination bit gets set in RenderLayers, since it was totally broken and not
    accounting for whether or not the columns block was even in the layer's containing block
    hierarchy.
    
    * rendering/RenderLayer.cpp:
    (WebCore::checkContainingBlockChainForPagination):
    (WebCore::RenderLayer::updatePagination):
    
    LayoutTests:
    
    * platform/mac/fast/multicol/column-rules-stacking-expected.checksum:
    * platform/mac/fast/multicol/column-rules-stacking-expected.png:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68069 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index d949a15..77b8557 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,12 @@
+2010-09-22  David Hyatt  <hyatt at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        https://bugs.webkit.org/show_bug.cgi?id=45957, fix regression in column rules stacking test.
+
+        * platform/mac/fast/multicol/column-rules-stacking-expected.checksum:
+        * platform/mac/fast/multicol/column-rules-stacking-expected.png:
+
 2010-09-22  Dirk Pranke  <dpranke at chromium.org>
 
         Reviewed by Tony Chang.
diff --git a/LayoutTests/platform/mac/fast/multicol/column-rules-stacking-expected.checksum b/LayoutTests/platform/mac/fast/multicol/column-rules-stacking-expected.checksum
index 07b1350..a63f752 100644
--- a/LayoutTests/platform/mac/fast/multicol/column-rules-stacking-expected.checksum
+++ b/LayoutTests/platform/mac/fast/multicol/column-rules-stacking-expected.checksum
@@ -1 +1 @@
-1a4aa1e76fd001b9d0fa4897fa2a6b71
\ No newline at end of file
+2eb6b0c2c7f0855e323be268bae0400f
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/fast/multicol/column-rules-stacking-expected.png b/LayoutTests/platform/mac/fast/multicol/column-rules-stacking-expected.png
index e8a1ed7..e4495de 100644
Binary files a/LayoutTests/platform/mac/fast/multicol/column-rules-stacking-expected.png and b/LayoutTests/platform/mac/fast/multicol/column-rules-stacking-expected.png differ
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index cf41411..98167de 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2010-09-22  David Hyatt  <hyatt at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        https://bugs.webkit.org/show_bug.cgi?id=45957, fix regression in column rules stacking test.
+
+        Rewrite how the pagination bit gets set in RenderLayers, since it was totally broken and not
+        accounting for whether or not the columns block was even in the layer's containing block
+        hierarchy.
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::checkContainingBlockChainForPagination):
+        (WebCore::RenderLayer::updatePagination):
+
 2010-09-22  Brent Fulgham  <bfulgham at webkit.org>
 
         Unreviewed.
diff --git a/WebCore/rendering/RenderLayer.cpp b/WebCore/rendering/RenderLayer.cpp
index e6a0cda..14e2af8 100644
--- a/WebCore/rendering/RenderLayer.cpp
+++ b/WebCore/rendering/RenderLayer.cpp
@@ -468,6 +468,28 @@ TransformationMatrix RenderLayer::renderableTransform(PaintBehavior paintBehavio
     return *m_transform;
 }
 
+static bool checkContainingBlockChainForPagination(RenderBoxModelObject* renderer, RenderBox* ancestorColumnsRenderer)
+{
+    RenderView* view = renderer->view();
+    RenderBoxModelObject* prevBlock = renderer;
+    RenderBlock* containingBlock;
+    for (containingBlock = renderer->containingBlock();
+         containingBlock && containingBlock != view && containingBlock != ancestorColumnsRenderer;
+         containingBlock = containingBlock->containingBlock())
+        prevBlock = containingBlock;
+    
+    // If the columns block wasn't in our containing block chain, then we aren't paginated by it.
+    if (containingBlock != ancestorColumnsRenderer)
+        return false;
+        
+    // If the previous block is absolutely positioned, then we can't be paginated by the columns block.
+    if (prevBlock->isPositioned())
+        return false;
+        
+    // Otherwise we are paginated by the columns block.
+    return true;
+}
+
 void RenderLayer::updatePagination()
 {
     m_isPaginated = false;
@@ -484,10 +506,10 @@ void RenderLayer::updatePagination()
     RenderLayer* ancestorStackingContext = stackingContext();
     for (RenderLayer* curr = parent(); curr; curr = curr->parent()) {
         if (curr->renderer()->hasColumns()) {
-            m_isPaginated = true;
+            m_isPaginated = checkContainingBlockChainForPagination(renderer(), curr->renderBox());
             return;
         }
-        if (curr == ancestorStackingContext || (curr->parent() && curr->parent()->renderer()->isPositioned()))
+        if (curr == ancestorStackingContext)
             return;
     }
 }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list