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

Side by Side Diff: Source/core/rendering/RenderObject.h

Issue 131233003: Refactor ResourceLoadPriorityOptimizer to avoid walking render tree (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Changes from review. Created 6 years, 11 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 650 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 661
662 void updateFillImages(const FillLayer*, const FillLayer*); 662 void updateFillImages(const FillLayer*, const FillLayer*);
663 void updateImage(StyleImage*, StyleImage*); 663 void updateImage(StyleImage*, StyleImage*);
664 void updateShapeImage(const ShapeValue*, const ShapeValue*); 664 void updateShapeImage(const ShapeValue*, const ShapeValue*);
665 665
666 virtual void paint(PaintInfo&, const LayoutPoint&); 666 virtual void paint(PaintInfo&, const LayoutPoint&);
667 667
668 // Subclasses must reimplement this method to compute the size and position 668 // Subclasses must reimplement this method to compute the size and position
669 // of this object and all its descendants. 669 // of this object and all its descendants.
670 virtual void layout() = 0; 670 virtual void layout() = 0;
671 virtual void didLayout(ResourceLoadPriorityOptimizer&); 671 virtual bool updateImageLoadingPriorities() { return false; }
672 virtual void didScroll(ResourceLoadPriorityOptimizer&); 672 void setHasPendingResourceUpdate(bool hasPendingResourceUpdate) { m_bitfield s.setHasPendingResourceUpdate(hasPendingResourceUpdate); }
673 bool hasPendingResourceUpdate() const { return m_bitfields.hasPendingResourc eUpdate(); }
673 674
674 /* This function performs a layout only if one is needed. */ 675 /* This function performs a layout only if one is needed. */
675 void layoutIfNeeded() { if (needsLayout()) layout(); } 676 void layoutIfNeeded() { if (needsLayout()) layout(); }
676 677
677 void forceLayout(); 678 void forceLayout();
678 void forceChildLayout(); 679 void forceChildLayout();
679 680
680 // True if we can abort layout, leaving a partially laid out tree. 681 // True if we can abort layout, leaving a partially laid out tree.
681 virtual bool supportsPartialLayout() const { return false; } 682 virtual bool supportsPartialLayout() const { return false; }
682 683
(...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after
1140 , m_hasCounterNodeMap(false) 1141 , m_hasCounterNodeMap(false)
1141 , m_everHadLayout(false) 1142 , m_everHadLayout(false)
1142 , m_ancestorLineBoxDirty(false) 1143 , m_ancestorLineBoxDirty(false)
1143 , m_childrenInline(false) 1144 , m_childrenInline(false)
1144 , m_hasColumns(false) 1145 , m_hasColumns(false)
1145 , m_layoutDidGetCalled(false) 1146 , m_layoutDidGetCalled(false)
1146 , m_positionedState(IsStaticallyPositioned) 1147 , m_positionedState(IsStaticallyPositioned)
1147 , m_selectionState(SelectionNone) 1148 , m_selectionState(SelectionNone)
1148 , m_flowThreadState(NotInsideFlowThread) 1149 , m_flowThreadState(NotInsideFlowThread)
1149 , m_boxDecorationState(NoBoxDecorations) 1150 , m_boxDecorationState(NoBoxDecorations)
1151 , m_hasPendingResourceUpdate(false)
1150 { 1152 {
1151 } 1153 }
1152 1154
1153 // 32 bits have been used in the first word, and 2 in the second. 1155 // 32 bits have been used in the first word, and 3 in the second.
1154 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout); 1156 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout);
1155 ADD_BOOLEAN_BITFIELD(shouldDoFullRepaintAfterLayout, ShouldDoFullRepaint AfterLayout); 1157 ADD_BOOLEAN_BITFIELD(shouldDoFullRepaintAfterLayout, ShouldDoFullRepaint AfterLayout);
1156 ADD_BOOLEAN_BITFIELD(shouldRepaintOverflowIfNeeded, ShouldRepaintOverflo wIfNeeded); 1158 ADD_BOOLEAN_BITFIELD(shouldRepaintOverflowIfNeeded, ShouldRepaintOverflo wIfNeeded);
1157 ADD_BOOLEAN_BITFIELD(needsPositionedMovementLayout, NeedsPositionedMovem entLayout); 1159 ADD_BOOLEAN_BITFIELD(needsPositionedMovementLayout, NeedsPositionedMovem entLayout);
1158 ADD_BOOLEAN_BITFIELD(normalChildNeedsLayout, NormalChildNeedsLayout); 1160 ADD_BOOLEAN_BITFIELD(normalChildNeedsLayout, NormalChildNeedsLayout);
1159 ADD_BOOLEAN_BITFIELD(posChildNeedsLayout, PosChildNeedsLayout); 1161 ADD_BOOLEAN_BITFIELD(posChildNeedsLayout, PosChildNeedsLayout);
1160 ADD_BOOLEAN_BITFIELD(needsSimplifiedNormalFlowLayout, NeedsSimplifiedNor malFlowLayout); 1162 ADD_BOOLEAN_BITFIELD(needsSimplifiedNormalFlowLayout, NeedsSimplifiedNor malFlowLayout);
1161 ADD_BOOLEAN_BITFIELD(preferredLogicalWidthsDirty, PreferredLogicalWidths Dirty); 1163 ADD_BOOLEAN_BITFIELD(preferredLogicalWidthsDirty, PreferredLogicalWidths Dirty);
1162 ADD_BOOLEAN_BITFIELD(floating, Floating); 1164 ADD_BOOLEAN_BITFIELD(floating, Floating);
1163 1165
(...skipping 20 matching lines...) Expand all
1184 1186
1185 ADD_BOOLEAN_BITFIELD(layoutDidGetCalled, LayoutDidGetCalled); 1187 ADD_BOOLEAN_BITFIELD(layoutDidGetCalled, LayoutDidGetCalled);
1186 1188
1187 private: 1189 private:
1188 unsigned m_positionedState : 2; // PositionedState 1190 unsigned m_positionedState : 2; // PositionedState
1189 unsigned m_selectionState : 3; // SelectionState 1191 unsigned m_selectionState : 3; // SelectionState
1190 unsigned m_flowThreadState : 2; // FlowThreadState 1192 unsigned m_flowThreadState : 2; // FlowThreadState
1191 unsigned m_boxDecorationState : 2; // BoxDecorationState 1193 unsigned m_boxDecorationState : 2; // BoxDecorationState
1192 1194
1193 public: 1195 public:
1196
1197 ADD_BOOLEAN_BITFIELD(hasPendingResourceUpdate, HasPendingResourceUpdate) ;
1198
1194 bool isOutOfFlowPositioned() const { return m_positionedState == IsOutOf FlowPositioned; } 1199 bool isOutOfFlowPositioned() const { return m_positionedState == IsOutOf FlowPositioned; }
1195 bool isRelPositioned() const { return m_positionedState == IsRelativelyP ositioned; } 1200 bool isRelPositioned() const { return m_positionedState == IsRelativelyP ositioned; }
1196 bool isStickyPositioned() const { return m_positionedState == IsStickyPo sitioned; } 1201 bool isStickyPositioned() const { return m_positionedState == IsStickyPo sitioned; }
1197 bool isPositioned() const { return m_positionedState != IsStaticallyPosi tioned; } 1202 bool isPositioned() const { return m_positionedState != IsStaticallyPosi tioned; }
1198 1203
1199 void setPositionedState(int positionState) 1204 void setPositionedState(int positionState)
1200 { 1205 {
1201 // This mask maps FixedPosition and AbsolutePosition to IsOutOfFlowP ositioned, saving one bit. 1206 // This mask maps FixedPosition and AbsolutePosition to IsOutOfFlowP ositioned, saving one bit.
1202 m_positionedState = static_cast<PositionedState>(positionState & 0x3 ); 1207 m_positionedState = static_cast<PositionedState>(positionState & 0x3 );
1203 } 1208 }
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
1427 void showTree(const WebCore::RenderObject*); 1432 void showTree(const WebCore::RenderObject*);
1428 void showLineTree(const WebCore::RenderObject*); 1433 void showLineTree(const WebCore::RenderObject*);
1429 void showRenderTree(const WebCore::RenderObject* object1); 1434 void showRenderTree(const WebCore::RenderObject* object1);
1430 // We don't make object2 an optional parameter so that showRenderTree 1435 // We don't make object2 an optional parameter so that showRenderTree
1431 // can be called from gdb easily. 1436 // can be called from gdb easily.
1432 void showRenderTree(const WebCore::RenderObject* object1, const WebCore::RenderO bject* object2); 1437 void showRenderTree(const WebCore::RenderObject* object1, const WebCore::RenderO bject* object2);
1433 1438
1434 #endif 1439 #endif
1435 1440
1436 #endif // RenderObject_h 1441 #endif // RenderObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698