Title: [150093] trunk/Source
- Revision
- 150093
- Author
- timothy_hor...@apple.com
- Date
- 2013-05-14 17:18:02 -0700 (Tue, 14 May 2013)
Log Message
[wk2] Not updating tiled backing coverage when main frame scrollability changes
https://bugs.webkit.org/show_bug.cgi?id=116123
<rdar://problem/13836559>
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
Add updateMainFrameClipsToExposedRect.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
Remove m_clipsToExposedRect. We don't actually need it.
(WebKit::TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged):
Call updateMainFrameClipsToExposedRect so that we can always update
tiled backing coverage and can factor out our calls to setClipsToExposedRect.
(WebKit::TiledCoreAnimationDrawingArea::updateMainFrameClipsToExposedRect):
Factor out setClipsToExposedRect calls to here, and also call
FrameView::adjustTiledBackingCoverage so that the FrameView's tiled
backing is informed to allow overdraw in the UI-process-scrolling case.
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
Use updateMainFrameClipsToExposedRect.
Export FrameView::adjustTiledBackingCoverage.
* WebCore.exp.in:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (150092 => 150093)
--- trunk/Source/WebCore/ChangeLog 2013-05-15 00:15:30 UTC (rev 150092)
+++ trunk/Source/WebCore/ChangeLog 2013-05-15 00:18:02 UTC (rev 150093)
@@ -1,3 +1,15 @@
+2013-05-14 Tim Horton <timothy_hor...@apple.com>
+
+ [wk2] Not updating tiled backing coverage when main frame scrollability changes
+ https://bugs.webkit.org/show_bug.cgi?id=116123
+ <rdar://problem/13836559>
+
+ Reviewed by Simon Fraser.
+
+ Export FrameView::adjustTiledBackingCoverage.
+
+ * WebCore.exp.in:
+
2013-05-14 Alexey Proskuryakov <a...@apple.com>
[Mac] Add a testing shim for secure event input functions
Modified: trunk/Source/WebCore/WebCore.exp.in (150092 => 150093)
--- trunk/Source/WebCore/WebCore.exp.in 2013-05-15 00:15:30 UTC (rev 150092)
+++ trunk/Source/WebCore/WebCore.exp.in 2013-05-15 00:18:02 UTC (rev 150093)
@@ -1154,6 +1154,7 @@
__ZN7WebCore9FrameView24forceLayoutForPaginationERKNS_9FloatSizeES3_fNS_19AdjustViewSizeOrNotE
__ZN7WebCore9FrameView24paintContentsForSnapshotEPNS_15GraphicsContextERKNS_7IntRectENS0_18SelectionInSnaphotENS0_26CoordinateSpaceForSnapshotE
__ZN7WebCore9FrameView26adjustPageHeightDeprecatedEPffff
+__ZN7WebCore9FrameView26adjustTiledBackingCoverageEv
__ZN7WebCore9FrameView29setShouldUpdateWhileOffscreenEb
__ZN7WebCore9FrameView37setScrollingPerformanceLoggingEnabledEb
__ZN7WebCore9FrameView37updateLayoutAndStyleIfNeededRecursiveEv
Modified: trunk/Source/WebKit2/ChangeLog (150092 => 150093)
--- trunk/Source/WebKit2/ChangeLog 2013-05-15 00:15:30 UTC (rev 150092)
+++ trunk/Source/WebKit2/ChangeLog 2013-05-15 00:18:02 UTC (rev 150093)
@@ -1,3 +1,32 @@
+2013-05-14 Tim Horton <timothy_hor...@apple.com>
+
+ [wk2] Not updating tiled backing coverage when main frame scrollability changes
+ https://bugs.webkit.org/show_bug.cgi?id=116123
+ <rdar://problem/13836559>
+
+ Reviewed by Simon Fraser.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
+ (TiledCoreAnimationDrawingArea):
+ Add updateMainFrameClipsToExposedRect.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
+ (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
+ Remove m_clipsToExposedRect. We don't actually need it.
+
+ (WebKit::TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged):
+ Call updateMainFrameClipsToExposedRect so that we can always update
+ tiled backing coverage and can factor out our calls to setClipsToExposedRect.
+
+ (WebKit::TiledCoreAnimationDrawingArea::updateMainFrameClipsToExposedRect):
+ Factor out setClipsToExposedRect calls to here, and also call
+ FrameView::adjustTiledBackingCoverage so that the FrameView's tiled
+ backing is informed to allow overdraw in the UI-process-scrolling case.
+
+ (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
+ Use updateMainFrameClipsToExposedRect.
+
2013-05-14 Alexey Proskuryakov <a...@apple.com>
[Mac] Add a testing shim for secure event input functions
Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h (150092 => 150093)
--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h 2013-05-15 00:15:30 UTC (rev 150092)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h 2013-05-15 00:18:02 UTC (rev 150093)
@@ -110,6 +110,7 @@
void updateDebugInfoLayer(bool showLayer);
void updateIntrinsicContentSizeTimerFired(WebCore::Timer<TiledCoreAnimationDrawingArea>*);
+ void updateMainFrameClipsToExposedRect();
void invalidateAllPageOverlays();
@@ -131,7 +132,6 @@
bool m_hasRootCompositingLayer;
WebCore::FloatRect m_exposedRect;
- bool m_clipsToExposedRect;
WebCore::IntSize m_lastSentIntrinsicContentSize;
WebCore::Timer<TiledCoreAnimationDrawingArea> m_updateIntrinsicContentSizeTimer;
Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (150092 => 150093)
--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm 2013-05-15 00:15:30 UTC (rev 150092)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm 2013-05-15 00:18:02 UTC (rev 150093)
@@ -70,7 +70,6 @@
, m_layerTreeStateIsFrozen(false)
, m_layerFlushScheduler(this)
, m_isPaintingSuspended(!parameters.isVisible)
- , m_clipsToExposedRect(false)
, m_updateIntrinsicContentSizeTimer(this, &TiledCoreAnimationDrawingArea::updateIntrinsicContentSizeTimerFired)
{
Page* page = m_webPage->corePage();
@@ -350,7 +349,7 @@
}
IntRect visibleRect = enclosingIntRect(m_rootLayer.get().frame);
- if (m_clipsToExposedRect)
+ if (!m_webPage->mainFrameIsScrollable())
visibleRect.intersect(enclosingIntRect(m_exposedRect));
for (PageOverlayLayerMap::iterator it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it) {
GraphicsLayer* layer = it->value.get();
@@ -402,14 +401,9 @@
tiledBacking->setExposedRect(exposedRect);
}
-void TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged(bool isScrollable)
+void TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged(bool)
{
- m_clipsToExposedRect = !isScrollable;
- mainFrameTiledBacking()->setClipsToExposedRect(!isScrollable);
-
- for (PageOverlayLayerMap::iterator it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it)
- if (TiledBacking* tiledBacking = it->value->tiledBacking())
- tiledBacking->setClipsToExposedRect(!isScrollable);
+ updateMainFrameClipsToExposedRect();
}
void TiledCoreAnimationDrawingArea::updateGeometry(const IntSize& viewSize, const IntSize& layerPosition)
@@ -515,6 +509,28 @@
m_layerHostingContext->setColorSpace(colorSpace.get());
}
+void TiledCoreAnimationDrawingArea::updateMainFrameClipsToExposedRect()
+{
+ bool isScrollable = m_webPage->mainFrameIsScrollable();
+
+ if (TiledBacking* tiledBacking = mainFrameTiledBacking())
+ tiledBacking->setClipsToExposedRect(!isScrollable);
+
+ for (PageOverlayLayerMap::iterator it = m_pageOverlayLayers.begin(), end = m_pageOverlayLayers.end(); it != end; ++it)
+ if (TiledBacking* tiledBacking = it->value->tiledBacking())
+ tiledBacking->setClipsToExposedRect(!isScrollable);
+
+ Frame* frame = m_webPage->corePage()->mainFrame();
+ if (!frame)
+ return;
+
+ FrameView* frameView = frame->view();
+ if (!frameView)
+ return;
+
+ frameView->adjustTiledBackingCoverage();
+}
+
void TiledCoreAnimationDrawingArea::setRootCompositingLayer(CALayer *layer)
{
ASSERT(!m_layerTreeStateIsFrozen);
@@ -536,9 +552,10 @@
if (TiledBacking* tiledBacking = mainFrameTiledBacking()) {
tiledBacking->setAggressivelyRetainsTiles(m_webPage->corePage()->settings()->aggressiveTileRetentionEnabled());
tiledBacking->setExposedRect(m_exposedRect);
- tiledBacking->setClipsToExposedRect(!m_webPage->mainFrameIsScrollable());
}
+ updateMainFrameClipsToExposedRect();
+
updateDebugInfoLayer(m_webPage->corePage()->settings()->showTiledScrollingIndicator());
[CATransaction commit];
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes