Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Side by Side Diff: Source/core/rendering/RenderLayer.h

Issue 103213002: position:sticky should stick for the enclosing overflow ancestor (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add back changes in RenderBoxModelObject.cpp eaten by rebase. Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/rendering/RenderBoxModelObject.cpp ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Intel Corporation. All rights reserved. 3 * Copyright (C) 2013 Intel Corporation. All rights reserved.
4 * 4 *
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Robert O'Callahan <roc+@cs.cmu.edu> 8 * Robert O'Callahan <roc+@cs.cmu.edu>
9 * David Baron <dbaron@fas.harvard.edu> 9 * David Baron <dbaron@fas.harvard.edu>
10 * Christian Biesinger <cbiesinger@web.de> 10 * Christian Biesinger <cbiesinger@web.de>
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 class HitTestingTransformState; 67 class HitTestingTransformState;
68 class RenderFlowThread; 68 class RenderFlowThread;
69 class RenderGeometryMap; 69 class RenderGeometryMap;
70 class CompositedLayerMapping; 70 class CompositedLayerMapping;
71 class RenderLayerCompositor; 71 class RenderLayerCompositor;
72 class RenderReplica; 72 class RenderReplica;
73 class RenderStyle; 73 class RenderStyle;
74 class TransformationMatrix; 74 class TransformationMatrix;
75 75
76 enum BorderRadiusClippingRule { IncludeSelfForBorderRadius, DoNotIncludeSelfForB orderRadius }; 76 enum BorderRadiusClippingRule { IncludeSelfForBorderRadius, DoNotIncludeSelfForB orderRadius };
77 enum IncludeSelfOrNot { IncludeSelf, ExcludeSelf };
77 78
78 class RenderLayer { 79 class RenderLayer {
79 public: 80 public:
80 friend class RenderReplica; 81 friend class RenderReplica;
81 // FIXME: Needed until we move all the necessary bits to the new class. 82 // FIXME: Needed until we move all the necessary bits to the new class.
82 friend class RenderLayerClipper; 83 friend class RenderLayerClipper;
83 // FIXME: Needed until we move all the necessary bits to the new class. 84 // FIXME: Needed until we move all the necessary bits to the new class.
84 friend class RenderLayerStackingNode; 85 friend class RenderLayerStackingNode;
85 // FIXME: Needed until we move all the necessary bits to the new class. 86 // FIXME: Needed until we move all the necessary bits to the new class.
86 friend class RenderLayerScrollableArea; 87 friend class RenderLayerScrollableArea;
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 bool hasVisibleNonLayerContent() const { return m_hasVisibleNonLayerContent; } 214 bool hasVisibleNonLayerContent() const { return m_hasVisibleNonLayerContent; }
214 void updateHasVisibleNonLayerContent(); 215 void updateHasVisibleNonLayerContent();
215 216
216 // Gets the nearest enclosing positioned ancestor layer (also includes 217 // Gets the nearest enclosing positioned ancestor layer (also includes
217 // the <html> layer and the root layer). 218 // the <html> layer and the root layer).
218 RenderLayer* enclosingPositionedAncestor() const; 219 RenderLayer* enclosingPositionedAncestor() const;
219 220
220 // The layer relative to which clipping rects for this layer are computed. 221 // The layer relative to which clipping rects for this layer are computed.
221 RenderLayer* clippingRootForPainting() const; 222 RenderLayer* clippingRootForPainting() const;
222 223
224 RenderLayer* enclosingOverflowClipLayer(IncludeSelfOrNot = IncludeSelf) cons t;
225
223 // Enclosing compositing layer; if includeSelf is true, may return this. 226 // Enclosing compositing layer; if includeSelf is true, may return this.
224 RenderLayer* enclosingCompositingLayer(bool includeSelf = true) const; 227 RenderLayer* enclosingCompositingLayer(IncludeSelfOrNot = IncludeSelf) const ;
225 RenderLayer* enclosingCompositingLayerForRepaint(bool includeSelf = true) co nst; 228 RenderLayer* enclosingCompositingLayerForRepaint(IncludeSelfOrNot = IncludeS elf) const;
226 // Ancestor compositing layer, excluding this. 229 // Ancestor compositing layer, excluding this.
227 RenderLayer* ancestorCompositingLayer() const { return enclosingCompositingL ayer(false); } 230 RenderLayer* ancestorCompositingLayer() const { return enclosingCompositingL ayer(ExcludeSelf); }
228 231
229 // Ancestor composited scrolling layer at or above our containing block. 232 // Ancestor composited scrolling layer at or above our containing block.
230 RenderLayer* ancestorCompositedScrollingLayer() const; 233 RenderLayer* ancestorCompositedScrollingLayer() const;
231 234
232 // Ancestor scrolling layer at or above our containing block. 235 // Ancestor scrolling layer at or above our containing block.
233 RenderLayer* ancestorScrollingLayer() const; 236 RenderLayer* ancestorScrollingLayer() const;
234 237
235 RenderLayer* enclosingFilterLayer(bool includeSelf = true) const; 238 RenderLayer* enclosingFilterLayer(IncludeSelfOrNot = IncludeSelf) const;
236 RenderLayer* enclosingFilterRepaintLayer() const; 239 RenderLayer* enclosingFilterRepaintLayer() const;
237 bool hasAncestorWithFilterOutsets() const; 240 bool hasAncestorWithFilterOutsets() const;
238 241
239 bool canUseConvertToLayerCoords() const 242 bool canUseConvertToLayerCoords() const
240 { 243 {
241 // These RenderObjects have an impact on their layers without the render ers knowing about it. 244 // These RenderObjects have an impact on their layers without the render ers knowing about it.
242 return !renderer()->hasColumns() && !renderer()->hasTransform() && !rend erer()->isSVGRoot(); 245 return !renderer()->hasColumns() && !renderer()->hasTransform() && !rend erer()->isSVGRoot();
243 } 246 }
244 247
245 void convertToPixelSnappedLayerCoords(const RenderLayer* ancestorLayer, IntP oint& location) const; 248 void convertToPixelSnappedLayerCoords(const RenderLayer* ancestorLayer, IntP oint& location) const;
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 741
739 } // namespace WebCore 742 } // namespace WebCore
740 743
741 #ifndef NDEBUG 744 #ifndef NDEBUG
742 // Outside the WebCore namespace for ease of invocation from gdb. 745 // Outside the WebCore namespace for ease of invocation from gdb.
743 void showLayerTree(const WebCore::RenderLayer*); 746 void showLayerTree(const WebCore::RenderLayer*);
744 void showLayerTree(const WebCore::RenderObject*); 747 void showLayerTree(const WebCore::RenderObject*);
745 #endif 748 #endif
746 749
747 #endif // RenderLayer_h 750 #endif // RenderLayer_h
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderBoxModelObject.cpp ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698