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

Unified Diff: Source/web/WebViewImpl.cpp

Issue 1264483002: PageOverlays: Remove PageOverlayList (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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 5f4ceea6761aa4df63bc515df859c7ea669fa252..ad7d749076242fa47154ede3553ee2a4cd92e815 100644
--- a/Source/web/WebViewImpl.cpp
+++ b/Source/web/WebViewImpl.cpp
@@ -1906,7 +1906,7 @@ 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());
+ ContinuousPainter::setNeedsDisplayRecursive(m_rootGraphicsLayer, m_pageOverlay->graphicsLayer());
m_client->scheduleAnimation();
}
}
@@ -1942,7 +1942,7 @@ void WebViewImpl::paint(WebCanvas* canvas, const WebRect& rect)
ASSERT(!isAcceleratedCompositingActive());
double paintStart = currentTime();
- PageWidgetDelegate::paint(*m_page, pageOverlays(), canvas, rect, *m_page->deprecatedLocalMainFrame());
+ PageWidgetDelegate::paint(*m_page, m_pageOverlay.get(), canvas, rect, *m_page->deprecatedLocalMainFrame());
double paintEnd = currentTime();
double pixelsPerSec = (rect.width * rect.height) / (paintEnd - paintStart);
Platform::current()->histogramCustomCounts("Renderer4.SoftwarePaintDurationMS", (paintEnd - paintStart) * 1000, 0, 120, 30);
@@ -3654,8 +3654,8 @@ void WebViewImpl::sendResizeEventAndRepaint()
m_client->didInvalidateRect(damagedRect);
}
}
- if (m_pageOverlays)
- m_pageOverlays->update();
+ if (m_pageOverlay)
+ m_pageOverlay->update();
m_devToolsEmulator->viewportChanged();
}
@@ -3990,12 +3990,15 @@ void WebViewImpl::setZoomFactorOverride(float zoomFactor)
setZoomLevel(zoomLevel());
}
-void WebViewImpl::addPageOverlay(WebPageOverlay* overlay, int zOrder)
+void WebViewImpl::addPageOverlay(WebPageOverlay* overlay)
dgozman 2015/07/28 16:16:57 Should we pass PageOverlay here and make client cr
sergeyv 2015/07/29 18:12:36 Done.
{
- if (!m_pageOverlays)
- m_pageOverlays = PageOverlayList::create(this);
+ if (m_pageOverlay && m_pageOverlay->overlay() != overlay)
+ return;
+
+ if (!m_pageOverlay)
+ m_pageOverlay = PageOverlay::create(this, overlay);
- m_pageOverlays->add(overlay, zOrder);
+ m_pageOverlay->update();
}
void WebViewImpl::setPageOverlayColor(WebColor color)
@@ -4009,13 +4012,16 @@ void WebViewImpl::setPageOverlayColor(WebColor color)
return;
m_pageColorOverlay = adoptPtr(new ColorOverlay(color));
- addPageOverlay(m_pageColorOverlay.get(), 0);
+ addPageOverlay(m_pageColorOverlay.get());
}
void WebViewImpl::removePageOverlay(WebPageOverlay* overlay)
{
- if (m_pageOverlays && m_pageOverlays->remove(overlay) && m_pageOverlays->empty())
- m_pageOverlays = nullptr;
+ if (!m_pageOverlay || m_pageOverlay->overlay() != overlay)
+ return;
+
+ m_pageOverlay->clear();
+ m_pageOverlay.clear();
}
void WebViewImpl::setOverlayLayer(GraphicsLayer* layer)
@@ -4113,8 +4119,8 @@ 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_pageOverlay)
+ m_pageOverlay->update();
// TODO(enne): Work around page visibility changes not being
// propogated to the WebView in some circumstances. This needs to

Powered by Google App Engine
This is Rietveld 408576698