| 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 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 , m_isPaginated(false) | 161 , m_isPaginated(false) |
| 162 , m_3DTransformedDescendantStatusDirty(true) | 162 , m_3DTransformedDescendantStatusDirty(true) |
| 163 , m_has3DTransformedDescendant(false) | 163 , m_has3DTransformedDescendant(false) |
| 164 , m_containsDirtyOverlayScrollbars(false) | 164 , m_containsDirtyOverlayScrollbars(false) |
| 165 , m_updatingMarqueePosition(false) | 165 , m_updatingMarqueePosition(false) |
| 166 #if !ASSERT_DISABLED | 166 #if !ASSERT_DISABLED |
| 167 , m_layerListMutationAllowed(true) | 167 , m_layerListMutationAllowed(true) |
| 168 #endif | 168 #endif |
| 169 , m_canSkipRepaintRectsUpdateOnScroll(renderer->isTableCell()) | 169 , m_canSkipRepaintRectsUpdateOnScroll(renderer->isTableCell()) |
| 170 , m_hasFilterInfo(false) | 170 , m_hasFilterInfo(false) |
| 171 #if ENABLE(CSS_COMPOSITING) | |
| 172 , m_blendMode(BlendModeNormal) | 171 , m_blendMode(BlendModeNormal) |
| 173 #endif | |
| 174 , m_renderer(renderer) | 172 , m_renderer(renderer) |
| 175 , m_parent(0) | 173 , m_parent(0) |
| 176 , m_previous(0) | 174 , m_previous(0) |
| 177 , m_next(0) | 175 , m_next(0) |
| 178 , m_first(0) | 176 , m_first(0) |
| 179 , m_last(0) | 177 , m_last(0) |
| 180 , m_staticInlinePosition(0) | 178 , m_staticInlinePosition(0) |
| 181 , m_staticBlockPosition(0) | 179 , m_staticBlockPosition(0) |
| 182 , m_reflection(0) | 180 , m_reflection(0) |
| 183 , m_scrollCorner(0) | 181 , m_scrollCorner(0) |
| (...skipping 695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 879 | 877 |
| 880 RenderGeometryMap geometryMap(UseTransforms); | 878 RenderGeometryMap geometryMap(UseTransforms); |
| 881 RenderView* view = renderer()->view(); | 879 RenderView* view = renderer()->view(); |
| 882 if (this != view->layer() && parent()) | 880 if (this != view->layer() && parent()) |
| 883 geometryMap.pushMappingsToAncestor(parent(), 0); | 881 geometryMap.pushMappingsToAncestor(parent(), 0); |
| 884 | 882 |
| 885 LayoutPoint offsetFromRoot = LayoutPoint(geometryMap.absolutePoint(FloatPoin
t())); | 883 LayoutPoint offsetFromRoot = LayoutPoint(geometryMap.absolutePoint(FloatPoin
t())); |
| 886 positionOverflowControls(toIntSize(roundedIntPoint(offsetFromRoot))); | 884 positionOverflowControls(toIntSize(roundedIntPoint(offsetFromRoot))); |
| 887 } | 885 } |
| 888 | 886 |
| 889 #if ENABLE(CSS_COMPOSITING) | 887 bool RenderLayer::hasBlendMode() const |
| 888 { |
| 889 return RuntimeEnabledFeatures::cssCompositingEnabled() && renderer()->hasBle
ndMode(); |
| 890 } |
| 891 |
| 890 void RenderLayer::updateBlendMode() | 892 void RenderLayer::updateBlendMode() |
| 891 { | 893 { |
| 894 if (!RuntimeEnabledFeatures::cssCompositingEnabled()) |
| 895 return; |
| 896 |
| 892 BlendMode newBlendMode = renderer()->style()->blendMode(); | 897 BlendMode newBlendMode = renderer()->style()->blendMode(); |
| 893 if (newBlendMode != m_blendMode) { | 898 if (newBlendMode != m_blendMode) { |
| 894 m_blendMode = newBlendMode; | 899 m_blendMode = newBlendMode; |
| 895 if (backing()) | 900 if (backing()) |
| 896 backing()->setBlendMode(newBlendMode); | 901 backing()->setBlendMode(newBlendMode); |
| 897 } | 902 } |
| 898 } | 903 } |
| 899 #endif | |
| 900 | 904 |
| 901 void RenderLayer::updateTransform() | 905 void RenderLayer::updateTransform() |
| 902 { | 906 { |
| 903 // hasTransform() on the renderer is also true when there is transform-style
: preserve-3d or perspective set, | 907 // hasTransform() on the renderer is also true when there is transform-style
: preserve-3d or perspective set, |
| 904 // so check style too. | 908 // so check style too. |
| 905 bool hasTransform = renderer()->hasTransform() && renderer()->style()->hasTr
ansform(); | 909 bool hasTransform = renderer()->hasTransform() && renderer()->style()->hasTr
ansform(); |
| 906 bool had3DTransform = has3DTransform(); | 910 bool had3DTransform = has3DTransform(); |
| 907 | 911 |
| 908 bool hadTransform = m_transform; | 912 bool hadTransform = m_transform; |
| 909 if (hasTransform != hadTransform) { | 913 if (hasTransform != hadTransform) { |
| (...skipping 4575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5485 } | 5489 } |
| 5486 } | 5490 } |
| 5487 | 5491 |
| 5488 RenderLayerBacking* RenderLayer::ensureBacking() | 5492 RenderLayerBacking* RenderLayer::ensureBacking() |
| 5489 { | 5493 { |
| 5490 if (!m_backing) { | 5494 if (!m_backing) { |
| 5491 m_backing = adoptPtr(new RenderLayerBacking(this)); | 5495 m_backing = adoptPtr(new RenderLayerBacking(this)); |
| 5492 compositor()->layerBecameComposited(this); | 5496 compositor()->layerBecameComposited(this); |
| 5493 | 5497 |
| 5494 updateOrRemoveFilterEffectRenderer(); | 5498 updateOrRemoveFilterEffectRenderer(); |
| 5495 #if ENABLE(CSS_COMPOSITING) | 5499 |
| 5496 backing()->setBlendMode(m_blendMode); | 5500 if (RuntimeEnabledFeatures::cssCompositingEnabled()) |
| 5497 #endif | 5501 backing()->setBlendMode(m_blendMode); |
| 5498 } | 5502 } |
| 5499 return m_backing.get(); | 5503 return m_backing.get(); |
| 5500 } | 5504 } |
| 5501 | 5505 |
| 5502 void RenderLayer::clearBacking(bool layerBeingDestroyed) | 5506 void RenderLayer::clearBacking(bool layerBeingDestroyed) |
| 5503 { | 5507 { |
| 5504 if (m_backing && !renderer()->documentBeingDestroyed()) | 5508 if (m_backing && !renderer()->documentBeingDestroyed()) |
| 5505 compositor()->layerBecameNonComposited(this); | 5509 compositor()->layerBecameNonComposited(this); |
| 5506 m_backing.clear(); | 5510 m_backing.clear(); |
| 5507 | 5511 |
| (...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5841 || renderer()->hasMask() | 5845 || renderer()->hasMask() |
| 5842 || renderer()->isCanvas() | 5846 || renderer()->isCanvas() |
| 5843 || renderer()->isVideo() | 5847 || renderer()->isVideo() |
| 5844 || renderer()->isEmbeddedObject() | 5848 || renderer()->isEmbeddedObject() |
| 5845 || renderer()->isRenderIFrame() | 5849 || renderer()->isRenderIFrame() |
| 5846 || (renderer()->style()->specifiesColumns() && !isRootLayer())) | 5850 || (renderer()->style()->specifiesColumns() && !isRootLayer())) |
| 5847 && !renderer()->isPositioned() | 5851 && !renderer()->isPositioned() |
| 5848 && !renderer()->hasTransform() | 5852 && !renderer()->hasTransform() |
| 5849 && !renderer()->hasClipPath() | 5853 && !renderer()->hasClipPath() |
| 5850 && !renderer()->hasFilter() | 5854 && !renderer()->hasFilter() |
| 5851 #if ENABLE(CSS_COMPOSITING) | |
| 5852 && !renderer()->hasBlendMode() | 5855 && !renderer()->hasBlendMode() |
| 5853 #endif | |
| 5854 && !isTransparent() | 5856 && !isTransparent() |
| 5855 && !needsCompositedScrolling() | 5857 && !needsCompositedScrolling() |
| 5856 && !renderer()->isFloatingWithShapeOutside() | 5858 && !renderer()->isFloatingWithShapeOutside() |
| 5857 ; | 5859 ; |
| 5858 } | 5860 } |
| 5859 | 5861 |
| 5860 void RenderLayer::updateIsNormalFlowOnly() | 5862 void RenderLayer::updateIsNormalFlowOnly() |
| 5861 { | 5863 { |
| 5862 bool isNormalFlowOnly = shouldBeNormalFlowOnly(); | 5864 bool isNormalFlowOnly = shouldBeNormalFlowOnly(); |
| 5863 if (isNormalFlowOnly == m_isNormalFlowOnly) | 5865 if (isNormalFlowOnly == m_isNormalFlowOnly) |
| (...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6181 if (m_hBar) | 6183 if (m_hBar) |
| 6182 m_hBar->styleChanged(); | 6184 m_hBar->styleChanged(); |
| 6183 if (m_vBar) | 6185 if (m_vBar) |
| 6184 m_vBar->styleChanged(); | 6186 m_vBar->styleChanged(); |
| 6185 | 6187 |
| 6186 updateScrollCornerStyle(); | 6188 updateScrollCornerStyle(); |
| 6187 updateResizerStyle(); | 6189 updateResizerStyle(); |
| 6188 | 6190 |
| 6189 updateDescendantDependentFlags(); | 6191 updateDescendantDependentFlags(); |
| 6190 updateTransform(); | 6192 updateTransform(); |
| 6191 #if ENABLE(CSS_COMPOSITING) | 6193 |
| 6192 updateBlendMode(); | 6194 if (RuntimeEnabledFeatures::cssCompositingEnabled()) |
| 6193 #endif | 6195 updateBlendMode(); |
| 6194 | 6196 |
| 6195 bool didPaintWithFilters = false; | 6197 bool didPaintWithFilters = false; |
| 6196 | 6198 |
| 6197 if (paintsWithFilters()) | 6199 if (paintsWithFilters()) |
| 6198 didPaintWithFilters = true; | 6200 didPaintWithFilters = true; |
| 6199 updateFilters(oldStyle, renderer()->style()); | 6201 updateFilters(oldStyle, renderer()->style()); |
| 6200 | 6202 |
| 6201 const RenderStyle* newStyle = renderer()->style(); | 6203 const RenderStyle* newStyle = renderer()->style(); |
| 6202 if (compositor()->updateLayerCompositingState(this) | 6204 if (compositor()->updateLayerCompositingState(this) |
| 6203 || needsCompositingLayersRebuiltForClip(oldStyle, newStyle) | 6205 || needsCompositingLayersRebuiltForClip(oldStyle, newStyle) |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6486 } | 6488 } |
| 6487 } | 6489 } |
| 6488 | 6490 |
| 6489 void showLayerTree(const WebCore::RenderObject* renderer) | 6491 void showLayerTree(const WebCore::RenderObject* renderer) |
| 6490 { | 6492 { |
| 6491 if (!renderer) | 6493 if (!renderer) |
| 6492 return; | 6494 return; |
| 6493 showLayerTree(renderer->enclosingLayer()); | 6495 showLayerTree(renderer->enclosingLayer()); |
| 6494 } | 6496 } |
| 6495 #endif | 6497 #endif |
| OLD | NEW |