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

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayer.h

Issue 2716583005: Do not promote position sticky or fixed elements unless they move with scroll. (Closed)
Patch Set: Avoid computing constraints for non-anchored sticky and add/update tests. Created 3 years, 9 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 599 matching lines...) Expand 10 before | Expand all | Expand 10 after
610 610
611 void updateFilters(const ComputedStyle* oldStyle, 611 void updateFilters(const ComputedStyle* oldStyle,
612 const ComputedStyle& newStyle); 612 const ComputedStyle& newStyle);
613 void updateClipPath(const ComputedStyle* oldStyle, 613 void updateClipPath(const ComputedStyle* oldStyle,
614 const ComputedStyle& newStyle); 614 const ComputedStyle& newStyle);
615 615
616 Node* enclosingNode() const; 616 Node* enclosingNode() const;
617 617
618 bool isInTopLayer() const; 618 bool isInTopLayer() const;
619 619
620 bool sticksToViewport() const; 620 // Returns true if the layer is sticky position and may stick to its
621 // ancestor overflow layer.
622 bool sticksToScroller() const;
623
624 // Returns true if the layer is fixed position and will not move with
625 // scrolling.
626 bool fixedToViewport() const;
621 bool scrollsWithRespectTo(const PaintLayer*) const; 627 bool scrollsWithRespectTo(const PaintLayer*) const;
622 628
623 void addLayerHitTestRects(LayerHitTestRects&) const; 629 void addLayerHitTestRects(LayerHitTestRects&) const;
624 630
625 // Compute rects only for this layer 631 // Compute rects only for this layer
626 void computeSelfHitTestRects(LayerHitTestRects&) const; 632 void computeSelfHitTestRects(LayerHitTestRects&) const;
627 633
628 // FIXME: This should probably return a ScrollableArea but a lot of internal 634 // FIXME: This should probably return a ScrollableArea but a lot of internal
629 // methods are mistakenly exposed. 635 // methods are mistakenly exposed.
630 PaintLayerScrollableArea* getScrollableArea() const { 636 PaintLayerScrollableArea* getScrollableArea() const {
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
1246 1252
1247 } // namespace blink 1253 } // namespace blink
1248 1254
1249 #ifndef NDEBUG 1255 #ifndef NDEBUG
1250 // Outside the WebCore namespace for ease of invocation from gdb. 1256 // Outside the WebCore namespace for ease of invocation from gdb.
1251 CORE_EXPORT void showLayerTree(const blink::PaintLayer*); 1257 CORE_EXPORT void showLayerTree(const blink::PaintLayer*);
1252 CORE_EXPORT void showLayerTree(const blink::LayoutObject*); 1258 CORE_EXPORT void showLayerTree(const blink::LayoutObject*);
1253 #endif 1259 #endif
1254 1260
1255 #endif // Layer_h 1261 #endif // Layer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698