Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(854)

Unified Diff: Source/web/PageOverlay.cpp

Issue 18473002: Add an API to report debugName in GraphicsLayer (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: fix layout test Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/web/PageOverlay.h ('k') | Source/web/PinchViewports.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/PageOverlay.cpp
diff --git a/Source/web/PageOverlay.cpp b/Source/web/PageOverlay.cpp
index c0e7911c527077f6193993a27cdefd1733f98f71..a0efd8c871d023fc7c96c2da3f2e4cbd35e2b073 100644
--- a/Source/web/PageOverlay.cpp
+++ b/Source/web/PageOverlay.cpp
@@ -59,6 +59,7 @@ PassOwnPtr<PageOverlay> PageOverlay::create(WebViewImpl* viewImpl, WebPageOverla
PageOverlay::PageOverlay(WebViewImpl* viewImpl, WebPageOverlay* overlay)
: m_viewImpl(viewImpl)
, m_overlay(overlay)
+ , m_layerClient(0)
, m_zOrder(0)
{
}
@@ -72,6 +73,12 @@ public:
virtual ~OverlayGraphicsLayerClientImpl() { }
+ PassOwnPtr<GraphicsLayer> createGraphicsLayer(GraphicsLayerFactory* factory)
+ {
+ m_layer = GraphicsLayer::create(factory, this);
+ return m_layer.release();
+ }
+
virtual void notifyAnimationStarted(const GraphicsLayer*, double time) { }
virtual void paintContents(const GraphicsLayer*, GraphicsContext& gc, GraphicsLayerPaintingPhase, const IntRect& inClip)
@@ -81,6 +88,12 @@ public:
gc.restore();
}
+ virtual String debugName(const GraphicsLayer* graphicsLayer) OVERRIDE
+ {
+ ASSERT(graphicsLayer == m_layer.get());
+ return String("WebViewImpl Page Overlay Content Layer");
+ }
+
private:
explicit OverlayGraphicsLayerClientImpl(WebPageOverlay* overlay)
: m_overlay(overlay)
@@ -88,8 +101,18 @@ private:
}
WebPageOverlay* m_overlay;
+
+ OwnPtr<GraphicsLayer> m_layer;
};
+PageOverlay::~PageOverlay()
+{
+ if (m_layerClient) {
+ delete m_layerClient;
+ m_layerClient = 0;
+ }
+}
+
void PageOverlay::clear()
{
invalidateWebFrame();
@@ -97,7 +120,7 @@ void PageOverlay::clear()
if (m_layer) {
m_layer->removeFromParent();
m_layer = nullptr;
- m_layerClient = nullptr;
+ m_layerClient = 0;
}
}
@@ -106,9 +129,8 @@ void PageOverlay::update()
invalidateWebFrame();
if (!m_layer) {
- m_layerClient = OverlayGraphicsLayerClientImpl::create(m_overlay);
- m_layer = GraphicsLayer::create(m_viewImpl->graphicsLayerFactory(), m_layerClient.get());
- m_layer->setName("WebViewImpl page overlay content");
+ m_layerClient = OverlayGraphicsLayerClientImpl::create(m_overlay).leakPtr();
+ m_layer = m_layerClient->createGraphicsLayer(m_viewImpl->graphicsLayerFactory());
m_layer->setDrawsContent(true);
}
« no previous file with comments | « Source/web/PageOverlay.h ('k') | Source/web/PinchViewports.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698