Changeset 162662 in webkit
- Timestamp:
- Jan 23, 2014 4:36:14 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r162658 r162662 1 2014-01-23 Tim Horton <timothy_horton@apple.com> 2 3 [wk2] Page Overlays: Add API to clear the page overlay (and get rid of its backing store) 4 https://bugs.webkit.org/show_bug.cgi?id=127518 5 6 Reviewed by Anders Carlsson. 7 8 Add WKBundlePageOverlayClear, to allow clients of the page overlay API to 9 manually clear the page overlay's backing store, for memory, power, and performance gains. 10 11 * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: 12 (WKBundlePageOverlayClear): 13 * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h: 14 * WebProcess/WebPage/DrawingArea.h: 15 (WebKit::DrawingArea::clearPageOverlay): 16 * WebProcess/WebPage/PageOverlay.cpp: 17 (WebKit::PageOverlay::clear): 18 * WebProcess/WebPage/PageOverlay.h: 19 Add WKBundlePageOverlayClear and plumb it through PageOverlay to the DrawingArea. 20 21 * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: 22 * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: 23 (WebKit::RemoteLayerTreeDrawingArea::clearPageOverlay): 24 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: 25 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: 26 (WebKit::TiledCoreAnimationDrawingArea::clearPageOverlay): 27 Set the layer to drawsContent=false and give it 0x0 size, effectively 28 removing its backing store. 29 1 30 2014-01-23 Anders Carlsson <andersca@apple.com> 2 31 -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp
r160104 r162662 179 179 return 1; 180 180 } 181 182 void WKBundlePageOverlayClear(WKBundlePageOverlayRef bundlePageOverlayRef) 183 { 184 toImpl(bundlePageOverlayRef)->clear(); 185 } -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h
r160104 r162662 115 115 WK_EXPORT float WKBundlePageOverlayFractionFadedIn(WKBundlePageOverlayRef bundlePageOverlay); 116 116 WK_EXPORT void WKBundlePageOverlaySetAccessibilityClient(WKBundlePageOverlayRef bundlePageOverlay, WKBundlePageOverlayAccessibilityClientBase* client); 117 WK_EXPORT void WKBundlePageOverlayClear(WKBundlePageOverlayRef bundlePageOverlay); 117 118 118 119 #ifdef __cplusplus -
trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h
r162276 r162662 83 83 virtual void setPageOverlayNeedsDisplay(PageOverlay*, const WebCore::IntRect&) { } 84 84 virtual void setPageOverlayOpacity(PageOverlay*, float) { } 85 virtual void clearPageOverlay(PageOverlay*) { } 85 86 86 87 virtual void setPaintingEnabled(bool) { } -
trunk/Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp
r156543 r162662 192 192 } 193 193 194 void PageOverlay::clear() 195 { 196 m_webPage->drawingArea()->clearPageOverlay(this); 197 } 198 194 199 } // namespace WebKit -
trunk/Source/WebKit2/WebProcess/WebPage/PageOverlay.h
r160384 r162662 77 77 void stopFadeOutAnimation(); 78 78 79 void clear(); 80 79 81 Client* client() const { return m_client; } 80 82 -
trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h
r162139 r162662 65 65 virtual void setPageOverlayNeedsDisplay(PageOverlay*, const WebCore::IntRect&) override; 66 66 virtual void setPageOverlayOpacity(PageOverlay*, float) override; 67 virtual void clearPageOverlay(PageOverlay*) override; 67 68 virtual bool supportsAsyncScrolling() override { return true; } 68 69 -
trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm
r161533 r162662 178 178 } 179 179 180 void RemoteLayerTreeDrawingArea::clearPageOverlay(PageOverlay* pageOverlay) 181 { 182 GraphicsLayer* layer = m_pageOverlayLayers.get(pageOverlay); 183 184 if (!layer) 185 return; 186 187 layer->setDrawsContent(false); 188 layer->setSize(IntSize()); 189 scheduleCompositingLayerFlush(); 190 } 191 180 192 void RemoteLayerTreeDrawingArea::paintContents(const GraphicsLayer* graphicsLayer, GraphicsContext& graphicsContext, GraphicsLayerPaintingPhase, const IntRect& clipRect) 181 193 { -
trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h
r162276 r162662 75 75 virtual void setPageOverlayNeedsDisplay(PageOverlay*, const WebCore::IntRect&) override; 76 76 virtual void setPageOverlayOpacity(PageOverlay*, float) override; 77 virtual void clearPageOverlay(PageOverlay*) override; 77 78 virtual void updatePreferences(const WebPreferencesStore&) override; 78 79 virtual void mainFrameContentSizeChanged(const WebCore::IntSize&) override; -
trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm
r162505 r162662 240 240 } 241 241 242 void TiledCoreAnimationDrawingArea::clearPageOverlay(PageOverlay* pageOverlay) 243 { 244 GraphicsLayer* layer = m_pageOverlayLayers.get(pageOverlay); 245 246 if (!layer) 247 return; 248 249 layer->setDrawsContent(false); 250 layer->setSize(IntSize()); 251 scheduleCompositingLayerFlush(); 252 } 253 242 254 void TiledCoreAnimationDrawingArea::updatePreferences(const WebPreferencesStore&) 243 255 {
Note: See TracChangeset
for help on using the changeset viewer.