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

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 fixed-position.
773 LayoutBlock* containerForFixedPosition(const LayoutBoxModelObject* paintInva lidationContainer = nullptr, bool* paintInvalidationContainerSkipped = nullptr) const; 774 LayoutBlock* containerForFixedPosition(const LayoutBoxModelObject* paintInva lidationContainer = nullptr, bool* paintInvalidationContainerSkipped = nullptr) const;
775 // Finds the containing block as if this object is absolute-position.
774 LayoutBlock* containingBlockForAbsolutePosition() const; 776 LayoutBlock* containingBlockForAbsolutePosition() const;
775 777
776 virtual LayoutObject* hoverAncestor() const { return parent(); } 778 virtual LayoutObject* hoverAncestor() const { return parent(); }
777 779
778 Element* offsetParent() const; 780 Element* offsetParent() const;
779 781
780 void markContainerChainForLayout(bool scheduleRelayout = true, SubtreeLayout Scope* = nullptr); 782 void markContainerChainForLayout(bool scheduleRelayout = true, SubtreeLayout Scope* = nullptr);
781 void setNeedsLayout(LayoutInvalidationReasonForTracing, MarkingBehavior = Ma rkContainerChain, SubtreeLayoutScope* = nullptr); 783 void setNeedsLayout(LayoutInvalidationReasonForTracing, MarkingBehavior = Ma rkContainerChain, SubtreeLayoutScope* = nullptr);
782 void setNeedsLayoutAndFullPaintInvalidation(LayoutInvalidationReasonForTraci ng, MarkingBehavior = MarkContainerChain, SubtreeLayoutScope* = nullptr); 784 void setNeedsLayoutAndFullPaintInvalidation(LayoutInvalidationReasonForTraci ng, MarkingBehavior = MarkContainerChain, SubtreeLayoutScope* = nullptr);
783 void clearNeedsLayout(); 785 void clearNeedsLayout();
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after
1497 // FIXME: This should be 'markContaingBoxChainForOverflowRecalc when we make LayoutBox 1499 // FIXME: This should be 'markContaingBoxChainForOverflowRecalc when we make LayoutBox
1498 // recomputeOverflow-capable. crbug.com/437012 and crbug.com/434700. 1500 // recomputeOverflow-capable. crbug.com/437012 and crbug.com/434700.
1499 inline void markContainingBlocksForOverflowRecalc(); 1501 inline void markContainingBlocksForOverflowRecalc();
1500 1502
1501 inline void markContainerChainForPaintInvalidation(); 1503 inline void markContainerChainForPaintInvalidation();
1502 1504
1503 inline void invalidateSelectionIfNeeded(const LayoutBoxModelObject&, PaintIn validationReason); 1505 inline void invalidateSelectionIfNeeded(const LayoutBoxModelObject&, PaintIn validationReason);
1504 1506
1505 inline void invalidateContainerPreferredLogicalWidths(); 1507 inline void invalidateContainerPreferredLogicalWidths();
1506 1508
1507 void invalidatePaintOfPreviousPaintInvalidationRect(const LayoutBoxModelObje ct& paintInvalidationContainer, PaintInvalidationReason) const; 1509 void invalidatePaintOfPreviousPaintInvalidationRect(const LayoutBoxModelObje ct& paintInvalidationContainer, PaintInvalidationReason);
1508 1510
1509 LayoutRect previousSelectionRectForPaintInvalidation() const; 1511 LayoutRect previousSelectionRectForPaintInvalidation() const;
1510 void setPreviousSelectionRectForPaintInvalidation(const LayoutRect&); 1512 void setPreviousSelectionRectForPaintInvalidation(const LayoutRect&);
1511 1513
1512 LayoutObject* containerForAbsolutePosition(const LayoutBoxModelObject* paint InvalidationContainer = nullptr, bool* paintInvalidationContainerSkipped = nullp tr) const; 1514 LayoutObject* containerForAbsolutePosition(const LayoutBoxModelObject* paint InvalidationContainer = nullptr, bool* paintInvalidationContainerSkipped = nullp tr) const;
1513 1515
1514 const LayoutBoxModelObject* enclosingCompositedContainer() const; 1516 const LayoutBoxModelObject* enclosingCompositedContainer() const;
1515 1517
1516 LayoutFlowThread* locateFlowThreadContainingBlock() const; 1518 LayoutFlowThread* locateFlowThreadContainingBlock() const;
1517 void removeFromLayoutFlowThreadRecursive(LayoutFlowThread*); 1519 void removeFromLayoutFlowThreadRecursive(LayoutFlowThread*);
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
2040 void showTree(const blink::LayoutObject*); 2042 void showTree(const blink::LayoutObject*);
2041 void showLineTree(const blink::LayoutObject*); 2043 void showLineTree(const blink::LayoutObject*);
2042 void showLayoutTree(const blink::LayoutObject* object1); 2044 void showLayoutTree(const blink::LayoutObject* object1);
2043 // We don't make object2 an optional parameter so that showLayoutTree 2045 // We don't make object2 an optional parameter so that showLayoutTree
2044 // can be called from gdb easily. 2046 // can be called from gdb easily.
2045 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2); 2047 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2);
2046 2048
2047 #endif 2049 #endif
2048 2050
2049 #endif // LayoutObject_h 2051 #endif // LayoutObject_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutBlock.cpp ('k') | third_party/WebKit/Source/core/layout/LayoutObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698