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

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

Issue 2229643002: Don't invalidate paint on background image change if it's obscured (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@BackgroundObscured
Patch Set: Rebase Created 4 years, 4 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 1324 matching lines...) Expand 10 before | Expand all | Expand 10 after
1335 void clearShouldDoFullPaintInvalidation() { m_bitfields.setFullPaintInvalida tionReason(PaintInvalidationNone); } 1335 void clearShouldDoFullPaintInvalidation() { m_bitfields.setFullPaintInvalida tionReason(PaintInvalidationNone); }
1336 1336
1337 virtual void clearPaintInvalidationFlags(const PaintInvalidationState&); 1337 virtual void clearPaintInvalidationFlags(const PaintInvalidationState&);
1338 1338
1339 bool mayNeedPaintInvalidation() const { return m_bitfields.mayNeedPaintInval idation(); } 1339 bool mayNeedPaintInvalidation() const { return m_bitfields.mayNeedPaintInval idation(); }
1340 void setMayNeedPaintInvalidation(); 1340 void setMayNeedPaintInvalidation();
1341 1341
1342 bool mayNeedPaintInvalidationSubtree() const { return m_bitfields.mayNeedPai ntInvalidationSubtree(); } 1342 bool mayNeedPaintInvalidationSubtree() const { return m_bitfields.mayNeedPai ntInvalidationSubtree(); }
1343 void setMayNeedPaintInvalidationSubtree(); 1343 void setMayNeedPaintInvalidationSubtree();
1344 1344
1345 bool mayNeedPaintInvalidationAnimatedBackgroundImage() const { return m_bitf ields.mayNeedPaintInvalidationAnimatedBackgroundImage(); }
1346 void setMayNeedPaintInvalidationAnimatgedBackgroundImage();
1347
1345 bool shouldInvalidateSelection() const { return m_bitfields.shouldInvalidate Selection(); } 1348 bool shouldInvalidateSelection() const { return m_bitfields.shouldInvalidate Selection(); }
1346 void setShouldInvalidateSelection(); 1349 void setShouldInvalidateSelection();
1347 1350
1348 bool shouldCheckForPaintInvalidation(const PaintInvalidationState& paintInva lidationState) const 1351 bool shouldCheckForPaintInvalidation(const PaintInvalidationState& paintInva lidationState) const
1349 { 1352 {
1350 return paintInvalidationState.hasForcedSubtreeInvalidationFlags() 1353 return paintInvalidationState.hasForcedSubtreeInvalidationFlags()
1351 || shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState (); 1354 || shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState ();
1352 } 1355 }
1353 1356
1354 bool shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState() con st 1357 bool shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState() con st
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
1728 , m_needsPositionedMovementLayout(false) 1731 , m_needsPositionedMovementLayout(false)
1729 , m_normalChildNeedsLayout(false) 1732 , m_normalChildNeedsLayout(false)
1730 , m_posChildNeedsLayout(false) 1733 , m_posChildNeedsLayout(false)
1731 , m_needsSimplifiedNormalFlowLayout(false) 1734 , m_needsSimplifiedNormalFlowLayout(false)
1732 , m_selfNeedsOverflowRecalcAfterStyleChange(false) 1735 , m_selfNeedsOverflowRecalcAfterStyleChange(false)
1733 , m_childNeedsOverflowRecalcAfterStyleChange(false) 1736 , m_childNeedsOverflowRecalcAfterStyleChange(false)
1734 , m_preferredLogicalWidthsDirty(false) 1737 , m_preferredLogicalWidthsDirty(false)
1735 , m_childShouldCheckForPaintInvalidation(false) 1738 , m_childShouldCheckForPaintInvalidation(false)
1736 , m_mayNeedPaintInvalidation(false) 1739 , m_mayNeedPaintInvalidation(false)
1737 , m_mayNeedPaintInvalidationSubtree(false) 1740 , m_mayNeedPaintInvalidationSubtree(false)
1741 , m_mayNeedPaintInvalidationAnimatedBackgroundImage(false)
1738 , m_shouldInvalidateSelection(false) 1742 , m_shouldInvalidateSelection(false)
1739 , m_floating(false) 1743 , m_floating(false)
1740 , m_isAnonymous(!node) 1744 , m_isAnonymous(!node)
1741 , m_isText(false) 1745 , m_isText(false)
1742 , m_isBox(false) 1746 , m_isBox(false)
1743 , m_isInline(true) 1747 , m_isInline(true)
1744 , m_isAtomicInlineLevel(false) 1748 , m_isAtomicInlineLevel(false)
1745 , m_horizontalWritingMode(true) 1749 , m_horizontalWritingMode(true)
1746 , m_isDragging(false) 1750 , m_isDragging(false)
1747 , m_hasLayer(false) 1751 , m_hasLayer(false)
(...skipping 15 matching lines...) Expand all
1763 , m_isBackgroundAttachmentFixedObject(false) 1767 , m_isBackgroundAttachmentFixedObject(false)
1764 , m_isScrollAnchorObject(false) 1768 , m_isScrollAnchorObject(false)
1765 , m_hasBoxDecorationBackground(false) 1769 , m_hasBoxDecorationBackground(false)
1766 , m_positionedState(IsStaticallyPositioned) 1770 , m_positionedState(IsStaticallyPositioned)
1767 , m_selectionState(SelectionNone) 1771 , m_selectionState(SelectionNone)
1768 , m_backgroundObscurationState(BackgroundObscurationStatusInvalid) 1772 , m_backgroundObscurationState(BackgroundObscurationStatusInvalid)
1769 , m_fullPaintInvalidationReason(PaintInvalidationNone) 1773 , m_fullPaintInvalidationReason(PaintInvalidationNone)
1770 { 1774 {
1771 } 1775 }
1772 1776
1773 // 32 bits have been used in the first word, and 17 in the second. 1777 // 32 bits have been used in the first word, and 18 in the second.
1774 1778
1775 // Self needs layout means that this layout object is marked for a full layout. 1779 // Self needs layout means that this layout object is marked for a full layout.
1776 // This is the default layout but it is expensive as it recomputes every thing. 1780 // This is the default layout but it is expensive as it recomputes every thing.
1777 // For CSS boxes, this includes the width (laying out the line boxes aga in), the margins 1781 // For CSS boxes, this includes the width (laying out the line boxes aga in), the margins
1778 // (due to block collapsing margins), the positions, the height and the potential overflow. 1782 // (due to block collapsing margins), the positions, the height and the potential overflow.
1779 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout); 1783 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout);
1780 1784
1781 // A positioned movement layout is a specialized type of layout used on positioned objects 1785 // A positioned movement layout is a specialized type of layout used on positioned objects
1782 // that only visually moved. This layout is used when changing 'top'/'le ft' on a positioned 1786 // that only visually moved. This layout is used when changing 'top'/'le ft' on a positioned
1783 // element or margins on an out-of-flow one. Because the following opera tions don't impact 1787 // element or margins on an out-of-flow one. Because the following opera tions don't impact
(...skipping 30 matching lines...) Expand all
1814 1818
1815 // This boolean marks preferred logical widths for lazy recomputation. 1819 // This boolean marks preferred logical widths for lazy recomputation.
1816 // 1820 //
1817 // See INTRINSIC SIZES / PREFERRED LOGICAL WIDTHS above about those 1821 // See INTRINSIC SIZES / PREFERRED LOGICAL WIDTHS above about those
1818 // widths. 1822 // widths.
1819 ADD_BOOLEAN_BITFIELD(preferredLogicalWidthsDirty, PreferredLogicalWidths Dirty); 1823 ADD_BOOLEAN_BITFIELD(preferredLogicalWidthsDirty, PreferredLogicalWidths Dirty);
1820 1824
1821 ADD_BOOLEAN_BITFIELD(childShouldCheckForPaintInvalidation, ChildShouldCh eckForPaintInvalidation); 1825 ADD_BOOLEAN_BITFIELD(childShouldCheckForPaintInvalidation, ChildShouldCh eckForPaintInvalidation);
1822 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidation, MayNeedPaintInvalidation) ; 1826 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidation, MayNeedPaintInvalidation) ;
1823 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidationSubtree, MayNeedPaintInvali dationSubtree); 1827 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidationSubtree, MayNeedPaintInvali dationSubtree);
1828 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidationAnimatedBackgroundImage, Ma yNeedPaintInvalidationAnimatedBackgroundImage);
1824 ADD_BOOLEAN_BITFIELD(shouldInvalidateSelection, ShouldInvalidateSelectio n); 1829 ADD_BOOLEAN_BITFIELD(shouldInvalidateSelection, ShouldInvalidateSelectio n);
1825 1830
1826 // This boolean is the cached value of 'float' 1831 // This boolean is the cached value of 'float'
1827 // (see ComputedStyle::isFloating). 1832 // (see ComputedStyle::isFloating).
1828 ADD_BOOLEAN_BITFIELD(floating, Floating); 1833 ADD_BOOLEAN_BITFIELD(floating, Floating);
1829 1834
1830 ADD_BOOLEAN_BITFIELD(isAnonymous, IsAnonymous); 1835 ADD_BOOLEAN_BITFIELD(isAnonymous, IsAnonymous);
1831 ADD_BOOLEAN_BITFIELD(isText, IsText); 1836 ADD_BOOLEAN_BITFIELD(isText, IsText);
1832 ADD_BOOLEAN_BITFIELD(isBox, IsBox); 1837 ADD_BOOLEAN_BITFIELD(isBox, IsBox);
1833 1838
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
2182 void showTree(const blink::LayoutObject*); 2187 void showTree(const blink::LayoutObject*);
2183 void showLineTree(const blink::LayoutObject*); 2188 void showLineTree(const blink::LayoutObject*);
2184 void showLayoutTree(const blink::LayoutObject* object1); 2189 void showLayoutTree(const blink::LayoutObject* object1);
2185 // We don't make object2 an optional parameter so that showLayoutTree 2190 // We don't make object2 an optional parameter so that showLayoutTree
2186 // can be called from gdb easily. 2191 // can be called from gdb easily.
2187 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2); 2192 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2);
2188 2193
2189 #endif 2194 #endif
2190 2195
2191 #endif // LayoutObject_h 2196 #endif // LayoutObject_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutImage.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