| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 #include "core/page/scrolling/ScrollingCoordinator.h" | 46 #include "core/page/scrolling/ScrollingCoordinator.h" |
| 47 #include "platform/Histogram.h" | 47 #include "platform/Histogram.h" |
| 48 #include "platform/TraceEvent.h" | 48 #include "platform/TraceEvent.h" |
| 49 #include "platform/geometry/DoubleRect.h" | 49 #include "platform/geometry/DoubleRect.h" |
| 50 #include "platform/geometry/FloatSize.h" | 50 #include "platform/geometry/FloatSize.h" |
| 51 #include "platform/graphics/CompositorMutableProperties.h" | 51 #include "platform/graphics/CompositorMutableProperties.h" |
| 52 #include "platform/graphics/GraphicsLayer.h" | 52 #include "platform/graphics/GraphicsLayer.h" |
| 53 #include "platform/scroll/Scrollbar.h" | 53 #include "platform/scroll/Scrollbar.h" |
| 54 #include "platform/scroll/ScrollbarThemeOverlay.h" | 54 #include "platform/scroll/ScrollbarThemeOverlay.h" |
| 55 #include "public/platform/WebCompositorSupport.h" | 55 #include "public/platform/WebCompositorSupport.h" |
| 56 #include "public/platform/WebLayer.h" | |
| 57 #include "public/platform/WebLayerTreeView.h" | |
| 58 #include "public/platform/WebScrollbar.h" | 56 #include "public/platform/WebScrollbar.h" |
| 59 #include "public/platform/WebScrollbarLayer.h" | 57 #include "public/platform/WebScrollbarLayer.h" |
| 60 #include <memory> | 58 #include <memory> |
| 61 | 59 |
| 62 using blink::WebLayer; | |
| 63 using blink::WebLayerTreeView; | |
| 64 using blink::WebScrollbar; | |
| 65 using blink::WebScrollbarLayer; | |
| 66 using blink::FrameHost; | |
| 67 using blink::GraphicsLayer; | |
| 68 | |
| 69 namespace blink { | 60 namespace blink { |
| 70 | 61 |
| 71 VisualViewport::VisualViewport(FrameHost& owner) | 62 VisualViewport::VisualViewport(FrameHost& owner) |
| 72 : m_frameHost(&owner) | 63 : m_frameHost(&owner) |
| 73 , m_scale(1) | 64 , m_scale(1) |
| 74 , m_topControlsAdjustment(0) | 65 , m_topControlsAdjustment(0) |
| 75 , m_maxPageScale(-1) | 66 , m_maxPageScale(-1) |
| 76 , m_trackPinchZoomStatsForPage(false) | 67 , m_trackPinchZoomStatsForPage(false) |
| 77 { | 68 { |
| 78 reset(); | 69 reset(); |
| (...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 int yPosition = isHorizontal ? m_innerViewportContainerLayer->size().height(
) - scrollbarThickness : 0; | 460 int yPosition = isHorizontal ? m_innerViewportContainerLayer->size().height(
) - scrollbarThickness : 0; |
| 470 int width = isHorizontal ? m_innerViewportContainerLayer->size().width() - s
crollbarThickness : scrollbarThickness; | 461 int width = isHorizontal ? m_innerViewportContainerLayer->size().width() - s
crollbarThickness : scrollbarThickness; |
| 471 int height = isHorizontal ? scrollbarThickness : m_innerViewportContainerLay
er->size().height() - scrollbarThickness; | 462 int height = isHorizontal ? scrollbarThickness : m_innerViewportContainerLay
er->size().height() - scrollbarThickness; |
| 472 | 463 |
| 473 // Use the GraphicsLayer to position the scrollbars. | 464 // Use the GraphicsLayer to position the scrollbars. |
| 474 scrollbarGraphicsLayer->setPosition(IntPoint(xPosition, yPosition)); | 465 scrollbarGraphicsLayer->setPosition(IntPoint(xPosition, yPosition)); |
| 475 scrollbarGraphicsLayer->setSize(FloatSize(width, height)); | 466 scrollbarGraphicsLayer->setSize(FloatSize(width, height)); |
| 476 scrollbarGraphicsLayer->setContentsRect(IntRect(0, 0, width, height)); | 467 scrollbarGraphicsLayer->setContentsRect(IntRect(0, 0, width, height)); |
| 477 } | 468 } |
| 478 | 469 |
| 479 void VisualViewport::registerLayersWithTreeView(WebLayerTreeView* layerTreeView)
const | 470 void VisualViewport::setScrollLayerOnScrollbars(WebLayer* scrollLayer) const |
| 480 { | 471 { |
| 481 TRACE_EVENT0("blink", "VisualViewport::registerLayersWithTreeView"); | 472 // TODO(bokan): This is currently done while registering viewport layers |
| 482 ASSERT(layerTreeView); | 473 // with the compositor but could it actually be done earlier, like in |
| 483 | 474 // setupScrollbars? Then we wouldn't need this method. |
| 484 if (!mainFrame()) | |
| 485 return; | |
| 486 | |
| 487 ASSERT(!frameHost().page().deprecatedLocalMainFrame()->contentLayoutItem().i
sNull()); | |
| 488 | |
| 489 PaintLayerCompositor* compositor = frameHost().page().deprecatedLocalMainFra
me()->contentLayoutItem().compositor(); | |
| 490 // Get the outer viewport scroll layer. | |
| 491 WebLayer* scrollLayer = compositor->scrollLayer() ? compositor->scrollLayer(
)->platformLayer() : 0; | |
| 492 | |
| 493 m_webOverlayScrollbarHorizontal->setScrollLayer(scrollLayer); | 475 m_webOverlayScrollbarHorizontal->setScrollLayer(scrollLayer); |
| 494 m_webOverlayScrollbarVertical->setScrollLayer(scrollLayer); | 476 m_webOverlayScrollbarVertical->setScrollLayer(scrollLayer); |
| 495 | |
| 496 ASSERT(compositor); | |
| 497 layerTreeView->registerViewportLayers( | |
| 498 m_overscrollElasticityLayer->platformLayer(), | |
| 499 m_pageScaleLayer->platformLayer(), | |
| 500 m_innerViewportScrollLayer->platformLayer(), | |
| 501 scrollLayer); | |
| 502 } | 477 } |
| 503 | 478 |
| 504 bool VisualViewport::visualViewportSuppliesScrollbars() const | 479 bool VisualViewport::visualViewportSuppliesScrollbars() const |
| 505 { | 480 { |
| 506 return frameHost().settings().viewportEnabled(); | 481 return frameHost().settings().viewportEnabled(); |
| 507 } | 482 } |
| 508 | 483 |
| 509 bool VisualViewport::scrollAnimatorEnabled() const | 484 bool VisualViewport::scrollAnimatorEnabled() const |
| 510 { | 485 { |
| 511 return frameHost().settings().scrollAnimatorEnabled(); | 486 return frameHost().settings().scrollAnimatorEnabled(); |
| 512 } | 487 } |
| 513 | 488 |
| 514 void VisualViewport::clearLayersForTreeView(WebLayerTreeView* layerTreeView) con
st | |
| 515 { | |
| 516 ASSERT(layerTreeView); | |
| 517 | |
| 518 layerTreeView->clearViewportLayers(); | |
| 519 } | |
| 520 | |
| 521 HostWindow* VisualViewport::getHostWindow() const | 489 HostWindow* VisualViewport::getHostWindow() const |
| 522 { | 490 { |
| 523 return &frameHost().chromeClient(); | 491 return &frameHost().chromeClient(); |
| 524 } | 492 } |
| 525 | 493 |
| 526 DoubleRect VisualViewport::visibleContentRectDouble(IncludeScrollbarsInRect) con
st | 494 DoubleRect VisualViewport::visibleContentRectDouble(IncludeScrollbarsInRect) con
st |
| 527 { | 495 { |
| 528 return visibleRect(); | 496 return visibleRect(); |
| 529 } | 497 } |
| 530 | 498 |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 832 } else if (graphicsLayer == m_rootTransformLayer.get()) { | 800 } else if (graphicsLayer == m_rootTransformLayer.get()) { |
| 833 name = "Root Transform Layer"; | 801 name = "Root Transform Layer"; |
| 834 } else { | 802 } else { |
| 835 ASSERT_NOT_REACHED(); | 803 ASSERT_NOT_REACHED(); |
| 836 } | 804 } |
| 837 | 805 |
| 838 return name; | 806 return name; |
| 839 } | 807 } |
| 840 | 808 |
| 841 } // namespace blink | 809 } // namespace blink |
| OLD | NEW |