Title: [216391] releases/WebKitGTK/webkit-2.16
Revision
216391
Author
carlo...@webkit.org
Date
2017-05-08 05:32:45 -0700 (Mon, 08 May 2017)

Log Message

Merge r215874 - Repeated layouts in Mail due to viewport units being used with auto-sizing
https://bugs.webkit.org/show_bug.cgi?id=171371
<rdar://problem/28780084>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: css3/viewport-percentage-lengths/vh-auto-size.html

Auto-sizing code would adjust the size of the view in the beginning of layout(). This would
end up invalidating style for elements that use vh units and we would perform main layout
with unclean style. This would result in endless layout loops and hit assert on debug.

* page/FrameView.cpp:
(WebCore::FrameView::availableContentSizeChanged):

    Ensure we heve clean style after resize if we are in pre-layout.

LayoutTests:

* css3/viewport-percentage-lengths/vh-auto-size-expected.html: Added.
* css3/viewport-percentage-lengths/vh-auto-size.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog (216390 => 216391)


--- releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog	2017-05-08 12:30:25 UTC (rev 216390)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog	2017-05-08 12:32:45 UTC (rev 216391)
@@ -1,3 +1,14 @@
+2017-04-27  Antti Koivisto  <an...@apple.com>
+
+        Repeated layouts in Mail due to viewport units being used with auto-sizing
+        https://bugs.webkit.org/show_bug.cgi?id=171371
+        <rdar://problem/28780084>
+
+        Reviewed by Zalan Bujtas.
+
+        * css3/viewport-percentage-lengths/vh-auto-size-expected.html: Added.
+        * css3/viewport-percentage-lengths/vh-auto-size.html: Added.
+
 2017-04-27  Zalan Bujtas  <za...@apple.com>
 
         Text gets cut off when bailing out of simple line layout with widows.

Added: releases/WebKitGTK/webkit-2.16/LayoutTests/css3/viewport-percentage-lengths/vh-auto-size-expected.html (0 => 216391)


--- releases/WebKitGTK/webkit-2.16/LayoutTests/css3/viewport-percentage-lengths/vh-auto-size-expected.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/css3/viewport-percentage-lengths/vh-auto-size-expected.html	2017-05-08 12:32:45 UTC (rev 216391)
@@ -0,0 +1,7 @@
+<script>
+if (window.internals)
+    internals.enableAutoSizeMode(true, 1000, 1, 1000000, 1000000);
+</script>
+text text text text text text text
+<div style="height:1000px; border:2px solid green">
+</div>

Added: releases/WebKitGTK/webkit-2.16/LayoutTests/css3/viewport-percentage-lengths/vh-auto-size.html (0 => 216391)


--- releases/WebKitGTK/webkit-2.16/LayoutTests/css3/viewport-percentage-lengths/vh-auto-size.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/css3/viewport-percentage-lengths/vh-auto-size.html	2017-05-08 12:32:45 UTC (rev 216391)
@@ -0,0 +1,15 @@
+<html>
+<head>
+<script>
+if (window.internals)
+    internals.enableAutoSizeMode(true, 1000, 1, 1000000, 1000000);
+</script>
+</head>
+<body>
+<div style="width: 100vh">
+text text text text text text text
+<div style="height:1000px; border:2px solid green">
+</div>
+</div>
+</body>
+</html>

Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog (216390 => 216391)


--- releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog	2017-05-08 12:30:25 UTC (rev 216390)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog	2017-05-08 12:32:45 UTC (rev 216391)
@@ -1,3 +1,22 @@
+2017-04-27  Antti Koivisto  <an...@apple.com>
+
+        Repeated layouts in Mail due to viewport units being used with auto-sizing
+        https://bugs.webkit.org/show_bug.cgi?id=171371
+        <rdar://problem/28780084>
+
+        Reviewed by Zalan Bujtas.
+
+        Test: css3/viewport-percentage-lengths/vh-auto-size.html
+
+        Auto-sizing code would adjust the size of the view in the beginning of layout(). This would
+        end up invalidating style for elements that use vh units and we would perform main layout
+        with unclean style. This would result in endless layout loops and hit assert on debug.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::availableContentSizeChanged):
+
+            Ensure we heve clean style after resize if we are in pre-layout.
+
 2017-04-27  Zalan Bujtas  <za...@apple.com>
 
         Text gets cut off when bailing out of simple line layout with widows.

Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/page/FrameView.cpp (216390 => 216391)


--- releases/WebKitGTK/webkit-2.16/Source/WebCore/page/FrameView.cpp	2017-05-08 12:30:25 UTC (rev 216390)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/page/FrameView.cpp	2017-05-08 12:32:45 UTC (rev 216391)
@@ -3713,6 +3713,9 @@
         setScrollbarModes(horizonalScrollbarMode, verticalScrollbarMode, true, true);
     }
 
+    // All the resizing above may have invalidated style (for example if viewport units are being used).
+    document->updateStyleIfNeeded();
+
     m_autoSizeContentSize = contentsSize();
 
     if (m_autoSizeFixedMinimumHeight) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to