OLD | NEW |
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 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 LayoutRect bounds; | 108 LayoutRect bounds; |
109 bool draggable; | 109 bool draggable; |
110 }; | 110 }; |
111 | 111 |
112 typedef WTF::HashMap<const DeprecatedPaintLayer*, Vector<LayoutRect>> LayerHitTe
stRects; | 112 typedef WTF::HashMap<const DeprecatedPaintLayer*, Vector<LayoutRect>> LayerHitTe
stRects; |
113 | 113 |
114 #ifndef NDEBUG | 114 #ifndef NDEBUG |
115 const int showTreeCharacterOffset = 39; | 115 const int showTreeCharacterOffset = 39; |
116 #endif | 116 #endif |
117 | 117 |
| 118 class NonLayoutObjectDisplayItemClientWrapper : public DisplayItemClientWrapper
{ |
| 119 public: |
| 120 template <typename T> |
| 121 NonLayoutObjectDisplayItemClientWrapper(const T& client) |
| 122 : DisplayItemClientWrapper(client) { } |
| 123 |
| 124 NonLayoutObjectDisplayItemClientWrapper(const LayoutObject&) = delete; |
| 125 }; |
| 126 |
118 // Base class for all layout tree objects. | 127 // Base class for all layout tree objects. |
119 class CORE_EXPORT LayoutObject : public ImageResourceClient { | 128 class CORE_EXPORT LayoutObject : public ImageResourceClient { |
120 friend class LayoutBlock; | 129 friend class LayoutBlock; |
121 friend class LayoutBlockFlow; | 130 friend class LayoutBlockFlow; |
122 friend class DeprecatedPaintLayerReflectionInfo; // For setParent | 131 friend class DeprecatedPaintLayerReflectionInfo; // For setParent |
123 friend class DeprecatedPaintLayerScrollableArea; // For setParent. | 132 friend class DeprecatedPaintLayerScrollableArea; // For setParent. |
124 friend class LayoutObjectChildList; | 133 friend class LayoutObjectChildList; |
125 WTF_MAKE_NONCOPYABLE(LayoutObject); | 134 WTF_MAKE_NONCOPYABLE(LayoutObject); |
126 public: | 135 public: |
127 // Anonymous objects should pass the document as their node, and they will t
hen automatically be | 136 // Anonymous objects should pass the document as their node, and they will t
hen automatically be |
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
849 | 858 |
850 // Returns the rect bounds needed to invalidate the paint of this object, in
the coordinate space of the layoutObject backing of |paintInvalidationContainer
| | 859 // Returns the rect bounds needed to invalidate the paint of this object, in
the coordinate space of the layoutObject backing of |paintInvalidationContainer
| |
851 LayoutRect boundsRectForPaintInvalidation(const LayoutBoxModelObject* paintI
nvalidationContainer, const PaintInvalidationState* = nullptr) const; | 860 LayoutRect boundsRectForPaintInvalidation(const LayoutBoxModelObject* paintI
nvalidationContainer, const PaintInvalidationState* = nullptr) const; |
852 | 861 |
853 // Actually do the paint invalidate of rect r for this object which has been
computed in the coordinate space | 862 // Actually do the paint invalidate of rect r for this object which has been
computed in the coordinate space |
854 // of the GraphicsLayer backing of |paintInvalidationContainer|. Note that t
his coordinaten space is not the same | 863 // of the GraphicsLayer backing of |paintInvalidationContainer|. Note that t
his coordinaten space is not the same |
855 // as the local coordinate space of |paintInvalidationContainer| in the pres
ence of layer squashing. | 864 // as the local coordinate space of |paintInvalidationContainer| in the pres
ence of layer squashing. |
856 void invalidatePaintUsingContainer(const LayoutBoxModelObject& paintInvalida
tionContainer, const LayoutRect&, PaintInvalidationReason) const; | 865 void invalidatePaintUsingContainer(const LayoutBoxModelObject& paintInvalida
tionContainer, const LayoutRect&, PaintInvalidationReason) const; |
857 | 866 |
858 // Invalidate the paint of a specific subrectangle within a given object. Th
e rect |r| is in the object's coordinate space. | 867 // Invalidate the paint of a specific subrectangle within a given object. Th
e rect |r| is in the object's coordinate space. |
859 void invalidatePaintRectangle(const LayoutRect&) const; | 868 void invalidatePaintRectangle(const LayoutRect&); |
860 void invalidatePaintRectangleNotInvalidatingDisplayItemClients(const LayoutR
ect& r) const { invalidatePaintRectangleInternal(r); } | 869 void invalidatePaintRectangleNotInvalidatingDisplayItemClients(const LayoutR
ect& r) { invalidatePaintRectangleInternal(r); } |
861 | 870 |
862 // Walk the tree after layout issuing paint invalidations for layoutObjects
that have changed or moved, updating bounds that have changed, and clearing pain
t invalidation state. | 871 // Walk the tree after layout issuing paint invalidations for layoutObjects
that have changed or moved, updating bounds that have changed, and clearing pain
t invalidation state. |
863 virtual void invalidateTreeIfNeeded(PaintInvalidationState&); | 872 virtual void invalidateTreeIfNeeded(PaintInvalidationState&); |
864 | 873 |
865 virtual void invalidatePaintForOverflow(); | 874 virtual void invalidatePaintForOverflow(); |
866 void invalidatePaintForOverflowIfNeeded(); | 875 void invalidatePaintForOverflowIfNeeded(); |
867 | 876 |
868 void invalidatePaintIncludingNonCompositingDescendants(); | 877 void invalidatePaintIncludingNonCompositingDescendants(); |
869 void setShouldDoFullPaintInvalidationIncludingNonCompositingDescendants(); | 878 void setShouldDoFullPaintInvalidationIncludingNonCompositingDescendants(); |
870 | 879 |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1036 { | 1045 { |
1037 return mayNeedPaintInvalidation() || shouldDoFullPaintInvalidation() ||
shouldInvalidateSelection() || m_bitfields.childShouldCheckForPaintInvalidation(
); | 1046 return mayNeedPaintInvalidation() || shouldDoFullPaintInvalidation() ||
shouldInvalidateSelection() || m_bitfields.childShouldCheckForPaintInvalidation(
); |
1038 } | 1047 } |
1039 | 1048 |
1040 virtual bool supportsPaintInvalidationStateCachedOffsets() const { return !h
asTransformRelatedProperty() && !hasReflection() && !style()->isFlippedBlocksWri
tingMode(); } | 1049 virtual bool supportsPaintInvalidationStateCachedOffsets() const { return !h
asTransformRelatedProperty() && !hasReflection() && !style()->isFlippedBlocksWri
tingMode(); } |
1041 | 1050 |
1042 virtual LayoutRect viewRect() const; | 1051 virtual LayoutRect viewRect() const; |
1043 | 1052 |
1044 DisplayItemClient displayItemClient() const { return toDisplayItemClient(thi
s); } | 1053 DisplayItemClient displayItemClient() const { return toDisplayItemClient(thi
s); } |
1045 | 1054 |
1046 void invalidateDisplayItemClient(const DisplayItemClientWrapper&) const; | 1055 void invalidateDisplayItemClient(const NonLayoutObjectDisplayItemClientWrapp
er&); |
1047 void invalidateDisplayItemClientForNonCompositingDescendants() const { inval
idateDisplayItemClientForNonCompositingDescendantsOf(*this); } | 1056 void invalidateDisplayItemClient(LayoutObject&); |
| 1057 void invalidateDisplayItemClientForNonCompositingDescendants() { invalidateD
isplayItemClientForNonCompositingDescendantsOf(*this); } |
1048 // A normal object should use invalidateDisplayItemClientForNonCompositingDe
scendants() | 1058 // A normal object should use invalidateDisplayItemClientForNonCompositingDe
scendants() |
1049 // to invalidate its descendants which are painted on the same backing. Howe
ver, for | 1059 // to invalidate its descendants which are painted on the same backing. Howe
ver, for |
1050 // an object (e.g. LayoutScrollbarPart, custom scroll corner, custom resizer
) which is | 1060 // an object (e.g. LayoutScrollbarPart, custom scroll corner, custom resizer
) which is |
1051 // not hooked up in the layout tree and not able to find its paint backing,
it should | 1061 // not hooked up in the layout tree and not able to find its paint backing,
it should |
1052 // let its owning layout object call the following function. | 1062 // let its owning layout object call the following function. |
1053 // FIXME: should we hook up scrollbar parts in the layout tree? crbug.com/48
4263. | 1063 // FIXME: should we hook up scrollbar parts in the layout tree? crbug.com/48
4263. |
1054 void invalidateDisplayItemClientForNonCompositingDescendantsOf(const LayoutO
bject&) const; | 1064 void invalidateDisplayItemClientForNonCompositingDescendantsOf(LayoutObject&
); |
| 1065 |
| 1066 // Slimming paint v2 tracks whether a LayoutObject is invalid instead of usi
ng invalidation rects. |
| 1067 // For more information, see: https://docs.google.com/a/chromium.org/documen
t/d/1FTqk3MwUAS1qLJsnA9zgfDbeqAQBdLYC4GJ9jpN-xdA |
| 1068 bool selfNeedsRepaint() const { return m_bitfields.selfNeedsRepaint(); } |
| 1069 void setNeedsRepaint(); |
| 1070 bool childNeedsRepaint() const { return m_bitfields.childNeedsRepaint(); } |
| 1071 bool shouldCheckForRepaint() const { return selfNeedsRepaint() || childNeeds
Repaint(); } |
| 1072 |
| 1073 void clearRepaintFlagsRecursively(); |
1055 | 1074 |
1056 protected: | 1075 protected: |
1057 enum LayoutObjectType { | 1076 enum LayoutObjectType { |
1058 LayoutObjectBr, | 1077 LayoutObjectBr, |
1059 LayoutObjectCanvas, | 1078 LayoutObjectCanvas, |
1060 LayoutObjectFieldset, | 1079 LayoutObjectFieldset, |
1061 LayoutObjectCounter, | 1080 LayoutObjectCounter, |
1062 LayoutObjectDetailsMarker, | 1081 LayoutObjectDetailsMarker, |
1063 LayoutObjectEmbeddedObject, | 1082 LayoutObjectEmbeddedObject, |
1064 LayoutObjectFileUploadControl, | 1083 LayoutObjectFileUploadControl, |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1172 } | 1191 } |
1173 #endif | 1192 #endif |
1174 | 1193 |
1175 virtual void invalidatePaintOfSubtreesIfNeeded(PaintInvalidationState& child
PaintInvalidationState); | 1194 virtual void invalidatePaintOfSubtreesIfNeeded(PaintInvalidationState& child
PaintInvalidationState); |
1176 virtual PaintInvalidationReason invalidatePaintIfNeeded(PaintInvalidationSta
te&, const LayoutBoxModelObject& paintInvalidationContainer); | 1195 virtual PaintInvalidationReason invalidatePaintIfNeeded(PaintInvalidationSta
te&, const LayoutBoxModelObject& paintInvalidationContainer); |
1177 | 1196 |
1178 // When this object is invalidated for paint, this method is called to inval
idate any DisplayItemClients | 1197 // When this object is invalidated for paint, this method is called to inval
idate any DisplayItemClients |
1179 // owned by this object, including the object itself, LayoutText/LayoutInlin
e line boxes, etc., | 1198 // owned by this object, including the object itself, LayoutText/LayoutInlin
e line boxes, etc., |
1180 // not including children which will be invalidated normally during invalida
teTreeIfNeeded() and | 1199 // not including children which will be invalidated normally during invalida
teTreeIfNeeded() and |
1181 // parts which are invalidated separately (e.g. scrollbars). | 1200 // parts which are invalidated separately (e.g. scrollbars). |
1182 virtual void invalidateDisplayItemClients(const LayoutBoxModelObject& paintI
nvalidationContainer) const; | 1201 virtual void invalidateDisplayItemClients(const LayoutBoxModelObject& paintI
nvalidationContainer); |
| 1202 |
| 1203 virtual void clearRepaintFlagsOfSubtrees(); |
1183 | 1204 |
1184 void setIsSlowRepaintObject(bool); | 1205 void setIsSlowRepaintObject(bool); |
1185 | 1206 |
1186 private: | 1207 private: |
1187 const LayoutRect& previousPaintInvalidationRect() const { return m_previousP
aintInvalidationRect; } | 1208 const LayoutRect& previousPaintInvalidationRect() const { return m_previousP
aintInvalidationRect; } |
1188 | 1209 |
1189 // Adjusts a paint invalidation rect in the space of |m_previousPaintInvalid
ationRect| and |m_previousPositionFromPaintInvalidationBacking| | 1210 // Adjusts a paint invalidation rect in the space of |m_previousPaintInvalid
ationRect| and |m_previousPositionFromPaintInvalidationBacking| |
1190 // to be in the space of the |paintInvalidationContainer|, | 1211 // to be in the space of the |paintInvalidationContainer|, |
1191 // if needed. They can be different only if |paintInvalidationContainer| is
a composited scroller. | 1212 // if needed. They can be different only if |paintInvalidationContainer| is
a composited scroller. |
1192 void adjustInvalidationRectForCompositedScrolling(LayoutRect&, const LayoutB
oxModelObject& paintInvalidationContainer) const; | 1213 void adjustInvalidationRectForCompositedScrolling(LayoutRect&, const LayoutB
oxModelObject& paintInvalidationContainer) const; |
(...skipping 10 matching lines...) Expand all Loading... |
1203 void updateFillImages(const FillLayer* oldLayers, const FillLayer& newLayers
); | 1224 void updateFillImages(const FillLayer* oldLayers, const FillLayer& newLayers
); |
1204 | 1225 |
1205 void setNeedsOverflowRecalcAfterStyleChange(); | 1226 void setNeedsOverflowRecalcAfterStyleChange(); |
1206 | 1227 |
1207 // FIXME: This should be 'markContaingBoxChainForOverflowRecalc when we make
LayoutBox | 1228 // FIXME: This should be 'markContaingBoxChainForOverflowRecalc when we make
LayoutBox |
1208 // recomputeOverflow-capable. crbug.com/437012 and crbug.com/434700. | 1229 // recomputeOverflow-capable. crbug.com/437012 and crbug.com/434700. |
1209 inline void markContainingBlocksForOverflowRecalc(); | 1230 inline void markContainingBlocksForOverflowRecalc(); |
1210 | 1231 |
1211 inline void markContainerChainForPaintInvalidation(); | 1232 inline void markContainerChainForPaintInvalidation(); |
1212 | 1233 |
| 1234 void markContainerChainForChildNeedsRepaint(); |
| 1235 void setChildNeedsRepaint(); |
| 1236 |
1213 inline void invalidateSelectionIfNeeded(const LayoutBoxModelObject&, PaintIn
validationReason); | 1237 inline void invalidateSelectionIfNeeded(const LayoutBoxModelObject&, PaintIn
validationReason); |
1214 | 1238 |
1215 inline void invalidateContainerPreferredLogicalWidths(); | 1239 inline void invalidateContainerPreferredLogicalWidths(); |
1216 | 1240 |
1217 void invalidatePaintIncludingNonCompositingDescendantsInternal(const LayoutB
oxModelObject& repaintContainer); | 1241 void invalidatePaintIncludingNonCompositingDescendantsInternal(const LayoutB
oxModelObject& repaintContainer); |
1218 | 1242 |
1219 LayoutRect previousSelectionRectForPaintInvalidation() const; | 1243 LayoutRect previousSelectionRectForPaintInvalidation() const; |
1220 void setPreviousSelectionRectForPaintInvalidation(const LayoutRect&); | 1244 void setPreviousSelectionRectForPaintInvalidation(const LayoutRect&); |
1221 | 1245 |
1222 const LayoutBoxModelObject* enclosingCompositedContainer() const; | 1246 const LayoutBoxModelObject* enclosingCompositedContainer() const; |
(...skipping 10 matching lines...) Expand all Loading... |
1233 void removeShapeImageClient(ShapeValue*); | 1257 void removeShapeImageClient(ShapeValue*); |
1234 | 1258 |
1235 #if ENABLE(ASSERT) | 1259 #if ENABLE(ASSERT) |
1236 void checkBlockPositionedObjectsNeedLayout(); | 1260 void checkBlockPositionedObjectsNeedLayout(); |
1237 #endif | 1261 #endif |
1238 | 1262 |
1239 bool isTextOrSVGChild() const { return isText() || (isSVG() && !isSVGRoot())
; } | 1263 bool isTextOrSVGChild() const { return isText() || (isSVG() && !isSVGRoot())
; } |
1240 | 1264 |
1241 static bool isAllowedToModifyLayoutTreeStructure(Document&); | 1265 static bool isAllowedToModifyLayoutTreeStructure(Document&); |
1242 | 1266 |
1243 const LayoutBoxModelObject* invalidatePaintRectangleInternal(const LayoutRec
t&) const; | 1267 const LayoutBoxModelObject* invalidatePaintRectangleInternal(const LayoutRec
t&); |
| 1268 |
| 1269 void invalidateDisplayItemClientInternal(const DisplayItemClientWrapper&); |
1244 | 1270 |
1245 RefPtr<ComputedStyle> m_style; | 1271 RefPtr<ComputedStyle> m_style; |
1246 | 1272 |
1247 // Oilpan: raw pointer back to the owning Node is considered safe. | 1273 // Oilpan: raw pointer back to the owning Node is considered safe. |
1248 GC_PLUGIN_IGNORE("http://crbug.com/509911") | 1274 GC_PLUGIN_IGNORE("http://crbug.com/509911") |
1249 Node* m_node; | 1275 Node* m_node; |
1250 | 1276 |
1251 LayoutObject* m_parent; | 1277 LayoutObject* m_parent; |
1252 LayoutObject* m_previous; | 1278 LayoutObject* m_previous; |
1253 LayoutObject* m_next; | 1279 LayoutObject* m_next; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1304 , m_ancestorLineBoxDirty(false) | 1330 , m_ancestorLineBoxDirty(false) |
1305 , m_hasPendingResourceUpdate(false) | 1331 , m_hasPendingResourceUpdate(false) |
1306 , m_isInsideFlowThread(false) | 1332 , m_isInsideFlowThread(false) |
1307 , m_subtreeChangeListenerRegistered(false) | 1333 , m_subtreeChangeListenerRegistered(false) |
1308 , m_notifiedOfSubtreeChange(false) | 1334 , m_notifiedOfSubtreeChange(false) |
1309 , m_consumesSubtreeChangeNotification(false) | 1335 , m_consumesSubtreeChangeNotification(false) |
1310 , m_childrenInline(false) | 1336 , m_childrenInline(false) |
1311 , m_alwaysCreateLineBoxesForLayoutInline(false) | 1337 , m_alwaysCreateLineBoxesForLayoutInline(false) |
1312 , m_lastBoxDecorationBackgroundObscured(false) | 1338 , m_lastBoxDecorationBackgroundObscured(false) |
1313 , m_isSlowRepaintObject(false) | 1339 , m_isSlowRepaintObject(false) |
| 1340 , m_selfNeedsRepaint(false) |
| 1341 , m_childNeedsRepaint(false) |
1314 , m_positionedState(IsStaticallyPositioned) | 1342 , m_positionedState(IsStaticallyPositioned) |
1315 , m_selectionState(SelectionNone) | 1343 , m_selectionState(SelectionNone) |
1316 , m_boxDecorationBackgroundState(NoBoxDecorationBackground) | 1344 , m_boxDecorationBackgroundState(NoBoxDecorationBackground) |
1317 , m_fullPaintInvalidationReason(PaintInvalidationNone) | 1345 , m_fullPaintInvalidationReason(PaintInvalidationNone) |
1318 { | 1346 { |
1319 } | 1347 } |
1320 | 1348 |
1321 // 32 bits have been used in the first word, and 16 in the second. | 1349 // 32 bits have been used in the first word, and 18 in the second. |
1322 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout); | 1350 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout); |
1323 ADD_BOOLEAN_BITFIELD(shouldInvalidateOverflowForPaint, ShouldInvalidateO
verflowForPaint); // TODO(wangxianzhu): Remove for slimming paint v2. | 1351 ADD_BOOLEAN_BITFIELD(shouldInvalidateOverflowForPaint, ShouldInvalidateO
verflowForPaint); // TODO(wangxianzhu): Remove for slimming paint v2. |
1324 ADD_BOOLEAN_BITFIELD(childShouldCheckForPaintInvalidation, ChildShouldCh
eckForPaintInvalidation); | 1352 ADD_BOOLEAN_BITFIELD(childShouldCheckForPaintInvalidation, ChildShouldCh
eckForPaintInvalidation); |
1325 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidation, MayNeedPaintInvalidation)
; | 1353 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidation, MayNeedPaintInvalidation)
; |
1326 ADD_BOOLEAN_BITFIELD(shouldInvalidateSelection, ShouldInvalidateSelectio
n); // TODO(wangxianzhu): Remove for slimming paint v2. | 1354 ADD_BOOLEAN_BITFIELD(shouldInvalidateSelection, ShouldInvalidateSelectio
n); // TODO(wangxianzhu): Remove for slimming paint v2. |
1327 ADD_BOOLEAN_BITFIELD(neededLayoutBecauseOfChildren, NeededLayoutBecauseO
fChildren); // TODO(wangxianzhu): Remove for slimming paint v2. | 1355 ADD_BOOLEAN_BITFIELD(neededLayoutBecauseOfChildren, NeededLayoutBecauseO
fChildren); // TODO(wangxianzhu): Remove for slimming paint v2. |
1328 ADD_BOOLEAN_BITFIELD(needsPositionedMovementLayout, NeedsPositionedMovem
entLayout); | 1356 ADD_BOOLEAN_BITFIELD(needsPositionedMovementLayout, NeedsPositionedMovem
entLayout); |
1329 ADD_BOOLEAN_BITFIELD(normalChildNeedsLayout, NormalChildNeedsLayout); | 1357 ADD_BOOLEAN_BITFIELD(normalChildNeedsLayout, NormalChildNeedsLayout); |
1330 ADD_BOOLEAN_BITFIELD(posChildNeedsLayout, PosChildNeedsLayout); | 1358 ADD_BOOLEAN_BITFIELD(posChildNeedsLayout, PosChildNeedsLayout); |
1331 ADD_BOOLEAN_BITFIELD(needsSimplifiedNormalFlowLayout, NeedsSimplifiedNor
malFlowLayout); | 1359 ADD_BOOLEAN_BITFIELD(needsSimplifiedNormalFlowLayout, NeedsSimplifiedNor
malFlowLayout); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1363 ADD_BOOLEAN_BITFIELD(childrenInline, ChildrenInline); | 1391 ADD_BOOLEAN_BITFIELD(childrenInline, ChildrenInline); |
1364 | 1392 |
1365 // from LayoutInline | 1393 // from LayoutInline |
1366 ADD_BOOLEAN_BITFIELD(alwaysCreateLineBoxesForLayoutInline, AlwaysCreateL
ineBoxesForLayoutInline); | 1394 ADD_BOOLEAN_BITFIELD(alwaysCreateLineBoxesForLayoutInline, AlwaysCreateL
ineBoxesForLayoutInline); |
1367 | 1395 |
1368 // For slimming-paint. | 1396 // For slimming-paint. |
1369 ADD_BOOLEAN_BITFIELD(lastBoxDecorationBackgroundObscured, LastBoxDecorat
ionBackgroundObscured); | 1397 ADD_BOOLEAN_BITFIELD(lastBoxDecorationBackgroundObscured, LastBoxDecorat
ionBackgroundObscured); |
1370 | 1398 |
1371 ADD_BOOLEAN_BITFIELD(isSlowRepaintObject, IsSlowRepaintObject); | 1399 ADD_BOOLEAN_BITFIELD(isSlowRepaintObject, IsSlowRepaintObject); |
1372 | 1400 |
| 1401 // For slimming-paint v2. |
| 1402 // TODO(wangxianzhu): Combine repaint flags with paint invalidation flag
s when we remove |
| 1403 // old paint invalidation code. |
| 1404 ADD_BOOLEAN_BITFIELD(selfNeedsRepaint, SelfNeedsRepaint); |
| 1405 ADD_BOOLEAN_BITFIELD(childNeedsRepaint, ChildNeedsRepaint); |
| 1406 |
1373 private: | 1407 private: |
1374 unsigned m_positionedState : 2; // PositionedState | 1408 unsigned m_positionedState : 2; // PositionedState |
1375 unsigned m_selectionState : 3; // SelectionState | 1409 unsigned m_selectionState : 3; // SelectionState |
1376 unsigned m_boxDecorationBackgroundState : 2; // BoxDecorationBackgroundS
tate | 1410 unsigned m_boxDecorationBackgroundState : 2; // BoxDecorationBackgroundS
tate |
1377 unsigned m_fullPaintInvalidationReason : 5; // PaintInvalidationReason | 1411 unsigned m_fullPaintInvalidationReason : 5; // PaintInvalidationReason |
1378 | 1412 |
1379 public: | 1413 public: |
1380 bool isOutOfFlowPositioned() const { return m_positionedState == IsOutOf
FlowPositioned; } | 1414 bool isOutOfFlowPositioned() const { return m_positionedState == IsOutOf
FlowPositioned; } |
1381 bool isRelPositioned() const { return m_positionedState == IsRelativelyP
ositioned; } | 1415 bool isRelPositioned() const { return m_positionedState == IsRelativelyP
ositioned; } |
1382 bool isStickyPositioned() const { return m_positionedState == IsStickyPo
sitioned; } | 1416 bool isStickyPositioned() const { return m_positionedState == IsStickyPo
sitioned; } |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1656 void showTree(const blink::LayoutObject*); | 1690 void showTree(const blink::LayoutObject*); |
1657 void showLineTree(const blink::LayoutObject*); | 1691 void showLineTree(const blink::LayoutObject*); |
1658 void showLayoutTree(const blink::LayoutObject* object1); | 1692 void showLayoutTree(const blink::LayoutObject* object1); |
1659 // We don't make object2 an optional parameter so that showLayoutTree | 1693 // We don't make object2 an optional parameter so that showLayoutTree |
1660 // can be called from gdb easily. | 1694 // can be called from gdb easily. |
1661 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec
t* object2); | 1695 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec
t* object2); |
1662 | 1696 |
1663 #endif | 1697 #endif |
1664 | 1698 |
1665 #endif // LayoutObject_h | 1699 #endif // LayoutObject_h |
OLD | NEW |