Title: [227396] trunk
Revision
227396
Author
[email protected]
Date
2018-01-22 21:36:42 -0800 (Mon, 22 Jan 2018)

Log Message

Optimize building the non-fast scrollable region with multiple iframes
https://bugs.webkit.org/show_bug.cgi?id=181971

Reviewed by Zalan Bujtas.

Source/WebCore:

AsyncScrollingCoordinator::frameViewLayoutUpdated() is called every time a subframe lays out.
We don't need to eagerly update the non-fast scrollable region at this time; we can just mark
it dirty, and rely on the existing scrolling tree commit code to recompute it.

On my machine this makes fast/frames/lots-of-objects.html no longer a timeout.

* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):

LayoutTests:

* platform/mac-wk2/TestExpectations: fast/frames/lots-of-objects.html is no longer always a timeout.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (227395 => 227396)


--- trunk/LayoutTests/ChangeLog	2018-01-23 04:39:10 UTC (rev 227395)
+++ trunk/LayoutTests/ChangeLog	2018-01-23 05:36:42 UTC (rev 227396)
@@ -1,3 +1,12 @@
+2018-01-22  Simon Fraser  <[email protected]>
+
+        Optimize building the non-fast scrollable region with multiple iframes
+        https://bugs.webkit.org/show_bug.cgi?id=181971
+
+        Reviewed by Zalan Bujtas.
+
+        * platform/mac-wk2/TestExpectations: fast/frames/lots-of-objects.html is no longer always a timeout.
+
 2018-01-22  Jiewen Tan  <[email protected]>
 
         [WebAuthN] Implement PublicKeyCredential's [[Create]] with a dummy authenticator

Modified: trunk/LayoutTests/platform/mac-wk2/TestExpectations (227395 => 227396)


--- trunk/LayoutTests/platform/mac-wk2/TestExpectations	2018-01-23 04:39:10 UTC (rev 227395)
+++ trunk/LayoutTests/platform/mac-wk2/TestExpectations	2018-01-23 05:36:42 UTC (rev 227396)
@@ -324,7 +324,7 @@
 
 webkit.org/b/148408 tiled-drawing/scrolling/root-overflow-with-mousewheel.html [ Pass Failure Timeout ]
 
-webkit.org/b/139820 fast/frames/lots-of-objects.html [ Timeout ]
+webkit.org/b/139820 fast/frames/lots-of-objects.html [ Pass Timeout ]
 webkit.org/b/139820 fast/frames/lots-of-iframes.html [ Pass Timeout ]
 
 webkit.org/b/145432 media/video-transformed-by-_javascript_.html [ Failure ]

Modified: trunk/Source/WebCore/ChangeLog (227395 => 227396)


--- trunk/Source/WebCore/ChangeLog	2018-01-23 04:39:10 UTC (rev 227395)
+++ trunk/Source/WebCore/ChangeLog	2018-01-23 05:36:42 UTC (rev 227396)
@@ -1,3 +1,19 @@
+2018-01-22  Simon Fraser  <[email protected]>
+
+        Optimize building the non-fast scrollable region with multiple iframes
+        https://bugs.webkit.org/show_bug.cgi?id=181971
+
+        Reviewed by Zalan Bujtas.
+
+        AsyncScrollingCoordinator::frameViewLayoutUpdated() is called every time a subframe lays out.
+        We don't need to eagerly update the non-fast scrollable region at this time; we can just mark
+        it dirty, and rely on the existing scrolling tree commit code to recompute it.
+
+        On my machine this makes fast/frames/lots-of-objects.html no longer a timeout.
+
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
+
 2018-01-22  Jiewen Tan  <[email protected]>
 
         [WebAuthN] Implement PublicKeyCredential's [[Create]] with a dummy authenticator

Modified: trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp (227395 => 227396)


--- trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp	2018-01-23 04:39:10 UTC (rev 227395)
+++ trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp	2018-01-23 05:36:42 UTC (rev 227396)
@@ -123,14 +123,7 @@
     if (!m_scrollingStateTree->rootStateNode())
         return;
 
-    // Compute the region of the page that we can't do fast scrolling for. This currently includes
-    // all scrollable areas, such as subframes, overflow divs and list boxes. We need to do this even if the
-    // frame view whose layout was updated is not the main frame.
-    // In the future, we may want to have the ability to set non-fast scrolling regions for more than
-    // just the root node. But right now, this concept only applies to the root.
-    m_scrollingStateTree->rootStateNode()->setEventTrackingRegions(absoluteEventTrackingRegions());
-    m_eventTrackingRegionsDirty = false;
-
+    setEventTrackingRegionsDirty();
     if (!coordinatesScrollingForFrameView(frameView))
         return;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to