| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. |
| 3 * | 3 * |
| 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
| 5 * | 5 * |
| 6 * Other contributors: | 6 * Other contributors: |
| 7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
| 8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
| 9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
| 10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 destroyScrollbar(VerticalScrollbar); | 132 destroyScrollbar(VerticalScrollbar); |
| 133 | 133 |
| 134 if (m_scrollCorner) | 134 if (m_scrollCorner) |
| 135 m_scrollCorner->destroy(); | 135 m_scrollCorner->destroy(); |
| 136 if (m_resizer) | 136 if (m_resizer) |
| 137 m_resizer->destroy(); | 137 m_resizer->destroy(); |
| 138 } | 138 } |
| 139 | 139 |
| 140 GraphicsLayer* RenderLayerScrollableArea::layerForScrolling() const | 140 GraphicsLayer* RenderLayerScrollableArea::layerForScrolling() const |
| 141 { | 141 { |
| 142 return box().hasCompositedLayerMapping() ? box().compositedLayerMapping()->s
crollingContentsLayer() : 0; | 142 return layer()->hasCompositedLayerMapping() ? layer()->compositedLayerMappin
g()->scrollingContentsLayer() : 0; |
| 143 } | 143 } |
| 144 | 144 |
| 145 GraphicsLayer* RenderLayerScrollableArea::layerForHorizontalScrollbar() const | 145 GraphicsLayer* RenderLayerScrollableArea::layerForHorizontalScrollbar() const |
| 146 { | 146 { |
| 147 // See crbug.com/343132. | 147 // See crbug.com/343132. |
| 148 DisableCompositingQueryAsserts disabler; | 148 DisableCompositingQueryAsserts disabler; |
| 149 | 149 |
| 150 return box().hasCompositedLayerMapping() ? box().compositedLayerMapping()->l
ayerForHorizontalScrollbar() : 0; | 150 return layer()->hasCompositedLayerMapping() ? layer()->compositedLayerMappin
g()->layerForHorizontalScrollbar() : 0; |
| 151 } | 151 } |
| 152 | 152 |
| 153 GraphicsLayer* RenderLayerScrollableArea::layerForVerticalScrollbar() const | 153 GraphicsLayer* RenderLayerScrollableArea::layerForVerticalScrollbar() const |
| 154 { | 154 { |
| 155 // See crbug.com/343132. | 155 // See crbug.com/343132. |
| 156 DisableCompositingQueryAsserts disabler; | 156 DisableCompositingQueryAsserts disabler; |
| 157 | 157 |
| 158 return box().hasCompositedLayerMapping() ? box().compositedLayerMapping()->l
ayerForVerticalScrollbar() : 0; | 158 return layer()->hasCompositedLayerMapping() ? layer()->compositedLayerMappin
g()->layerForVerticalScrollbar() : 0; |
| 159 } | 159 } |
| 160 | 160 |
| 161 GraphicsLayer* RenderLayerScrollableArea::layerForScrollCorner() const | 161 GraphicsLayer* RenderLayerScrollableArea::layerForScrollCorner() const |
| 162 { | 162 { |
| 163 // See crbug.com/343132. | 163 // See crbug.com/343132. |
| 164 DisableCompositingQueryAsserts disabler; | 164 DisableCompositingQueryAsserts disabler; |
| 165 | 165 |
| 166 return box().hasCompositedLayerMapping() ? box().compositedLayerMapping()->l
ayerForScrollCorner() : 0; | 166 return layer()->hasCompositedLayerMapping() ? layer()->compositedLayerMappin
g()->layerForScrollCorner() : 0; |
| 167 } | 167 } |
| 168 | 168 |
| 169 void RenderLayerScrollableArea::invalidateScrollbarRect(Scrollbar* scrollbar, co
nst IntRect& rect) | 169 void RenderLayerScrollableArea::invalidateScrollbarRect(Scrollbar* scrollbar, co
nst IntRect& rect) |
| 170 { | 170 { |
| 171 // See crbug.com/343132. | 171 // See crbug.com/343132. |
| 172 DisableCompositingQueryAsserts disabler; | 172 DisableCompositingQueryAsserts disabler; |
| 173 | 173 |
| 174 if (scrollbar == m_vBar.get()) { | 174 if (scrollbar == m_vBar.get()) { |
| 175 if (GraphicsLayer* layer = layerForVerticalScrollbar()) { | 175 if (GraphicsLayer* layer = layerForVerticalScrollbar()) { |
| 176 layer->setNeedsDisplayInRect(rect); | 176 layer->setNeedsDisplayInRect(rect); |
| (...skipping 768 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 945 const IntRect& scrollCorner = scrollCornerRect(); | 945 const IntRect& scrollCorner = scrollCornerRect(); |
| 946 if (m_scrollCorner) | 946 if (m_scrollCorner) |
| 947 m_scrollCorner->setFrameRect(scrollCorner); | 947 m_scrollCorner->setFrameRect(scrollCorner); |
| 948 | 948 |
| 949 if (m_resizer) | 949 if (m_resizer) |
| 950 m_resizer->setFrameRect(resizerCornerRect(borderBox, ResizerForPointer))
; | 950 m_resizer->setFrameRect(resizerCornerRect(borderBox, ResizerForPointer))
; |
| 951 | 951 |
| 952 // FIXME, this should eventually be removed, once we are certain that compos
ited | 952 // FIXME, this should eventually be removed, once we are certain that compos
ited |
| 953 // controls get correctly positioned on a compositor update. For now, conser
vatively | 953 // controls get correctly positioned on a compositor update. For now, conser
vatively |
| 954 // leaving this unchanged. | 954 // leaving this unchanged. |
| 955 if (box().hasCompositedLayerMapping()) | 955 if (layer()->hasCompositedLayerMapping()) |
| 956 box().compositedLayerMapping()->positionOverflowControlsLayers(offsetFro
mRoot); | 956 layer()->compositedLayerMapping()->positionOverflowControlsLayers(offset
FromRoot); |
| 957 } | 957 } |
| 958 | 958 |
| 959 void RenderLayerScrollableArea::updateScrollCornerStyle() | 959 void RenderLayerScrollableArea::updateScrollCornerStyle() |
| 960 { | 960 { |
| 961 if (!m_scrollCorner && !hasScrollbar()) | 961 if (!m_scrollCorner && !hasScrollbar()) |
| 962 return; | 962 return; |
| 963 if (!m_scrollCorner && hasOverlayScrollbars()) | 963 if (!m_scrollCorner && hasOverlayScrollbars()) |
| 964 return; | 964 return; |
| 965 | 965 |
| 966 RenderObject* actualRenderer = rendererForScrollbar(box()); | 966 RenderObject* actualRenderer = rendererForScrollbar(box()); |
| (...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1413 if (didNeedCompositedScrolling != needsCompositedScrolling()) | 1413 if (didNeedCompositedScrolling != needsCompositedScrolling()) |
| 1414 layer()->didUpdateNeedsCompositedScrolling(); | 1414 layer()->didUpdateNeedsCompositedScrolling(); |
| 1415 } | 1415 } |
| 1416 | 1416 |
| 1417 void RenderLayerScrollableArea::updateCompositingLayersAfterScroll() | 1417 void RenderLayerScrollableArea::updateCompositingLayersAfterScroll() |
| 1418 { | 1418 { |
| 1419 RenderLayerCompositor* compositor = box().view()->compositor(); | 1419 RenderLayerCompositor* compositor = box().view()->compositor(); |
| 1420 if (compositor->inCompositingMode()) { | 1420 if (compositor->inCompositingMode()) { |
| 1421 if (usesCompositedScrolling()) { | 1421 if (usesCompositedScrolling()) { |
| 1422 DisableCompositingQueryAsserts disabler; | 1422 DisableCompositingQueryAsserts disabler; |
| 1423 ASSERT(box().hasCompositedLayerMapping()); | 1423 ASSERT(layer()->hasCompositedLayerMapping()); |
| 1424 box().compositedLayerMapping()->setNeedsGraphicsLayerUpdate(Graphics
LayerUpdateSubtree); | 1424 layer()->compositedLayerMapping()->setNeedsGraphicsLayerUpdate(Graph
icsLayerUpdateSubtree); |
| 1425 compositor->setNeedsCompositingUpdate(CompositingUpdateAfterGeometry
Change); | 1425 compositor->setNeedsCompositingUpdate(CompositingUpdateAfterGeometry
Change); |
| 1426 } else { | 1426 } else { |
| 1427 layer()->setNeedsCompositingInputsUpdate(); | 1427 layer()->setNeedsCompositingInputsUpdate(); |
| 1428 } | 1428 } |
| 1429 } | 1429 } |
| 1430 } | 1430 } |
| 1431 | 1431 |
| 1432 bool RenderLayerScrollableArea::usesCompositedScrolling() const | 1432 bool RenderLayerScrollableArea::usesCompositedScrolling() const |
| 1433 { | 1433 { |
| 1434 // Scroll form controls on the main thread so they exhibit correct touch scr
oll event bubbling | 1434 // Scroll form controls on the main thread so they exhibit correct touch scr
oll event bubbling |
| 1435 if (box().isIntristicallyScrollable(VerticalScrollbar) || box().isIntristica
llyScrollable(HorizontalScrollbar)) | 1435 if (box().isIntristicallyScrollable(VerticalScrollbar) || box().isIntristica
llyScrollable(HorizontalScrollbar)) |
| 1436 return false; | 1436 return false; |
| 1437 | 1437 |
| 1438 // See https://codereview.chromium.org/176633003/ for the tests that fail wi
thout this disabler. | 1438 // See https://codereview.chromium.org/176633003/ for the tests that fail wi
thout this disabler. |
| 1439 DisableCompositingQueryAsserts disabler; | 1439 DisableCompositingQueryAsserts disabler; |
| 1440 return box().hasCompositedLayerMapping() && box().compositedLayerMapping()->
scrollingLayer(); | 1440 return layer()->hasCompositedLayerMapping() && layer()->compositedLayerMappi
ng()->scrollingLayer(); |
| 1441 } | 1441 } |
| 1442 | 1442 |
| 1443 bool RenderLayerScrollableArea::needsCompositedScrolling() const | 1443 bool RenderLayerScrollableArea::needsCompositedScrolling() const |
| 1444 { | 1444 { |
| 1445 return scrollsOverflow() && box().view()->compositor()->acceleratedCompositi
ngForOverflowScrollEnabled(); | 1445 return scrollsOverflow() && box().view()->compositor()->acceleratedCompositi
ngForOverflowScrollEnabled(); |
| 1446 } | 1446 } |
| 1447 | 1447 |
| 1448 } // Namespace WebCore | 1448 } // Namespace WebCore |
| OLD | NEW |