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

Unified Diff: Source/web/WebViewImpl.cpp

Issue 1264483002: PageOverlays: Remove PageOverlayList (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase 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
« no previous file with comments | « Source/web/WebViewImpl.h ('k') | Source/web/painting/ContinuousPainter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/WebViewImpl.cpp
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp
index 7637ecfe41db6181869a39e7a53017174a44a34d..9d24b769e34fe91feaacb519c8bf8eb2c3a4d894 100644
--- a/Source/web/WebViewImpl.cpp
+++ b/Source/web/WebViewImpl.cpp
@@ -153,6 +153,7 @@
#include "web/GraphicsLayerFactoryChromium.h"
#include "web/InspectorOverlayImpl.h"
#include "web/LinkHighlightImpl.h"
+#include "web/PageOverlay.h"
#include "web/PrerendererClientImpl.h"
#include "web/ResizeViewportAnchor.h"
#include "web/RotationViewportAnchor.h"
@@ -294,7 +295,7 @@ private:
}
};
-class ColorOverlay : public WebPageOverlay {
+class ColorOverlay : public PageOverlay::Delegate {
public:
ColorOverlay(WebColor color)
: m_color(color)
@@ -1900,7 +1901,13 @@ 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 = nullptr;
+ if (m_inspectorOverlay) {
+ PageOverlay* inspectorPageOverlay = m_inspectorOverlay->pageOverlay();
+ if (inspectorPageOverlay)
+ inspectorOverlayLayer = inspectorPageOverlay->graphicsLayer();
+ }
+ ContinuousPainter::setNeedsDisplayRecursive(m_rootGraphicsLayer, inspectorOverlayLayer);
m_client->scheduleAnimation();
}
}
@@ -3659,8 +3666,7 @@ void WebViewImpl::sendResizeEventAndRepaint()
m_client->didInvalidateRect(damagedRect);
}
}
- if (m_pageOverlays)
- m_pageOverlays->update();
+ updatePageOverlays();
m_devToolsEmulator->viewportChanged();
}
@@ -3995,32 +4001,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)
@@ -4118,9 +4108,7 @@ 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().visualViewport().registerLayersWithTreeView(m_layerTreeView);
- if (m_pageOverlays)
- m_pageOverlays->update();
-
+ updatePageOverlays();
// 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
@@ -4437,4 +4425,15 @@ void WebViewImpl::forceNextDrawingBufferCreationToFail()
DrawingBuffer::forceNextDrawingBufferCreationToFail();
}
+void WebViewImpl::updatePageOverlays()
+{
+ if (m_pageColorOverlay)
+ m_pageColorOverlay->update();
+ if (m_inspectorOverlay) {
+ PageOverlay* inspectorPageOverlay = m_inspectorOverlay->pageOverlay();
+ if (inspectorPageOverlay)
+ inspectorPageOverlay->update();
+ }
+}
+
} // namespace blink
« no previous file with comments | « Source/web/WebViewImpl.h ('k') | Source/web/painting/ContinuousPainter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698