Title: [139258] trunk/Source/WebCore
Revision
139258
Author
[email protected]
Date
2013-01-09 16:50:24 -0800 (Wed, 09 Jan 2013)

Log Message

Don't drop to huge tile mode if we're only slow-scrolling because of a page overlay
https://bugs.webkit.org/show_bug.cgi?id=106502
<rdar://problem/12959143>

Reviewed by Simon Fraser.

We only use the MainThreadScrollingReason "ForcedOnMainThread" if WebKit2 installs
a page overlay (TiledCoreAnimationDrawingArea::didInstallPageOverlay), which clients
can cause arbitrarily.

We probably should still use default-sized tiles in this case (this will also
prevent us from falling into gigantic tiles for WebKit2 find-in-page, among other things).

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::adjustTileCacheCoverage):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (139257 => 139258)


--- trunk/Source/WebCore/ChangeLog	2013-01-10 00:46:30 UTC (rev 139257)
+++ trunk/Source/WebCore/ChangeLog	2013-01-10 00:50:24 UTC (rev 139258)
@@ -1,3 +1,21 @@
+2013-01-09  Tim Horton  <[email protected]>
+
+        Don't drop to huge tile mode if we're only slow-scrolling because of a page overlay
+        https://bugs.webkit.org/show_bug.cgi?id=106502
+        <rdar://problem/12959143>
+
+        Reviewed by Simon Fraser.
+
+        We only use the MainThreadScrollingReason "ForcedOnMainThread" if WebKit2 installs
+        a page overlay (TiledCoreAnimationDrawingArea::didInstallPageOverlay), which clients
+        can cause arbitrarily.
+
+        We probably should still use default-sized tiles in this case (this will also
+        prevent us from falling into gigantic tiles for WebKit2 find-in-page, among other things).
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::adjustTileCacheCoverage):
+
 2013-01-09  Takashi Sakamoto  <[email protected]>
 
         border-radius with box-shadow is not rendered correctly

Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (139257 => 139258)


--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2013-01-10 00:46:30 UTC (rev 139257)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2013-01-10 00:50:24 UTC (rev 139258)
@@ -201,7 +201,9 @@
             tileCoverage |= TiledBacking::CoverageForVerticalScrolling;
 
         if (ScrollingCoordinator* scrollingCoordinator = frame->page()->scrollingCoordinator()) {
-            if (scrollingCoordinator->shouldUpdateScrollLayerPositionOnMainThread())
+            // Ask our TiledBacking for large tiles unless the only reason we're main-thread-scrolling
+            // is a page overlay (find-in-page, the Web Inspector highlight mechanism, etc.).
+            if (scrollingCoordinator->mainThreadScrollingReasons() & ~ScrollingCoordinator::ForcedOnMainThread)
                 tileCoverage |= TiledBacking::CoverageForSlowScrolling;
         }
     }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to