diff options
author | Andras Becsi <andras.becsi@digia.com> | 2013-12-11 21:33:03 +0100 |
---|---|---|
committer | Andras Becsi <andras.becsi@digia.com> | 2013-12-13 12:34:07 +0100 |
commit | f2a33ff9cbc6d19943f1c7fbddd1f23d23975577 (patch) | |
tree | 0586a32aa390ade8557dfd6b4897f43a07449578 /chromium/third_party/WebKit/Source/web/PinchViewports.cpp | |
parent | 5362912cdb5eea702b68ebe23702468d17c3017a (diff) |
Update Chromium to branch 1650 (31.0.1650.63)
Change-Id: I57d8c832eaec1eb2364e0a8e7352a6dd354db99f
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'chromium/third_party/WebKit/Source/web/PinchViewports.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/web/PinchViewports.cpp | 62 |
1 files changed, 44 insertions, 18 deletions
diff --git a/chromium/third_party/WebKit/Source/web/PinchViewports.cpp b/chromium/third_party/WebKit/Source/web/PinchViewports.cpp index 4e612b0de91..b139a32ed48 100644 --- a/chromium/third_party/WebKit/Source/web/PinchViewports.cpp +++ b/chromium/third_party/WebKit/Source/web/PinchViewports.cpp @@ -33,12 +33,16 @@ #include "WebSettingsImpl.h" #include "WebViewImpl.h" +#include "core/page/Frame.h" #include "core/page/FrameView.h" +#include "core/page/scrolling/ScrollingCoordinator.h" +#include "core/platform/Scrollbar.h" #include "core/platform/graphics/FloatSize.h" #include "core/platform/graphics/GraphicsLayer.h" #include "core/rendering/RenderLayerCompositor.h" #include "public/platform/Platform.h" #include "public/platform/WebCompositorSupport.h" +#include "public/platform/WebLayer.h" #include "public/platform/WebLayerTreeView.h" #include "public/platform/WebScrollbarLayer.h" @@ -67,14 +71,6 @@ PinchViewports::PinchViewports(WebViewImpl* owner) m_innerViewportScrollLayer->platformLayer()->setScrollable(true); -#ifndef NDEBUG - m_innerViewportContainerLayer->setName("inner viewport container layer"); - m_pageScaleLayer->setName("page scale layer"); - m_innerViewportScrollLayer->setName("inner viewport scroll layer"); - m_overlayScrollbarHorizontal->setName("overlay scrollbar horizontal"); - m_overlayScrollbarVertical->setName("overlay scrollbar vertical"); -#endif - m_innerViewportContainerLayer->addChild(m_pageScaleLayer.get()); m_pageScaleLayer->addChild(m_innerViewportScrollLayer.get()); m_innerViewportContainerLayer->addChild(m_overlayScrollbarHorizontal.get()); @@ -142,9 +138,22 @@ void PinchViewports::setupScrollbar(WebScrollbar::Orientation orientation) bool isHorizontal = orientation == WebScrollbar::Horizontal; GraphicsLayer* scrollbarGraphicsLayer = isHorizontal ? m_overlayScrollbarHorizontal.get() : m_overlayScrollbarVertical.get(); + OwnPtr<WebScrollbarLayer>& webScrollbarLayer = isHorizontal ? + m_webOverlayScrollbarHorizontal : m_webOverlayScrollbarVertical; const int overlayScrollbarThickness = m_owner->settingsImpl()->pinchOverlayScrollbarThickness(); + if (!webScrollbarLayer) { + WebCore::ScrollingCoordinator* coordinator = m_owner->page()->scrollingCoordinator(); + ASSERT(coordinator); + WebCore::ScrollbarOrientation webcoreOrientation = isHorizontal ? WebCore::HorizontalScrollbar : WebCore::VerticalScrollbar; + webScrollbarLayer = coordinator->createSolidColorScrollbarLayer(webcoreOrientation, overlayScrollbarThickness, false); + + webScrollbarLayer->setScrollLayer(m_innerViewportScrollLayer->platformLayer()); + scrollbarGraphicsLayer->setContentsToPlatformLayer(webScrollbarLayer->layer()); + scrollbarGraphicsLayer->setDrawsContent(false); + } + int xPosition = isHorizontal ? 0 : m_innerViewportContainerLayer->size().width() - overlayScrollbarThickness; int yPosition = isHorizontal ? m_innerViewportContainerLayer->size().height() - overlayScrollbarThickness : 0; int width = isHorizontal ? m_innerViewportContainerLayer->size().width() - overlayScrollbarThickness : overlayScrollbarThickness; @@ -156,26 +165,23 @@ void PinchViewports::setupScrollbar(WebScrollbar::Orientation orientation) void PinchViewports::registerViewportLayersWithTreeView(WebLayerTreeView* layerTreeView) const { - if (!layerTreeView) - return; + ASSERT(layerTreeView); WebCore::RenderLayerCompositor* compositor = m_owner->compositor(); + GraphicsLayer* scrollLayer = compositor->scrollLayer(); + ASSERT(compositor); - layerTreeView->registerPinchViewportLayers( - m_innerViewportContainerLayer->platformLayer(), + layerTreeView->registerViewportLayers( m_pageScaleLayer->platformLayer(), m_innerViewportScrollLayer->platformLayer(), - compositor->scrollLayer()->platformLayer(), - m_overlayScrollbarHorizontal->platformLayer(), - m_overlayScrollbarVertical->platformLayer()); + scrollLayer->platformLayer()); } void PinchViewports::clearViewportLayersForTreeView(WebLayerTreeView* layerTreeView) const { - if (!layerTreeView) - return; + ASSERT(layerTreeView); - layerTreeView->clearPinchViewportLayers(); + layerTreeView->clearViewportLayers(); } void PinchViewports::notifyAnimationStarted(const GraphicsLayer*, double time) @@ -186,4 +192,24 @@ void PinchViewports::paintContents(const GraphicsLayer*, WebCore::GraphicsContex { } +String PinchViewports::debugName(const GraphicsLayer* graphicsLayer) +{ + String name; + if (graphicsLayer == m_innerViewportContainerLayer.get()) { + name = "Inner Viewport Container Layer"; + } else if (graphicsLayer == m_pageScaleLayer.get()) { + name = "Page Scale Layer"; + } else if (graphicsLayer == m_innerViewportScrollLayer.get()) { + name = "Inner Viewport Scroll Layer"; + } else if (graphicsLayer == m_overlayScrollbarHorizontal.get()) { + name = "Overlay Scrollbar Horizontal Layer"; + } else if (graphicsLayer == m_overlayScrollbarVertical.get()) { + name = "Overlay Scrollbar Vertical Layer"; + } else { + ASSERT_NOT_REACHED(); + } + + return name; +} + } // namespace WebKit |