| 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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 | 99 |
| 100 bool autosizerNeedsUpdating = | 100 bool autosizerNeedsUpdating = |
| 101 (size.width() != m_size.width()) | 101 (size.width() != m_size.width()) |
| 102 && mainFrame()->settings() | 102 && mainFrame()->settings() |
| 103 && mainFrame()->settings()->textAutosizingEnabled(); | 103 && mainFrame()->settings()->textAutosizingEnabled(); |
| 104 | 104 |
| 105 TRACE_EVENT2("blink", "VisualViewport::setSize", "width", size.width(), "hei
ght", size.height()); | 105 TRACE_EVENT2("blink", "VisualViewport::setSize", "width", size.width(), "hei
ght", size.height()); |
| 106 m_size = size; | 106 m_size = size; |
| 107 | 107 |
| 108 if (m_innerViewportContainerLayer) { | 108 if (m_innerViewportContainerLayer) { |
| 109 m_innerViewportContainerLayer->setSize(m_size); | 109 m_innerViewportContainerLayer->setSize(FloatSize(m_size)); |
| 110 | 110 |
| 111 // Need to re-compute sizes for the overlay scrollbars. | 111 // Need to re-compute sizes for the overlay scrollbars. |
| 112 initializeScrollbars(); | 112 initializeScrollbars(); |
| 113 } | 113 } |
| 114 | 114 |
| 115 if (autosizerNeedsUpdating) { | 115 if (autosizerNeedsUpdating) { |
| 116 // This needs to happen after setting the m_size member since it'll be r
ead in the update call. | 116 // This needs to happen after setting the m_size member since it'll be r
ead in the update call. |
| 117 if (TextAutosizer* textAutosizer = mainFrame()->document()->textAutosize
r()) | 117 if (TextAutosizer* textAutosizer = mainFrame()->document()->textAutosize
r()) |
| 118 textAutosizer->updatePageInfoInAllFrames(); | 118 textAutosizer->updatePageInfoInAllFrames(); |
| 119 } | 119 } |
| 120 } | 120 } |
| 121 | 121 |
| 122 void VisualViewport::reset() | 122 void VisualViewport::reset() |
| 123 { | 123 { |
| 124 setScaleAndLocation(1, FloatPoint()); | 124 setScaleAndLocation(1, FloatPoint()); |
| 125 } | 125 } |
| 126 | 126 |
| 127 void VisualViewport::mainFrameDidChangeSize() | 127 void VisualViewport::mainFrameDidChangeSize() |
| 128 { | 128 { |
| 129 TRACE_EVENT0("blink", "VisualViewport::mainFrameDidChangeSize"); | 129 TRACE_EVENT0("blink", "VisualViewport::mainFrameDidChangeSize"); |
| 130 | 130 |
| 131 // In unit tests we may not have initialized the layer tree. | 131 // In unit tests we may not have initialized the layer tree. |
| 132 if (m_innerViewportScrollLayer) | 132 if (m_innerViewportScrollLayer) |
| 133 m_innerViewportScrollLayer->setSize(contentsSize()); | 133 m_innerViewportScrollLayer->setSize(FloatSize(contentsSize())); |
| 134 | 134 |
| 135 clampToBoundaries(); | 135 clampToBoundaries(); |
| 136 } | 136 } |
| 137 | 137 |
| 138 FloatSize VisualViewport::visibleSize() const | 138 FloatSize VisualViewport::visibleSize() const |
| 139 { | 139 { |
| 140 FloatSize scaledSize(m_size); | 140 FloatSize scaledSize(m_size); |
| 141 scaledSize.expand(0, m_topControlsAdjustment); | 141 scaledSize.expand(0, m_topControlsAdjustment); |
| 142 scaledSize.scale(1 / m_scale); | 142 scaledSize.scale(1 / m_scale); |
| 143 return scaledSize; | 143 return scaledSize; |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 m_overlayScrollbarHorizontal = GraphicsLayer::create(graphicsLayerFactor
y, this); | 312 m_overlayScrollbarHorizontal = GraphicsLayer::create(graphicsLayerFactor
y, this); |
| 313 m_overlayScrollbarVertical = GraphicsLayer::create(graphicsLayerFactory,
this); | 313 m_overlayScrollbarVertical = GraphicsLayer::create(graphicsLayerFactory,
this); |
| 314 | 314 |
| 315 ScrollingCoordinator* coordinator = frameHost().page().scrollingCoordina
tor(); | 315 ScrollingCoordinator* coordinator = frameHost().page().scrollingCoordina
tor(); |
| 316 ASSERT(coordinator); | 316 ASSERT(coordinator); |
| 317 coordinator->setLayerIsContainerForFixedPositionLayers(m_innerViewportSc
rollLayer.get(), true); | 317 coordinator->setLayerIsContainerForFixedPositionLayers(m_innerViewportSc
rollLayer.get(), true); |
| 318 | 318 |
| 319 // Set masks to bounds so the compositor doesn't clobber a manually | 319 // Set masks to bounds so the compositor doesn't clobber a manually |
| 320 // set inner viewport container layer size. | 320 // set inner viewport container layer size. |
| 321 m_innerViewportContainerLayer->setMasksToBounds(frameHost().settings().m
ainFrameClipsContent()); | 321 m_innerViewportContainerLayer->setMasksToBounds(frameHost().settings().m
ainFrameClipsContent()); |
| 322 m_innerViewportContainerLayer->setSize(m_size); | 322 m_innerViewportContainerLayer->setSize(FloatSize(m_size)); |
| 323 | 323 |
| 324 m_innerViewportScrollLayer->platformLayer()->setScrollClipLayer( | 324 m_innerViewportScrollLayer->platformLayer()->setScrollClipLayer( |
| 325 m_innerViewportContainerLayer->platformLayer()); | 325 m_innerViewportContainerLayer->platformLayer()); |
| 326 m_innerViewportScrollLayer->platformLayer()->setUserScrollable(true, tru
e); | 326 m_innerViewportScrollLayer->platformLayer()->setUserScrollable(true, tru
e); |
| 327 | 327 |
| 328 m_rootTransformLayer->addChild(m_innerViewportContainerLayer.get()); | 328 m_rootTransformLayer->addChild(m_innerViewportContainerLayer.get()); |
| 329 m_innerViewportContainerLayer->addChild(m_overscrollElasticityLayer.get(
)); | 329 m_innerViewportContainerLayer->addChild(m_overscrollElasticityLayer.get(
)); |
| 330 m_overscrollElasticityLayer->addChild(m_pageScaleLayer.get()); | 330 m_overscrollElasticityLayer->addChild(m_pageScaleLayer.get()); |
| 331 m_pageScaleLayer->addChild(m_innerViewportScrollLayer.get()); | 331 m_pageScaleLayer->addChild(m_innerViewportScrollLayer.get()); |
| 332 | 332 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 scrollbarGraphicsLayer->setDrawsContent(false); | 382 scrollbarGraphicsLayer->setDrawsContent(false); |
| 383 } | 383 } |
| 384 | 384 |
| 385 int xPosition = isHorizontal ? 0 : m_innerViewportContainerLayer->size().wid
th() - scrollbarThickness; | 385 int xPosition = isHorizontal ? 0 : m_innerViewportContainerLayer->size().wid
th() - scrollbarThickness; |
| 386 int yPosition = isHorizontal ? m_innerViewportContainerLayer->size().height(
) - scrollbarThickness : 0; | 386 int yPosition = isHorizontal ? m_innerViewportContainerLayer->size().height(
) - scrollbarThickness : 0; |
| 387 int width = isHorizontal ? m_innerViewportContainerLayer->size().width() - s
crollbarThickness : scrollbarThickness; | 387 int width = isHorizontal ? m_innerViewportContainerLayer->size().width() - s
crollbarThickness : scrollbarThickness; |
| 388 int height = isHorizontal ? scrollbarThickness : m_innerViewportContainerLay
er->size().height() - scrollbarThickness; | 388 int height = isHorizontal ? scrollbarThickness : m_innerViewportContainerLay
er->size().height() - scrollbarThickness; |
| 389 | 389 |
| 390 // Use the GraphicsLayer to position the scrollbars. | 390 // Use the GraphicsLayer to position the scrollbars. |
| 391 scrollbarGraphicsLayer->setPosition(IntPoint(xPosition, yPosition)); | 391 scrollbarGraphicsLayer->setPosition(IntPoint(xPosition, yPosition)); |
| 392 scrollbarGraphicsLayer->setSize(IntSize(width, height)); | 392 scrollbarGraphicsLayer->setSize(FloatSize(width, height)); |
| 393 scrollbarGraphicsLayer->setContentsRect(IntRect(0, 0, width, height)); | 393 scrollbarGraphicsLayer->setContentsRect(IntRect(0, 0, width, height)); |
| 394 } | 394 } |
| 395 | 395 |
| 396 void VisualViewport::registerLayersWithTreeView(WebLayerTreeView* layerTreeView)
const | 396 void VisualViewport::registerLayersWithTreeView(WebLayerTreeView* layerTreeView)
const |
| 397 { | 397 { |
| 398 TRACE_EVENT0("blink", "VisualViewport::registerLayersWithTreeView"); | 398 TRACE_EVENT0("blink", "VisualViewport::registerLayersWithTreeView"); |
| 399 ASSERT(layerTreeView); | 399 ASSERT(layerTreeView); |
| 400 | 400 |
| 401 if (!mainFrame()) | 401 if (!mainFrame()) |
| 402 return; | 402 return; |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 | 477 |
| 478 // FIXME: We probably shouldn't be storing the bounds in a float. crbug.com/
422331. | 478 // FIXME: We probably shouldn't be storing the bounds in a float. crbug.com/
422331. |
| 479 FloatSize frameViewSize(contentsSize()); | 479 FloatSize frameViewSize(contentsSize()); |
| 480 | 480 |
| 481 if (m_topControlsAdjustment) { | 481 if (m_topControlsAdjustment) { |
| 482 float minScale = frameHost().pageScaleConstraintsSet().finalConstraints(
).minimumScale; | 482 float minScale = frameHost().pageScaleConstraintsSet().finalConstraints(
).minimumScale; |
| 483 frameViewSize.expand(0, m_topControlsAdjustment / minScale); | 483 frameViewSize.expand(0, m_topControlsAdjustment / minScale); |
| 484 } | 484 } |
| 485 | 485 |
| 486 frameViewSize.scale(m_scale); | 486 frameViewSize.scale(m_scale); |
| 487 frameViewSize = flooredIntSize(frameViewSize); | 487 frameViewSize = FloatSize(flooredIntSize(frameViewSize)); |
| 488 | 488 |
| 489 FloatSize viewportSize(m_size); | 489 FloatSize viewportSize(m_size); |
| 490 viewportSize.expand(0, m_topControlsAdjustment); | 490 viewportSize.expand(0, m_topControlsAdjustment); |
| 491 | 491 |
| 492 FloatSize maxPosition = frameViewSize - viewportSize; | 492 FloatSize maxPosition = frameViewSize - viewportSize; |
| 493 maxPosition.scale(1 / m_scale); | 493 maxPosition.scale(1 / m_scale); |
| 494 return DoublePoint(maxPosition); | 494 return DoublePoint(maxPosition); |
| 495 } | 495 } |
| 496 | 496 |
| 497 IntPoint VisualViewport::clampDocumentOffsetAtScale(const IntPoint& offset, floa
t scale) | 497 IntPoint VisualViewport::clampDocumentOffsetAtScale(const IntPoint& offset, floa
t scale) |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 736 } else if (graphicsLayer == m_rootTransformLayer) { | 736 } else if (graphicsLayer == m_rootTransformLayer) { |
| 737 name = "Root Transform Layer"; | 737 name = "Root Transform Layer"; |
| 738 } else { | 738 } else { |
| 739 ASSERT_NOT_REACHED(); | 739 ASSERT_NOT_REACHED(); |
| 740 } | 740 } |
| 741 | 741 |
| 742 return name; | 742 return name; |
| 743 } | 743 } |
| 744 | 744 |
| 745 } // namespace blink | 745 } // namespace blink |
| OLD | NEW |