summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/web/PinchViewports.cpp
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@digia.com>2013-12-11 21:33:03 +0100
committerAndras Becsi <andras.becsi@digia.com>2013-12-13 12:34:07 +0100
commitf2a33ff9cbc6d19943f1c7fbddd1f23d23975577 (patch)
tree0586a32aa390ade8557dfd6b4897f43a07449578 /chromium/third_party/WebKit/Source/web/PinchViewports.cpp
parent5362912cdb5eea702b68ebe23702468d17c3017a (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.cpp62
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