Title: [160720] trunk
Revision
160720
Author
commit-qu...@webkit.org
Date
2013-12-17 12:11:56 -0800 (Tue, 17 Dec 2013)

Log Message

Unreviewed, rolling out r160717.
http://trac.webkit.org/changeset/160717
https://bugs.webkit.org/show_bug.cgi?id=125863

New tests are failing, and possibly broke an existing test
(Requested by ap on #webkit).

Source/WebCore:

* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::collectFixedPositionedLayers):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintFixedLayersInNamedFlows):
(WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):

LayoutTests:

* fast/regions/repaint/fixed-in-named-flow-cb-changed-expected.txt: Removed.
* fast/regions/repaint/fixed-in-named-flow-cb-changed.html: Removed.
* fast/regions/repaint/fixed-in-named-flow-cb-changed2-expected.txt: Removed.
* fast/regions/repaint/fixed-in-named-flow-cb-changed2.html: Removed.

Modified Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (160719 => 160720)


--- trunk/LayoutTests/ChangeLog	2013-12-17 20:10:12 UTC (rev 160719)
+++ trunk/LayoutTests/ChangeLog	2013-12-17 20:11:56 UTC (rev 160720)
@@ -1,3 +1,17 @@
+2013-12-17  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r160717.
+        http://trac.webkit.org/changeset/160717
+        https://bugs.webkit.org/show_bug.cgi?id=125863
+
+        New tests are failing, and possibly broke an existing test
+        (Requested by ap on #webkit).
+
+        * fast/regions/repaint/fixed-in-named-flow-cb-changed-expected.txt: Removed.
+        * fast/regions/repaint/fixed-in-named-flow-cb-changed.html: Removed.
+        * fast/regions/repaint/fixed-in-named-flow-cb-changed2-expected.txt: Removed.
+        * fast/regions/repaint/fixed-in-named-flow-cb-changed2.html: Removed.
+
 2013-12-17  Ryosuke Niwa  <rn...@webkit.org>
 
         Invalid dir attributes should resolve to ltr

Deleted: trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed-expected.txt (160719 => 160720)


--- trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed-expected.txt	2013-12-17 20:10:12 UTC (rev 160719)
+++ trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed-expected.txt	2013-12-17 20:11:56 UTC (rev 160720)
@@ -1,10 +0,0 @@
-(repaint rects
-  (rect 150 150 100 100)
-  (rect 50 50 50 50)
-  (rect 150 150 100 100)
-  (rect 200 200 50 50)
-  (rect 100 100 200 200)
-  (rect 100 100 200 200)
-  (rect 100 100 200 200)
-)
-

Deleted: trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed.html (160719 => 160720)


--- trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed.html	2013-12-17 20:10:12 UTC (rev 160719)
+++ trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed.html	2013-12-17 20:11:56 UTC (rev 160720)
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-        <script>
-            if (window.internals)
-                window.internals.settings.setAcceleratedCompositingForFixedPositionEnabled(false);
-        </script>
-        <script src=""
-        <style>
-            #red { position: absolute; top: 200px; left: 200px; width: 50px; height: 50px; background-color: red;}
-
-            #region { -webkit-flow-from: flow; position: absolute; top: 100px; left: 100px; width: 200px; height: 200px; }
-
-            #parent { -webkit-flow-into: flow; position: absolute; top: 50px; left: 50px; width: 100px; height: 100px; }
-
-            #fixed { position: fixed; top: 50px; left: 50px; width: 50px; height: 50px; background-color: green; }
-
-            .transformed { -webkit-transform: scale3d(1, 1, 1); }
-        </style>
-    </head>
-    <body _onload_="runRepaintTest()">
-        <!--
-        Test for WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=125756
-        That that a fixed positioned element whose parent gets a 3d transform dynamically is correctly re-positioned relative to the parent.
-        On success, you should see a green rectangle and no red.
-        -->
-        <div id="red"></div>
-        <div id="parent">
-            <div id="fixed"></div>
-        </div>
-        <div id="region"></div>
-        <script>
-            function repaintTest() {
-                document.getElementById("parent").className = "transformed";
-            }
-        </script>
-    </body>
-</html>

Deleted: trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed2-expected.txt (160719 => 160720)


--- trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed2-expected.txt	2013-12-17 20:10:12 UTC (rev 160719)
+++ trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed2-expected.txt	2013-12-17 20:11:56 UTC (rev 160720)
@@ -1,5 +0,0 @@
-(repaint rects
-  (rect 50 50 50 50)
-  (rect 100 100 200 200)
-)
-

Deleted: trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed2.html (160719 => 160720)


--- trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed2.html	2013-12-17 20:10:12 UTC (rev 160719)
+++ trunk/LayoutTests/fast/regions/repaint/fixed-in-named-flow-cb-changed2.html	2013-12-17 20:11:56 UTC (rev 160720)
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-        <script>
-            if (window.internals)
-                window.internals.settings.setAcceleratedCompositingForFixedPositionEnabled(false);
-        </script>
-        <script src=""
-        <style>
-            #red { position: absolute; top: 50px; left: 50px; width: 50px; height: 50px; background-color: red;}
-
-            #region { -webkit-flow-from: flow; position: absolute; top: 100px; left: 100px; width: 200px; height: 200px; }
-
-            #parent { -webkit-flow-into: flow; position: absolute; top: 50px; left: 50px; width: 100px; height: 100px; }
-
-            #fixed { position: fixed; top: 50px; left: 50px; width: 50px; height: 50px; background-color: green; }
-
-            .transformed { -webkit-transform: scale3d(1, 1, 1); }
-        </style>
-    </head>
-    <body _onload_="runRepaintTest()">
-        <!--
-        Test for WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=125756
-        Test that a fixed positioned element whose parent dynamically looses its transformation is correctly re-positioned relative to the view.
-        On success, you should see a green rectangle and no red.
-        -->
-        <div id="red"></div>
-        <div id="parent" class="transformed">
-            <div id="fixed"></div>
-        </div>
-
-        <div id="region"></div>
-
-        <script>
-            function repaintTest() {
-                document.getElementById("parent").className = "";
-            }
-        </script>
-    </body>
-</html>

Modified: trunk/Source/WebCore/ChangeLog (160719 => 160720)


--- trunk/Source/WebCore/ChangeLog	2013-12-17 20:10:12 UTC (rev 160719)
+++ trunk/Source/WebCore/ChangeLog	2013-12-17 20:11:56 UTC (rev 160720)
@@ -1,3 +1,18 @@
+2013-12-17  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r160717.
+        http://trac.webkit.org/changeset/160717
+        https://bugs.webkit.org/show_bug.cgi?id=125863
+
+        New tests are failing, and possibly broke an existing test
+        (Requested by ap on #webkit).
+
+        * rendering/FlowThreadController.cpp:
+        (WebCore::FlowThreadController::collectFixedPositionedLayers):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::paintFixedLayersInNamedFlows):
+        (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
+
 2013-12-17  Ryosuke Niwa  <rn...@webkit.org>
 
         Invalid dir attributes should resolve to ltr

Modified: trunk/Source/WebCore/rendering/FlowThreadController.cpp (160719 => 160720)


--- trunk/Source/WebCore/rendering/FlowThreadController.cpp	2013-12-17 20:10:12 UTC (rev 160719)
+++ trunk/Source/WebCore/rendering/FlowThreadController.cpp	2013-12-17 20:11:56 UTC (rev 160720)
@@ -28,6 +28,7 @@
  */
 
 #include "config.h"
+
 #include "FlowThreadController.h"
 
 #include "NamedFlowCollection.h"
@@ -279,15 +280,8 @@
     return m_mapNamedFlowContentElement.contains(&contentElement);
 }
 
-// Helper for the sorting of layers by z-index.
-static inline bool compareZIndex(RenderLayer* first, RenderLayer* second)
-{
-    return first->zIndex() < second->zIndex();
-}
-
-// Collect the fixed positioned layers that have the named flows as containing block.
+// Collect the fixed positioned layers that have the named flows as containing block
 // These layers are painted and hit-tested starting from RenderView not from regions.
-// The list of layers is returned sorted by z-index.
 void FlowThreadController::collectFixedPositionedLayers(Vector<RenderLayer*>& fixedPosLayers) const
 {
     for (auto iter = m_renderNamedFlowThreadList->begin(), end = m_renderNamedFlowThreadList->end(); iter != end; ++iter) {
@@ -298,27 +292,17 @@
         if (!flowRenderer->hasRegions())
             continue;
 
-        RenderLayer* flowThreadLayer = flowRenderer->layer();
-        if (Vector<RenderLayer*>* negZOrderList = flowThreadLayer->negZOrderList()) {
-            for (size_t i = 0, size = negZOrderList->size(); i < size; ++i) {
-                RenderLayer* currLayer = negZOrderList->at(i);
-                if (currLayer->renderer().style().position() != FixedPosition)
+        // Iterate over the fixed positioned elements in the flow thread
+        TrackedRendererListHashSet* positionedDescendants = flowRenderer->positionedObjects();
+        if (positionedDescendants) {
+            for (auto it = positionedDescendants->begin(), end = positionedDescendants->end(); it != end; ++it) {
+                RenderBox* box = *it;
+                if (!box->fixedPositionedWithNamedFlowContainingBlock())
                     continue;
-                fixedPosLayers.append(currLayer);
+                fixedPosLayers.append(box->layer());
             }
         }
-
-        if (Vector<RenderLayer*>* posZOrderList = flowThreadLayer->posZOrderList()) {
-            for (size_t i = 0, size = posZOrderList->size(); i < size; ++i) {
-                RenderLayer* currLayer = posZOrderList->at(i);
-                if (currLayer->renderer().style().position() != FixedPosition)
-                    continue;
-                fixedPosLayers.append(currLayer);
-            }
-        }
     }
-
-    std::stable_sort(fixedPosLayers.begin(), fixedPosLayers.end(), compareZIndex);
 }
 
 #ifndef NDEBUG

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (160719 => 160720)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-12-17 20:10:12 UTC (rev 160719)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-12-17 20:11:56 UTC (rev 160720)
@@ -4044,6 +4044,9 @@
     Vector<RenderLayer*> fixedLayers;
     renderer().view().flowThreadController().collectFixedPositionedLayers(fixedLayers);
 
+    // Sort the fixed layers list
+    std::stable_sort(fixedLayers.begin(), fixedLayers.end(), compareZIndex);
+
     // Paint the layers
     for (size_t i = 0; i < fixedLayers.size(); ++i) {
         RenderLayer* fixedLayer = fixedLayers.at(i);
@@ -4791,6 +4794,9 @@
     Vector<RenderLayer*> fixedLayers;
     renderer().view().flowThreadController().collectFixedPositionedLayers(fixedLayers);
 
+    // Sort the fixed layers list
+    std::stable_sort(fixedLayers.begin(), fixedLayers.end(), compareZIndex);
+
     // Hit test the layers
     RenderLayer* resultLayer = 0;
     for (int i = fixedLayers.size() - 1; i >= 0; --i) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to