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 |