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