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

Unified Diff: Source/WebKit/chromium/src/WebViewImpl.cpp

Issue 16799005: Insert pinch zoom virtual viewport layers to graphics layer tree. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address comments. Created 7 years, 6 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/WebKit/chromium/src/WebViewImpl.cpp
diff --git a/Source/WebKit/chromium/src/WebViewImpl.cpp b/Source/WebKit/chromium/src/WebViewImpl.cpp
index 578b76c17a80d98efee822adaa32e8f019c61739..f4bf1a22351c85583bf228ed4997fe73b479ded8 100644
--- a/Source/WebKit/chromium/src/WebViewImpl.cpp
+++ b/Source/WebKit/chromium/src/WebViewImpl.cpp
@@ -57,6 +57,7 @@
#include "HTMLNames.h"
#include "LinkHighlight.h"
#include "PageWidgetDelegate.h"
+#include "PinchViewports.h"
#include "PopupContainer.h"
#include "PrerendererClientImpl.h"
#include "SpeechInputClientImpl.h"
@@ -149,7 +150,6 @@
#include "core/platform/graphics/chromium/LayerPainterChromium.h"
#include "core/platform/graphics/gpu/SharedGraphicsContext3D.h"
#include "core/platform/network/ResourceHandle.h"
-#include "core/rendering/RenderLayerCompositor.h"
#include "core/rendering/RenderView.h"
#include "core/rendering/RenderWidget.h"
#include "core/rendering/TextAutosizer.h"
@@ -1612,8 +1612,11 @@ void WebViewImpl::resize(const WebSize& newSize)
agentPrivate->webViewResized(newSize);
if (!agentPrivate || !agentPrivate->metricsOverridden()) {
WebFrameImpl* webFrame = mainFrameImpl();
- if (webFrame->frameView())
+ if (webFrame->frameView()) {
webFrame->frameView()->resize(m_size);
+ if (m_pinchViewports)
+ m_pinchViewports->setViewportSize(m_size);
+ }
}
if (settings()->viewportEnabled()) {
@@ -3815,8 +3818,26 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer)
{
suppressInvalidations(true);
- m_rootGraphicsLayer = layer;
- m_rootLayer = layer ? layer->platformLayer() : 0;
+ if (page()->settings()->pinchVirtualViewportEnabled() && !m_pinchViewports)
+ m_pinchViewports = PinchViewports::create(this);
+
+ if (m_pinchViewports) {
aelias_OOO_until_Jul13 2013/06/18 19:52:28 nit: to clarify what's guarded by setting, I sugge
wjmaclean 2013/06/18 20:11:40 That is clearer, thanks! Done.
+ m_pinchViewports->setOverflowControlsHostLayer(layer);
+ m_pinchViewports->setViewportSize(mainFrameImpl()->frame()->view()->frameRect().size());
+ if (layer) {
+ m_rootGraphicsLayer = m_pinchViewports->rootGraphicsLayer();
+ m_rootLayer = m_pinchViewports->rootGraphicsLayer()->platformLayer();
+ m_pinchViewports->registerViewportLayersWithTreeView(m_layerTreeView);
+ } else {
+ m_rootGraphicsLayer = 0;
+ m_rootLayer = 0;
+ m_pinchViewports->clearViewportLayersForTreeView(m_layerTreeView);
+ }
+ } else {
+ m_rootGraphicsLayer = layer;
+ m_rootLayer = layer ? layer->platformLayer() : 0;
+ }
+
setIsAcceleratedCompositingActive(layer);
@@ -3854,6 +3875,16 @@ WebCore::GraphicsLayerFactory* WebViewImpl::graphicsLayerFactory() const
return m_graphicsLayerFactory.get();
}
+WebCore::RenderLayerCompositor* WebViewImpl::compositor() const
+{
+ if (!page()
+ || !page()->mainFrame()
+ || !page()->mainFrame()->document()
+ || !page()->mainFrame()->document()->renderView())
+ return 0;
+ return page()->mainFrame()->document()->renderView()->compositor();
+}
+
void WebViewImpl::registerForAnimations(WebLayer* layer)
{
if (m_layerTreeView)

Powered by Google App Engine
This is Rietveld 408576698