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

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

Issue 2539693002: Early-out from the prepaint tree walk (Closed)
Patch Set: Switch away from typed enums which Windows clang does not like Created 4 years 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. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc.
7 * All rights reserved. 7 * All rights reserved.
8 * Copyright (C) 2009 Google Inc. All rights reserved. 8 * Copyright (C) 2009 Google Inc. All rights reserved.
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 1684 matching lines...) Expand 10 before | Expand all | Expand 10 after
1695 } 1695 }
1696 void setPreviousBackgroundObscured(bool b) { 1696 void setPreviousBackgroundObscured(bool b) {
1697 m_layoutObject.setPreviousBackgroundObscured(b); 1697 m_layoutObject.setPreviousBackgroundObscured(b);
1698 } 1698 }
1699 void clearPreviousVisualRects() { 1699 void clearPreviousVisualRects() {
1700 m_layoutObject.clearPreviousVisualRects(); 1700 m_layoutObject.clearPreviousVisualRects();
1701 } 1701 }
1702 void setNeedsPaintPropertyUpdate() { 1702 void setNeedsPaintPropertyUpdate() {
1703 m_layoutObject.setNeedsPaintPropertyUpdate(); 1703 m_layoutObject.setNeedsPaintPropertyUpdate();
1704 } 1704 }
1705 void setNeedsPaintPropertyUpdateWithoutMarkingAncestors() {
1706 m_layoutObject.setNeedsPaintPropertyUpdateWithoutMarkingAncestors();
1707 }
1705 void clearNeedsPaintPropertyUpdate() { 1708 void clearNeedsPaintPropertyUpdate() {
1706 m_layoutObject.clearNeedsPaintPropertyUpdate(); 1709 m_layoutObject.clearNeedsPaintPropertyUpdate();
1707 } 1710 }
1708 void clearDescendantNeedsPaintPropertyUpdate() { 1711 void clearDescendantNeedsPaintPropertyUpdate() {
1709 m_layoutObject.clearDescendantNeedsPaintPropertyUpdate(); 1712 m_layoutObject.clearDescendantNeedsPaintPropertyUpdate();
1710 } 1713 }
1711 1714
1712 protected: 1715 protected:
1713 friend class PaintPropertyTreeBuilder; 1716 friend class PaintPropertyTreeBuilder;
1714 // The following two functions can be called from PaintPropertyTreeBuilder 1717 // The following two functions can be called from PaintPropertyTreeBuilder
(...skipping 19 matching lines...) Expand all
1734 // Paint properties (see: |ObjectPaintProperties|) are built from an object's 1737 // Paint properties (see: |ObjectPaintProperties|) are built from an object's
1735 // state (location, transform, etc) as well as properties from ancestors. 1738 // state (location, transform, etc) as well as properties from ancestors.
1736 // When these inputs change, setNeedsPaintPropertyUpdate will cause a property 1739 // When these inputs change, setNeedsPaintPropertyUpdate will cause a property
1737 // tree update during the next document lifecycle update. 1740 // tree update during the next document lifecycle update.
1738 // 1741 //
1739 // In addition to tracking if an object needs its own paint properties 1742 // In addition to tracking if an object needs its own paint properties
1740 // updated, |descendantNeedsPaintPropertyUpdate| is used to track if any 1743 // updated, |descendantNeedsPaintPropertyUpdate| is used to track if any
1741 // descendant needs an update too. This bit is up the tree, crossing frames, 1744 // descendant needs an update too. This bit is up the tree, crossing frames,
1742 // when calling |setNeedsPaintPropertyUpdate|. 1745 // when calling |setNeedsPaintPropertyUpdate|.
1743 void setNeedsPaintPropertyUpdate(); 1746 void setNeedsPaintPropertyUpdate();
1747 // Same as |setNeedsPaintPropertyUpdate| but does not notify ancestors as
1748 // having a descendant needing a paint property update.
1749 void setNeedsPaintPropertyUpdateWithoutMarkingAncestors() {
1750 DCHECK_EQ(document().lifecycle().state(), DocumentLifecycle::InPrePaint);
1751 m_bitfields.setNeedsPaintPropertyUpdate(true);
1752 }
1744 bool needsPaintPropertyUpdate() const { 1753 bool needsPaintPropertyUpdate() const {
1745 return m_bitfields.needsPaintPropertyUpdate(); 1754 return m_bitfields.needsPaintPropertyUpdate();
1746 } 1755 }
1747 void clearNeedsPaintPropertyUpdate() { 1756 void clearNeedsPaintPropertyUpdate() {
1748 DCHECK_EQ(document().lifecycle().state(), DocumentLifecycle::InPrePaint); 1757 DCHECK_EQ(document().lifecycle().state(), DocumentLifecycle::InPrePaint);
1749 m_bitfields.setNeedsPaintPropertyUpdate(false); 1758 m_bitfields.setNeedsPaintPropertyUpdate(false);
1750 } 1759 }
1760 // Sets |descendantNeedsPaintPropertyUpdate| on this object and all ancestors.
1761 void setDescendantNeedsPaintPropertyUpdate();
1751 bool descendantNeedsPaintPropertyUpdate() const { 1762 bool descendantNeedsPaintPropertyUpdate() const {
1752 return m_bitfields.descendantNeedsPaintPropertyUpdate(); 1763 return m_bitfields.descendantNeedsPaintPropertyUpdate();
1753 } 1764 }
1754 void clearDescendantNeedsPaintPropertyUpdate() { 1765 void clearDescendantNeedsPaintPropertyUpdate() {
1755 DCHECK_EQ(document().lifecycle().state(), DocumentLifecycle::InPrePaint); 1766 DCHECK_EQ(document().lifecycle().state(), DocumentLifecycle::InPrePaint);
1756 m_bitfields.setDescendantNeedsPaintPropertyUpdate(false); 1767 m_bitfields.setDescendantNeedsPaintPropertyUpdate(false);
1757 } 1768 }
1758 // Main thread scrolling reasons require fully updating paint propeties of all 1769 // Main thread scrolling reasons require fully updating paint propeties of all
1759 // ancestors (see: ScrollPaintPropertyNode.h). 1770 // ancestors (see: ScrollPaintPropertyNode.h).
1760 void setAncestorsNeedPaintPropertyUpdateForMainThreadScrolling(); 1771 void setAncestorsNeedPaintPropertyUpdateForMainThreadScrolling();
(...skipping 895 matching lines...) Expand 10 before | Expand all | Expand 10 after
2656 CORE_EXPORT void showLineTree(const blink::LayoutObject*); 2667 CORE_EXPORT void showLineTree(const blink::LayoutObject*);
2657 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1); 2668 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1);
2658 // We don't make object2 an optional parameter so that showLayoutTree 2669 // We don't make object2 an optional parameter so that showLayoutTree
2659 // can be called from gdb easily. 2670 // can be called from gdb easily.
2660 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1, 2671 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1,
2661 const blink::LayoutObject* object2); 2672 const blink::LayoutObject* object2);
2662 2673
2663 #endif 2674 #endif
2664 2675
2665 #endif // LayoutObject_h 2676 #endif // LayoutObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698