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

Unified Diff: Source/web/WebViewImpl.cpp

Issue 1264483002: PageOverlays: Remove PageOverlayList (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Move WebPageOverlay to PageOverlay Created 5 years, 5 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
Index: Source/web/WebViewImpl.cpp
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp
index 1316d1d0b49035fb105b58a4de4671584512f93d..d94e6a8279adfee517d38d1ef87a55db90018c2b 100644
--- a/Source/web/WebViewImpl.cpp
+++ b/Source/web/WebViewImpl.cpp
@@ -294,7 +294,7 @@ private:
}
};
-class ColorOverlay : public WebPageOverlay {
+class ColorOverlay : public PageOverlay::Delegate {
public:
ColorOverlay(WebColor color)
: m_color(color)
@@ -1895,7 +1895,8 @@ void WebViewImpl::beginFrame(const WebBeginFrameArgs& frameTime)
PageWidgetDelegate::animate(*m_page, validFrameTime.lastFrameTimeMonotonic, *m_page->deprecatedLocalMainFrame());
if (m_continuousPaintingEnabled) {
- ContinuousPainter::setNeedsDisplayRecursive(m_rootGraphicsLayer, m_pageOverlays.get());
+ GraphicsLayer* inspectorOverlayLayer = m_inspectorOverlay ? m_inspectorOverlay->graphicsLayer() : nullptr;
+ ContinuousPainter::setNeedsDisplayRecursive(m_rootGraphicsLayer, inspectorOverlayLayer);
m_client->scheduleAnimation();
}
}
@@ -3643,8 +3644,11 @@ void WebViewImpl::sendResizeEventAndRepaint()
m_client->didInvalidateRect(damagedRect);
}
}
- if (m_pageOverlays)
- m_pageOverlays->update();
+ if (m_pageColorOverlay)
+ m_pageColorOverlay->update();
+ if (m_inspectorOverlay)
+ m_inspectorOverlay->updatePageOverlay();
+
m_devToolsEmulator->viewportChanged();
}
@@ -3979,32 +3983,16 @@ void WebViewImpl::setZoomFactorOverride(float zoomFactor)
setZoomLevel(zoomLevel());
}
-void WebViewImpl::addPageOverlay(WebPageOverlay* overlay, int zOrder)
-{
- if (!m_pageOverlays)
- m_pageOverlays = PageOverlayList::create(this);
-
- m_pageOverlays->add(overlay, zOrder);
-}
-
void WebViewImpl::setPageOverlayColor(WebColor color)
{
- if (m_pageColorOverlay) {
- removePageOverlay(m_pageColorOverlay.get());
+ if (m_pageColorOverlay)
m_pageColorOverlay.clear();
- }
if (color == Color::transparent)
return;
- m_pageColorOverlay = adoptPtr(new ColorOverlay(color));
- addPageOverlay(m_pageColorOverlay.get(), 0);
-}
-
-void WebViewImpl::removePageOverlay(WebPageOverlay* overlay)
-{
- if (m_pageOverlays && m_pageOverlays->remove(overlay) && m_pageOverlays->empty())
- m_pageOverlays = nullptr;
+ m_pageColorOverlay = PageOverlay::create(this, adoptPtr(new ColorOverlay(color)));
+ m_pageColorOverlay->update();
}
void WebViewImpl::setOverlayLayer(GraphicsLayer* layer)
@@ -4102,9 +4090,10 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer)
// We register viewport layers here since there may not be a layer
// tree view prior to this point.
page()->frameHost().pinchViewport().registerLayersWithTreeView(m_layerTreeView);
- if (m_pageOverlays)
- m_pageOverlays->update();
-
+ if (m_pageColorOverlay)
+ m_pageColorOverlay->update();
+ if (m_inspectorOverlay)
+ m_inspectorOverlay->updatePageOverlay();
// TODO(enne): Work around page visibility changes not being
// propogated to the WebView in some circumstances. This needs to
// be refreshed here when setting a new root layer to avoid being

Powered by Google App Engine
This is Rietveld 408576698