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

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: Skip creating WebScrollbarLayers, defer to creation in CC. 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 8792a6f93b56771340581b347dc000a3592e0af4..184e5a85cc022795ab0ceee41fa0840a52c28437 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"
@@ -148,7 +149,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"
@@ -1611,8 +1611,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(FloatSize(m_size.width, m_size.height));
+ }
}
if (settings()->viewportEnabled()) {
@@ -3806,11 +3809,28 @@ 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);
jamesr 2013/06/14 20:55:46 do you need to tear the pinch viewports down when
wjmaclean 2013/06/17 17:45:27 I don't *think* so, though I could be convinced ot
+
+ if (m_pinchViewports) {
+ m_pinchViewports->setOverflowControlsHostLayer(layer);
+ if (layer) {
+ m_rootGraphicsLayer = m_pinchViewports->rootGraphicsLayer();
+ m_rootLayer = m_pinchViewports->rootGraphicsLayer()->platformLayer();
+ } else {
+ m_rootGraphicsLayer = 0;
+ m_rootLayer = 0;
+ }
+ } else {
+ m_rootGraphicsLayer = layer;
+ m_rootLayer = layer ? layer->platformLayer() : 0;
+ }
+
setIsAcceleratedCompositingActive(layer);
+ // FIXME: We also need to tell the layer tree about the pinchViewport layers
+ // in a follow-on CL.
if (m_layerTreeView) {
if (m_rootLayer)
m_layerTreeView->setRootLayer(*m_rootLayer);
@@ -3845,6 +3865,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