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

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

Issue 2007003003: Check subtree paint invalidation when overflow clip status changes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2743
Patch Set: Created 4 years, 7 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) 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 1343 matching lines...) Expand 10 before | Expand all | Expand 10 after
1354 void setShouldDoFullPaintInvalidation(PaintInvalidationReason = PaintInvalid ationFull); 1354 void setShouldDoFullPaintInvalidation(PaintInvalidationReason = PaintInvalid ationFull);
1355 void clearShouldDoFullPaintInvalidation() { m_bitfields.setFullPaintInvalida tionReason(PaintInvalidationNone); } 1355 void clearShouldDoFullPaintInvalidation() { m_bitfields.setFullPaintInvalida tionReason(PaintInvalidationNone); }
1356 1356
1357 bool shouldInvalidateOverflowForPaint() const { return m_bitfields.shouldInv alidateOverflowForPaint(); } 1357 bool shouldInvalidateOverflowForPaint() const { return m_bitfields.shouldInv alidateOverflowForPaint(); }
1358 1358
1359 virtual void clearPaintInvalidationFlags(const PaintInvalidationState&); 1359 virtual void clearPaintInvalidationFlags(const PaintInvalidationState&);
1360 1360
1361 bool mayNeedPaintInvalidation() const { return m_bitfields.mayNeedPaintInval idation(); } 1361 bool mayNeedPaintInvalidation() const { return m_bitfields.mayNeedPaintInval idation(); }
1362 void setMayNeedPaintInvalidation(); 1362 void setMayNeedPaintInvalidation();
1363 1363
1364 bool mayNeedPaintInvalidationSubtree() const { return m_bitfields.mayNeedPai ntInvalidationSubtree(); }
1365 void setMayNeedPaintInvalidationSubtree();
1366
1364 bool shouldInvalidateSelection() const { return m_bitfields.shouldInvalidate Selection(); } 1367 bool shouldInvalidateSelection() const { return m_bitfields.shouldInvalidate Selection(); }
1365 void setShouldInvalidateSelection(); 1368 void setShouldInvalidateSelection();
1366 1369
1367 bool shouldCheckForPaintInvalidation(const PaintInvalidationState& paintInva lidationState) const 1370 bool shouldCheckForPaintInvalidation(const PaintInvalidationState& paintInva lidationState) const
1368 { 1371 {
1369 return paintInvalidationState.hasForcedSubtreeInvalidationFlags() 1372 return paintInvalidationState.hasForcedSubtreeInvalidationFlags()
1370 || shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState (); 1373 || shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState ();
1371 } 1374 }
1372 1375
1373 bool shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState() con st 1376 bool shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState() con st
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
1715 , m_needsPositionedMovementLayout(false) 1718 , m_needsPositionedMovementLayout(false)
1716 , m_normalChildNeedsLayout(false) 1719 , m_normalChildNeedsLayout(false)
1717 , m_posChildNeedsLayout(false) 1720 , m_posChildNeedsLayout(false)
1718 , m_needsSimplifiedNormalFlowLayout(false) 1721 , m_needsSimplifiedNormalFlowLayout(false)
1719 , m_selfNeedsOverflowRecalcAfterStyleChange(false) 1722 , m_selfNeedsOverflowRecalcAfterStyleChange(false)
1720 , m_childNeedsOverflowRecalcAfterStyleChange(false) 1723 , m_childNeedsOverflowRecalcAfterStyleChange(false)
1721 , m_preferredLogicalWidthsDirty(false) 1724 , m_preferredLogicalWidthsDirty(false)
1722 , m_shouldInvalidateOverflowForPaint(false) 1725 , m_shouldInvalidateOverflowForPaint(false)
1723 , m_childShouldCheckForPaintInvalidation(false) 1726 , m_childShouldCheckForPaintInvalidation(false)
1724 , m_mayNeedPaintInvalidation(false) 1727 , m_mayNeedPaintInvalidation(false)
1728 , m_mayNeedPaintInvalidationSubtree(false)
1725 , m_shouldInvalidateSelection(false) 1729 , m_shouldInvalidateSelection(false)
1726 , m_neededLayoutBecauseOfChildren(false) 1730 , m_neededLayoutBecauseOfChildren(false)
1727 , m_floating(false) 1731 , m_floating(false)
1728 , m_isAnonymous(!node) 1732 , m_isAnonymous(!node)
1729 , m_isText(false) 1733 , m_isText(false)
1730 , m_isBox(false) 1734 , m_isBox(false)
1731 , m_isInline(true) 1735 , m_isInline(true)
1732 , m_isAtomicInlineLevel(false) 1736 , m_isAtomicInlineLevel(false)
1733 , m_horizontalWritingMode(true) 1737 , m_horizontalWritingMode(true)
1734 , m_isDragging(false) 1738 , m_isDragging(false)
(...skipping 15 matching lines...) Expand all
1750 , m_lastBoxDecorationBackgroundObscured(false) 1754 , m_lastBoxDecorationBackgroundObscured(false)
1751 , m_isBackgroundAttachmentFixedObject(false) 1755 , m_isBackgroundAttachmentFixedObject(false)
1752 , m_isScrollAnchorObject(false) 1756 , m_isScrollAnchorObject(false)
1753 , m_positionedState(IsStaticallyPositioned) 1757 , m_positionedState(IsStaticallyPositioned)
1754 , m_selectionState(SelectionNone) 1758 , m_selectionState(SelectionNone)
1755 , m_boxDecorationBackgroundState(NoBoxDecorationBackground) 1759 , m_boxDecorationBackgroundState(NoBoxDecorationBackground)
1756 , m_fullPaintInvalidationReason(PaintInvalidationNone) 1760 , m_fullPaintInvalidationReason(PaintInvalidationNone)
1757 { 1761 {
1758 } 1762 }
1759 1763
1760 // 32 bits have been used in the first word, and 17 in the second. 1764 // 32 bits have been used in the first word, and 18 in the second.
1761 1765
1762 // Self needs layout means that this layout object is marked for a full layout. 1766 // Self needs layout means that this layout object is marked for a full layout.
1763 // This is the default layout but it is expensive as it recomputes every thing. 1767 // This is the default layout but it is expensive as it recomputes every thing.
1764 // For CSS boxes, this includes the width (laying out the line boxes aga in), the margins 1768 // For CSS boxes, this includes the width (laying out the line boxes aga in), the margins
1765 // (due to block collapsing margins), the positions, the height and the potential overflow. 1769 // (due to block collapsing margins), the positions, the height and the potential overflow.
1766 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout); 1770 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout);
1767 1771
1768 // A positioned movement layout is a specialized type of layout used on positioned objects 1772 // A positioned movement layout is a specialized type of layout used on positioned objects
1769 // that only visually moved. This layout is used when changing 'top'/'le ft' on a positioned 1773 // that only visually moved. This layout is used when changing 'top'/'le ft' on a positioned
1770 // element or margins on an out-of-flow one. Because the following opera tions don't impact 1774 // element or margins on an out-of-flow one. Because the following opera tions don't impact
(...skipping 30 matching lines...) Expand all
1801 1805
1802 // This boolean marks preferred logical widths for lazy recomputation. 1806 // This boolean marks preferred logical widths for lazy recomputation.
1803 // 1807 //
1804 // See INTRINSIC SIZES / PREFERRED LOGICAL WIDTHS above about those 1808 // See INTRINSIC SIZES / PREFERRED LOGICAL WIDTHS above about those
1805 // widths. 1809 // widths.
1806 ADD_BOOLEAN_BITFIELD(preferredLogicalWidthsDirty, PreferredLogicalWidths Dirty); 1810 ADD_BOOLEAN_BITFIELD(preferredLogicalWidthsDirty, PreferredLogicalWidths Dirty);
1807 1811
1808 ADD_BOOLEAN_BITFIELD(shouldInvalidateOverflowForPaint, ShouldInvalidateO verflowForPaint); // TODO(wangxianzhu): Remove for slimming paint v2. 1812 ADD_BOOLEAN_BITFIELD(shouldInvalidateOverflowForPaint, ShouldInvalidateO verflowForPaint); // TODO(wangxianzhu): Remove for slimming paint v2.
1809 ADD_BOOLEAN_BITFIELD(childShouldCheckForPaintInvalidation, ChildShouldCh eckForPaintInvalidation); 1813 ADD_BOOLEAN_BITFIELD(childShouldCheckForPaintInvalidation, ChildShouldCh eckForPaintInvalidation);
1810 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidation, MayNeedPaintInvalidation) ; 1814 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidation, MayNeedPaintInvalidation) ;
1815 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidationSubtree, MayNeedPaintInvali dationSubtree);
1811 ADD_BOOLEAN_BITFIELD(shouldInvalidateSelection, ShouldInvalidateSelectio n); // TODO(wangxianzhu): Remove for slimming paint v2. 1816 ADD_BOOLEAN_BITFIELD(shouldInvalidateSelection, ShouldInvalidateSelectio n); // TODO(wangxianzhu): Remove for slimming paint v2.
1812 ADD_BOOLEAN_BITFIELD(neededLayoutBecauseOfChildren, NeededLayoutBecauseO fChildren); // TODO(wangxianzhu): Remove for slimming paint v2. 1817 ADD_BOOLEAN_BITFIELD(neededLayoutBecauseOfChildren, NeededLayoutBecauseO fChildren); // TODO(wangxianzhu): Remove for slimming paint v2.
1813 1818
1814 // This boolean is the cached value of 'float' 1819 // This boolean is the cached value of 'float'
1815 // (see ComputedStyle::isFloating). 1820 // (see ComputedStyle::isFloating).
1816 ADD_BOOLEAN_BITFIELD(floating, Floating); 1821 ADD_BOOLEAN_BITFIELD(floating, Floating);
1817 1822
1818 ADD_BOOLEAN_BITFIELD(isAnonymous, IsAnonymous); 1823 ADD_BOOLEAN_BITFIELD(isAnonymous, IsAnonymous);
1819 ADD_BOOLEAN_BITFIELD(isText, IsText); 1824 ADD_BOOLEAN_BITFIELD(isText, IsText);
1820 ADD_BOOLEAN_BITFIELD(isBox, IsBox); 1825 ADD_BOOLEAN_BITFIELD(isBox, IsBox);
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
2174 void showTree(const blink::LayoutObject*); 2179 void showTree(const blink::LayoutObject*);
2175 void showLineTree(const blink::LayoutObject*); 2180 void showLineTree(const blink::LayoutObject*);
2176 void showLayoutTree(const blink::LayoutObject* object1); 2181 void showLayoutTree(const blink::LayoutObject* object1);
2177 // We don't make object2 an optional parameter so that showLayoutTree 2182 // We don't make object2 an optional parameter so that showLayoutTree
2178 // can be called from gdb easily. 2183 // can be called from gdb easily.
2179 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2); 2184 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2);
2180 2185
2181 #endif 2186 #endif
2182 2187
2183 #endif // LayoutObject_h 2188 #endif // LayoutObject_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutBoxModelObject.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