Title: [145389] trunk/Source/WebCore
Revision
145389
Author
[email protected]
Date
2013-03-11 12:57:23 -0700 (Mon, 11 Mar 2013)

Log Message

TiledBacking scrolling coverage can be unfairly limited for clients who do scrolling outside the web view
https://bugs.webkit.org/show_bug.cgi?id=111958
<rdar://problem/13356896>

Reviewed by Darin Adler.

Don't limit TiledBacking coverage if the client has opted into using
its exposed rect to allow scrolling above the web view.

* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::adjustTiledBackingCoverage):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (145388 => 145389)


--- trunk/Source/WebCore/ChangeLog	2013-03-11 19:54:06 UTC (rev 145388)
+++ trunk/Source/WebCore/ChangeLog	2013-03-11 19:57:23 UTC (rev 145389)
@@ -1,3 +1,19 @@
+2013-03-11  Tim Horton  <[email protected]>
+
+        TiledBacking scrolling coverage can be unfairly limited for clients who do scrolling outside the web view
+        https://bugs.webkit.org/show_bug.cgi?id=111958
+        <rdar://problem/13356896>
+
+        Reviewed by Darin Adler.
+
+        Don't limit TiledBacking coverage if the client has opted into using
+        its exposed rect to allow scrolling above the web view.
+
+        * platform/graphics/TiledBacking.h:
+        * platform/graphics/ca/mac/TileController.h:
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
+
 2013-03-11  Rajeev Sarvaria  <[email protected]>
 
         GetnUniform*vEXT (Robustness extension) passed incorrect parameter in WebGLRenderingContext

Modified: trunk/Source/WebCore/platform/graphics/TiledBacking.h (145388 => 145389)


--- trunk/Source/WebCore/platform/graphics/TiledBacking.h	2013-03-11 19:54:06 UTC (rev 145388)
+++ trunk/Source/WebCore/platform/graphics/TiledBacking.h	2013-03-11 19:57:23 UTC (rev 145389)
@@ -49,6 +49,7 @@
 
     virtual void setExposedRect(const FloatRect&) = 0;
     virtual void setClipsToExposedRect(bool) = 0;
+    virtual bool clipsToExposedRect() = 0;
 
     virtual void prepopulateRect(const FloatRect&) = 0;
 

Modified: trunk/Source/WebCore/platform/graphics/ca/mac/TileController.h (145388 => 145389)


--- trunk/Source/WebCore/platform/graphics/ca/mac/TileController.h	2013-03-11 19:54:06 UTC (rev 145388)
+++ trunk/Source/WebCore/platform/graphics/ca/mac/TileController.h	2013-03-11 19:57:23 UTC (rev 145389)
@@ -108,6 +108,7 @@
     // TiledBacking member functions.
     virtual void setVisibleRect(const FloatRect&) OVERRIDE;
     virtual void setExposedRect(const FloatRect&) OVERRIDE;
+    virtual bool clipsToExposedRect() OVERRIDE { return m_clipsToExposedRect; }
     virtual void setClipsToExposedRect(bool) OVERRIDE;
     virtual void prepopulateRect(const FloatRect&) OVERRIDE;
     virtual void setIsInWindow(bool) OVERRIDE;

Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (145388 => 145389)


--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2013-03-11 19:54:06 UTC (rev 145388)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2013-03-11 19:57:23 UTC (rev 145389)
@@ -205,10 +205,11 @@
     Frame* frame = renderer()->frame();
     if (frame) {
         FrameView* frameView = frame->view();
-        if (frameView->horizontalScrollbarMode() != ScrollbarAlwaysOff)
+        bool clipsToExposedRect = tiledBacking()->clipsToExposedRect();
+        if (frameView->horizontalScrollbarMode() != ScrollbarAlwaysOff || clipsToExposedRect)
             tileCoverage |= TiledBacking::CoverageForHorizontalScrolling;
 
-        if (frameView->verticalScrollbarMode() != ScrollbarAlwaysOff)
+        if (frameView->verticalScrollbarMode() != ScrollbarAlwaysOff || clipsToExposedRect)
             tileCoverage |= TiledBacking::CoverageForVerticalScrolling;
 
         if (ScrollingCoordinator* scrollingCoordinator = scrollingCoordinatorFromLayer(m_owningLayer)) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to