Title: [172039] trunk/Source/WebCore
Revision
172039
Author
an...@apple.com
Date
2014-08-05 11:34:57 -0700 (Tue, 05 Aug 2014)

Log Message

REGRESSION: Extremely flashy scrolling while a page is still loading (because of flush throttling)
https://bugs.webkit.org/show_bug.cgi?id=135603
<rdar://problem/17876385>

Reviewed by Andreas Kling.

* page/FrameView.cpp:
(WebCore::determineLayerFlushThrottleState):
        
    Disable throttling after user has scrolled the page.
    This is consistent with the speculative tiling. It also gets enabled on first scroll.

(WebCore::FrameView::setWasScrolledByUser):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (172038 => 172039)


--- trunk/Source/WebCore/ChangeLog	2014-08-05 18:29:42 UTC (rev 172038)
+++ trunk/Source/WebCore/ChangeLog	2014-08-05 18:34:57 UTC (rev 172039)
@@ -1,3 +1,19 @@
+2014-08-05  Antti Koivisto  <an...@apple.com>
+
+        REGRESSION: Extremely flashy scrolling while a page is still loading (because of flush throttling)
+        https://bugs.webkit.org/show_bug.cgi?id=135603
+        <rdar://problem/17876385>
+
+        Reviewed by Andreas Kling.
+
+        * page/FrameView.cpp:
+        (WebCore::determineLayerFlushThrottleState):
+        
+            Disable throttling after user has scrolled the page.
+            This is consistent with the speculative tiling. It also gets enabled on first scroll.
+
+        (WebCore::FrameView::setWasScrolledByUser):
+
 2014-08-05  Martin Hodovan  <mhodovan.u-sze...@partner.samsung.com>
 
         ASSERTION FAILED: name[0] == '@' && length >= 2 in WebCore::CSSParser::detectAtToken

Modified: trunk/Source/WebCore/page/FrameView.cpp (172038 => 172039)


--- trunk/Source/WebCore/page/FrameView.cpp	2014-08-05 18:29:42 UTC (rev 172038)
+++ trunk/Source/WebCore/page/FrameView.cpp	2014-08-05 18:34:57 UTC (rev 172039)
@@ -2276,6 +2276,9 @@
     // We only throttle when constantly receiving new data during the inital page load.
     if (!page.progress().isMainLoadProgressing())
         return 0;
+    // Scrolling during page loading disables throttling.
+    if (page.mainFrame().view()->wasScrolledByUser())
+        return 0;
     // Disable for image documents so large GIF animations don't get throttled during loading.
     auto* document = page.mainFrame().document();
     if (!document || isImageDocument(*document))
@@ -3566,6 +3569,7 @@
     if (m_wasScrolledByUser == wasScrolledByUser)
         return;
     m_wasScrolledByUser = wasScrolledByUser;
+    updateLayerFlushThrottling();
     adjustTiledBackingCoverage();
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to