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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.h

Issue 1413823005: Invalidate objects when containing block changed (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 752 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 // This function should be used for any invalidation as it would correctly 763 // This function should be used for any invalidation as it would correctly
764 // walk the containing block chain. See e.g. markContainerChainForLayout. 764 // walk the containing block chain. See e.g. markContainerChainForLayout.
765 // It is also used for correctly sizing absolutely positioned elements 765 // It is also used for correctly sizing absolutely positioned elements
766 // (point 3 above). 766 // (point 3 above).
767 // 767 //
768 // If |paintInvalidationContainer| and |paintInvalidationContainerSkipped| 768 // If |paintInvalidationContainer| and |paintInvalidationContainerSkipped|
769 // are not null, on return *paintInvalidationContainerSkipped is true if 769 // are not null, on return *paintInvalidationContainerSkipped is true if
770 // the layoutObject returned is an ancestor of |paintInvalidationContainer|. 770 // the layoutObject returned is an ancestor of |paintInvalidationContainer|.
771 LayoutObject* container(const LayoutBoxModelObject* paintInvalidationContain er = nullptr, bool* paintInvalidationContainerSkipped = nullptr) const; 771 LayoutObject* container(const LayoutBoxModelObject* paintInvalidationContain er = nullptr, bool* paintInvalidationContainerSkipped = nullptr) const;
772 LayoutObject* containerCrossingFrameBoundaries() const; 772 LayoutObject* containerCrossingFrameBoundaries() const;
773 // Finds the container as if this object is a fixed position element.
773 LayoutBlock* containerForFixedPosition(const LayoutBoxModelObject* paintInva lidationContainer = nullptr, bool* paintInvalidationContainerSkipped = nullptr) const; 774 LayoutBlock* containerForFixedPosition(const LayoutBoxModelObject* paintInva lidationContainer = nullptr, bool* paintInvalidationContainerSkipped = nullptr) const;
774 LayoutBlock* containingBlockForAbsolutePosition() const; 775 LayoutBlock* containingBlockForAbsolutePosition() const;
chrishtr 2015/10/30 20:45:51 Add the same type of comment here as for fixed pos
Xianzhu 2015/10/30 20:52:15 Done.
775 776
776 virtual LayoutObject* hoverAncestor() const { return parent(); } 777 virtual LayoutObject* hoverAncestor() const { return parent(); }
777 778
778 Element* offsetParent() const; 779 Element* offsetParent() const;
779 780
780 void markContainerChainForLayout(bool scheduleRelayout = true, SubtreeLayout Scope* = nullptr); 781 void markContainerChainForLayout(bool scheduleRelayout = true, SubtreeLayout Scope* = nullptr);
781 void setNeedsLayout(LayoutInvalidationReasonForTracing, MarkingBehavior = Ma rkContainerChain, SubtreeLayoutScope* = nullptr); 782 void setNeedsLayout(LayoutInvalidationReasonForTracing, MarkingBehavior = Ma rkContainerChain, SubtreeLayoutScope* = nullptr);
782 void setNeedsLayoutAndFullPaintInvalidation(LayoutInvalidationReasonForTraci ng, MarkingBehavior = MarkContainerChain, SubtreeLayoutScope* = nullptr); 783 void setNeedsLayoutAndFullPaintInvalidation(LayoutInvalidationReasonForTraci ng, MarkingBehavior = MarkContainerChain, SubtreeLayoutScope* = nullptr);
783 void clearNeedsLayout(); 784 void clearNeedsLayout();
784 void setChildNeedsLayout(MarkingBehavior = MarkContainerChain, SubtreeLayout Scope* = nullptr); 785 void setChildNeedsLayout(MarkingBehavior = MarkContainerChain, SubtreeLayout Scope* = nullptr);
(...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after
1497 // FIXME: This should be 'markContaingBoxChainForOverflowRecalc when we make LayoutBox 1498 // FIXME: This should be 'markContaingBoxChainForOverflowRecalc when we make LayoutBox
1498 // recomputeOverflow-capable. crbug.com/437012 and crbug.com/434700. 1499 // recomputeOverflow-capable. crbug.com/437012 and crbug.com/434700.
1499 inline void markContainingBlocksForOverflowRecalc(); 1500 inline void markContainingBlocksForOverflowRecalc();
1500 1501
1501 inline void markContainerChainForPaintInvalidation(); 1502 inline void markContainerChainForPaintInvalidation();
1502 1503
1503 inline void invalidateSelectionIfNeeded(const LayoutBoxModelObject&, PaintIn validationReason); 1504 inline void invalidateSelectionIfNeeded(const LayoutBoxModelObject&, PaintIn validationReason);
1504 1505
1505 inline void invalidateContainerPreferredLogicalWidths(); 1506 inline void invalidateContainerPreferredLogicalWidths();
1506 1507
1507 void invalidatePaintOfPreviousPaintInvalidationRect(const LayoutBoxModelObje ct& paintInvalidationContainer, PaintInvalidationReason) const; 1508 void invalidatePaintOfPreviousPaintInvalidationRect(const LayoutBoxModelObje ct& paintInvalidationContainer, PaintInvalidationReason);
1508 1509
1509 LayoutRect previousSelectionRectForPaintInvalidation() const; 1510 LayoutRect previousSelectionRectForPaintInvalidation() const;
1510 void setPreviousSelectionRectForPaintInvalidation(const LayoutRect&); 1511 void setPreviousSelectionRectForPaintInvalidation(const LayoutRect&);
1511 1512
1512 LayoutObject* containerForAbsolutePosition(const LayoutBoxModelObject* paint InvalidationContainer = nullptr, bool* paintInvalidationContainerSkipped = nullp tr) const; 1513 LayoutObject* containerForAbsolutePosition(const LayoutBoxModelObject* paint InvalidationContainer = nullptr, bool* paintInvalidationContainerSkipped = nullp tr) const;
1513 1514
1514 const LayoutBoxModelObject* enclosingCompositedContainer() const; 1515 const LayoutBoxModelObject* enclosingCompositedContainer() const;
1515 1516
1516 LayoutFlowThread* locateFlowThreadContainingBlock() const; 1517 LayoutFlowThread* locateFlowThreadContainingBlock() const;
1517 void removeFromLayoutFlowThreadRecursive(LayoutFlowThread*); 1518 void removeFromLayoutFlowThreadRecursive(LayoutFlowThread*);
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
2040 void showTree(const blink::LayoutObject*); 2041 void showTree(const blink::LayoutObject*);
2041 void showLineTree(const blink::LayoutObject*); 2042 void showLineTree(const blink::LayoutObject*);
2042 void showLayoutTree(const blink::LayoutObject* object1); 2043 void showLayoutTree(const blink::LayoutObject* object1);
2043 // We don't make object2 an optional parameter so that showLayoutTree 2044 // We don't make object2 an optional parameter so that showLayoutTree
2044 // can be called from gdb easily. 2045 // can be called from gdb easily.
2045 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2); 2046 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2);
2046 2047
2047 #endif 2048 #endif
2048 2049
2049 #endif // LayoutObject_h 2050 #endif // LayoutObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698