Title: [239907] trunk
Revision
239907
Author
[email protected]
Date
2019-01-13 08:39:36 -0800 (Sun, 13 Jan 2019)

Log Message

[LFC] Adjust assert for statically positioned fixed elements
https://bugs.webkit.org/show_bug.cgi?id=193385

Reviewed by Antti Koivisto.

Source/WebCore:

While computing the static position and traversing the ancestor chain, we can surely hit a positioned container
(since we need to go all the way up to the initial containing block).

* layout/FormattingContextGeometry.cpp:
(WebCore::Layout::staticVerticalPositionForOutOfFlowPositioned):
(WebCore::Layout::staticHorizontalPositionForOutOfFlowPositioned):

Tools:

* LayoutReloaded/misc/LFC-passing-tests.txt:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (239906 => 239907)


--- trunk/Source/WebCore/ChangeLog	2019-01-13 16:06:31 UTC (rev 239906)
+++ trunk/Source/WebCore/ChangeLog	2019-01-13 16:39:36 UTC (rev 239907)
@@ -1,3 +1,17 @@
+2019-01-13  Zalan Bujtas  <[email protected]>
+
+        [LFC] Adjust assert for statically positioned fixed elements
+        https://bugs.webkit.org/show_bug.cgi?id=193385
+
+        Reviewed by Antti Koivisto.
+
+        While computing the static position and traversing the ancestor chain, we can surely hit a positioned container
+        (since we need to go all the way up to the initial containing block).
+
+        * layout/FormattingContextGeometry.cpp:
+        (WebCore::Layout::staticVerticalPositionForOutOfFlowPositioned):
+        (WebCore::Layout::staticHorizontalPositionForOutOfFlowPositioned):
+
 2019-01-13  Antti Koivisto  <[email protected]>
 
         Release assert with <img usemap> in shadow tree

Modified: trunk/Source/WebCore/layout/FormattingContextGeometry.cpp (239906 => 239907)


--- trunk/Source/WebCore/layout/FormattingContextGeometry.cpp	2019-01-13 16:06:31 UTC (rev 239906)
+++ trunk/Source/WebCore/layout/FormattingContextGeometry.cpp	2019-01-13 16:39:36 UTC (rev 239907)
@@ -194,13 +194,13 @@
 
     // Resolve top all the way up to the containing block.
     auto* containingBlock = layoutBox.containingBlock();
+    // Start with the parent since we pretend that this box is normal flow.
     for (auto* container = layoutBox.parent(); container != containingBlock; container = container->containingBlock()) {
         auto& displayBox = layoutState.displayBoxForLayoutBox(*container);
         // Display::Box::top is the border box top position in its containing block's coordinate system.
         top += displayBox.top();
-        ASSERT(!container->isPositioned());
+        ASSERT(!container->isPositioned() || layoutBox.isFixedPositioned());
     }
-    // FIXME: floatings need to be taken into account.
     return top;
 }
 
@@ -215,13 +215,13 @@
 
     // Resolve left all the way up to the containing block.
     auto* containingBlock = layoutBox.containingBlock();
+    // Start with the parent since we pretend that this box is normal flow.
     for (auto* container = layoutBox.parent(); container != containingBlock; container = container->containingBlock()) {
         auto& displayBox = layoutState.displayBoxForLayoutBox(*container);
         // Display::Box::left is the border box left position in its containing block's coordinate system.
         left += displayBox.left();
-        ASSERT(!container->isPositioned());
+        ASSERT(!container->isPositioned() || layoutBox.isFixedPositioned());
     }
-    // FIXME: floatings need to be taken into account.
     return left;
 }
 

Modified: trunk/Tools/ChangeLog (239906 => 239907)


--- trunk/Tools/ChangeLog	2019-01-13 16:06:31 UTC (rev 239906)
+++ trunk/Tools/ChangeLog	2019-01-13 16:39:36 UTC (rev 239907)
@@ -1,3 +1,12 @@
+2019-01-13  Zalan Bujtas  <[email protected]>
+
+        [LFC] Adjust assert for statically positioned fixed elements
+        https://bugs.webkit.org/show_bug.cgi?id=193385
+
+        Reviewed by Antti Koivisto.
+
+        * LayoutReloaded/misc/LFC-passing-tests.txt:
+
 2019-01-13  Philippe Normand  <[email protected]>
 
         [WPE][MiniBrowser] Ephemeral WebContext leaks in automation mode

Modified: trunk/Tools/LayoutReloaded/misc/LFC-passing-tests.txt (239906 => 239907)


--- trunk/Tools/LayoutReloaded/misc/LFC-passing-tests.txt	2019-01-13 16:06:31 UTC (rev 239906)
+++ trunk/Tools/LayoutReloaded/misc/LFC-passing-tests.txt	2019-01-13 16:39:36 UTC (rev 239907)
@@ -284,3 +284,22 @@
 fast/inline/simple-shrink-to-fit-inline-block.html
 fast/inline/skipped-whitespace-boundingBox.html
 fast/inline/skipped-whitespace-client-rect.html
+fast/dynamic/004.html
+fast/dynamic/005.html
+fast/dynamic/006.html
+fast/dynamic/009.html
+fast/dynamic/010.html
+fast/dynamic/anonymous-block-layer-lost.html
+fast/dynamic/first-letter-display-change.html
+fast/dynamic/float-no-longer-overhanging.html
+fast/dynamic/float-withdrawal-2.html
+fast/dynamic/hover-style-recalc-crash.html
+fast/dynamic/inline-to-block-crash.html
+fast/dynamic/jQuery-animation-crash.html
+fast/dynamic/link-href-change.html
+fast/dynamic/move-node-with-selection.html
+fast/dynamic/selection-gets-cleared-when-part-of-it-gets-removed.html
+fast/dynamic/staticY.html
+fast/dynamic/subtree-boundary-percent-height.html
+fast/dynamic/subtree-parent-static-y.html
+fast/dynamic/window-scrollbars-test.html
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to