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

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: Rebase patch + updated by review comments. 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
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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 class CompositedLayerMapping; 72 class CompositedLayerMapping;
73 class RenderLayerCompositor; 73 class RenderLayerCompositor;
74 class RenderReplica; 74 class RenderReplica;
75 class RenderScrollbarPart; 75 class RenderScrollbarPart;
76 class RenderStyle; 76 class RenderStyle;
77 class RenderView; 77 class RenderView;
78 class Scrollbar; 78 class Scrollbar;
79 class TransformationMatrix; 79 class TransformationMatrix;
80 80
81 enum BorderRadiusClippingRule { IncludeSelfForBorderRadius, DoNotIncludeSelfForB orderRadius }; 81 enum BorderRadiusClippingRule { IncludeSelfForBorderRadius, DoNotIncludeSelfForB orderRadius };
82 enum IncludeSelfOrNot { IncludeSelf, ExcludeSelf };
82 83
83 class RenderLayer { 84 class RenderLayer {
84 public: 85 public:
85 friend class RenderReplica; 86 friend class RenderReplica;
86 // FIXME: Needed until we move all the necessary bits to the new class. 87 // FIXME: Needed until we move all the necessary bits to the new class.
87 friend class RenderLayerClipper; 88 friend class RenderLayerClipper;
88 // FIXME: Needed until we move all the necessary bits to the new class. 89 // FIXME: Needed until we move all the necessary bits to the new class.
89 friend class RenderLayerStackingNode; 90 friend class RenderLayerStackingNode;
90 // FIXME: Needed until we move all the necessary bits to the new class. 91 // FIXME: Needed until we move all the necessary bits to the new class.
91 friend class RenderLayerScrollableArea; 92 friend class RenderLayerScrollableArea;
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 // Gets the nearest enclosing positioned ancestor layer (also includes 222 // Gets the nearest enclosing positioned ancestor layer (also includes
222 // the <html> layer and the root layer). 223 // the <html> layer and the root layer).
223 RenderLayer* enclosingPositionedAncestor() const; 224 RenderLayer* enclosingPositionedAncestor() const;
224 225
225 // Returns the nearest enclosing layer that is scrollable. 226 // Returns the nearest enclosing layer that is scrollable.
226 RenderLayer* enclosingScrollableLayer() const; 227 RenderLayer* enclosingScrollableLayer() const;
227 228
228 // The layer relative to which clipping rects for this layer are computed. 229 // The layer relative to which clipping rects for this layer are computed.
229 RenderLayer* clippingRootForPainting() const; 230 RenderLayer* clippingRootForPainting() const;
230 231
232 RenderLayer* enclosingOverflowClipLayer(bool includeSelf = true) const;
Julien - ping for review 2014/01/08 15:31:45 You forgot to convert this function and its caller
ostap 2014/01/09 03:44:14 Sorry! Done.
233
231 // Enclosing compositing layer; if includeSelf is true, may return this. 234 // Enclosing compositing layer; if includeSelf is true, may return this.
232 RenderLayer* enclosingCompositingLayer(bool includeSelf = true) const; 235 RenderLayer* enclosingCompositingLayer(IncludeSelfOrNot = IncludeSelf) const ;
233 RenderLayer* enclosingCompositingLayerForRepaint(bool includeSelf = true) co nst; 236 RenderLayer* enclosingCompositingLayerForRepaint(IncludeSelfOrNot = IncludeS elf) const;
234 // Ancestor compositing layer, excluding this. 237 // Ancestor compositing layer, excluding this.
235 RenderLayer* ancestorCompositingLayer() const { return enclosingCompositingL ayer(false); } 238 RenderLayer* ancestorCompositingLayer() const { return enclosingCompositingL ayer(ExcludeSelf); }
236 239
237 // Ancestor composited scrolling layer at or above our containing block. 240 // Ancestor composited scrolling layer at or above our containing block.
238 RenderLayer* ancestorCompositedScrollingLayer() const; 241 RenderLayer* ancestorCompositedScrollingLayer() const;
239 242
240 // Ancestor scrolling layer at or above our containing block. 243 // Ancestor scrolling layer at or above our containing block.
241 RenderLayer* ancestorScrollingLayer() const; 244 RenderLayer* ancestorScrollingLayer() const;
242 245
243 RenderLayer* enclosingFilterLayer(bool includeSelf = true) const; 246 RenderLayer* enclosingFilterLayer(IncludeSelfOrNot = IncludeSelf) const;
244 RenderLayer* enclosingFilterRepaintLayer() const; 247 RenderLayer* enclosingFilterRepaintLayer() const;
245 bool hasAncestorWithFilterOutsets() const; 248 bool hasAncestorWithFilterOutsets() const;
246 249
247 bool canUseConvertToLayerCoords() const 250 bool canUseConvertToLayerCoords() const
248 { 251 {
249 // These RenderObjects have an impact on their layers without the render ers knowing about it. 252 // These RenderObjects have an impact on their layers without the render ers knowing about it.
250 return !renderer()->hasColumns() && !renderer()->hasTransform() && !rend erer()->isSVGRoot(); 253 return !renderer()->hasColumns() && !renderer()->hasTransform() && !rend erer()->isSVGRoot();
251 } 254 }
252 255
253 void convertToPixelSnappedLayerCoords(const RenderLayer* ancestorLayer, IntP oint& location) const; 256 void convertToPixelSnappedLayerCoords(const RenderLayer* ancestorLayer, IntP oint& location) const;
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 749
747 } // namespace WebCore 750 } // namespace WebCore
748 751
749 #ifndef NDEBUG 752 #ifndef NDEBUG
750 // Outside the WebCore namespace for ease of invocation from gdb. 753 // Outside the WebCore namespace for ease of invocation from gdb.
751 void showLayerTree(const WebCore::RenderLayer*); 754 void showLayerTree(const WebCore::RenderLayer*);
752 void showLayerTree(const WebCore::RenderObject*); 755 void showLayerTree(const WebCore::RenderObject*);
753 #endif 756 #endif
754 757
755 #endif // RenderLayer_h 758 #endif // RenderLayer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698