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

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

Issue 1813383002: Move all fast-path paint invalidation mapping into PaintInvalidationState (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 enum MarkingBehavior { 88 enum MarkingBehavior {
89 MarkOnlyThis, 89 MarkOnlyThis,
90 MarkContainerChain, 90 MarkContainerChain,
91 }; 91 };
92 92
93 enum MapCoordinatesMode { 93 enum MapCoordinatesMode {
94 IsFixed = 1 << 0, 94 IsFixed = 1 << 0,
95 UseTransforms = 1 << 1, 95 UseTransforms = 1 << 1,
96 ApplyContainerFlip = 1 << 2, 96 ApplyContainerFlip = 1 << 2,
97 TraverseDocumentBoundaries = 1 << 3, 97 TraverseDocumentBoundaries = 1 << 3,
98
99 // Applies to LayoutView::mapLocalToAncestor() and LayoutView::mapToVisibleR ectInAncestorSpace()
100 // only, to indicate the input point or rect is in frame coordinates instead of frame contents
101 // coordinates. This disables view clipping and scroll offset adjustment.
102 // TODO(wangxianzhu): Remove this when root-layer-scrolls launches.
103 InputIsInFrameCoordinates = 1 << 4,
98 }; 104 };
99 typedef unsigned MapCoordinatesFlags; 105 typedef unsigned MapCoordinatesFlags;
100 106
101 enum ScheduleRelayoutBehavior { 107 enum ScheduleRelayoutBehavior {
102 ScheduleRelayout, 108 ScheduleRelayout,
103 DontScheduleRelayout 109 DontScheduleRelayout
104 }; 110 };
105 111
106 const LayoutUnit& caretWidth(); 112 const LayoutUnit& caretWidth();
107 113
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 #endif 322 #endif
317 ASSERT_WITH_SECURITY_IMPLICATION(!needsLayout()); 323 ASSERT_WITH_SECURITY_IMPLICATION(!needsLayout());
318 } 324 }
319 325
320 void assertSubtreeIsLaidOut() const 326 void assertSubtreeIsLaidOut() const
321 { 327 {
322 for (const LayoutObject* layoutObject = this; layoutObject; layoutObject = layoutObject->nextInPreOrder()) 328 for (const LayoutObject* layoutObject = this; layoutObject; layoutObject = layoutObject->nextInPreOrder())
323 layoutObject->assertLaidOut(); 329 layoutObject->assertLaidOut();
324 } 330 }
325 331
326 void assertClearedPaintInvalidationState() const 332 void assertClearedPaintInvalidationFlags() const
327 { 333 {
328 #ifndef NDEBUG 334 #ifndef NDEBUG
329 if (paintInvalidationStateIsDirty()) { 335 if (paintInvalidationStateIsDirty()) {
330 showLayoutTreeForThis(); 336 showLayoutTreeForThis();
331 ASSERT_NOT_REACHED(); 337 ASSERT_NOT_REACHED();
332 } 338 }
333 #endif 339 #endif
334 } 340 }
335 341
336 void assertSubtreeClearedPaintInvalidationState() const 342 void assertSubtreeClearedPaintInvalidationFlags() const
337 { 343 {
338 for (const LayoutObject* layoutObject = this; layoutObject; layoutObject = layoutObject->nextInPreOrder()) 344 for (const LayoutObject* layoutObject = this; layoutObject; layoutObject = layoutObject->nextInPreOrder())
339 layoutObject->assertClearedPaintInvalidationState(); 345 layoutObject->assertClearedPaintInvalidationFlags();
340 } 346 }
341 347
342 #endif 348 #endif
343 349
344 // Correct version of !layoutObjectHasNoBoxEffectObsolete(). 350 // Correct version of !layoutObjectHasNoBoxEffectObsolete().
345 bool hasBoxEffect() const 351 bool hasBoxEffect() const
346 { 352 {
347 return hasBoxDecorationBackground() || style()->hasVisualOverflowingEffe ct(); 353 return hasBoxDecorationBackground() || style()->hasVisualOverflowingEffe ct();
348 } 354 }
349 355
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after
984 { 990 {
985 return ancestorToLocalQuad(nullptr, quad, mode); 991 return ancestorToLocalQuad(nullptr, quad, mode);
986 } 992 }
987 993
988 // Convert a local quad into the coordinate system of container, taking tran sforms into account. 994 // Convert a local quad into the coordinate system of container, taking tran sforms into account.
989 // If the LayoutBoxModelObject ancestor is non-null, the result will be in t he space of the ancestor. 995 // If the LayoutBoxModelObject ancestor is non-null, the result will be in t he space of the ancestor.
990 // Otherwise: 996 // Otherwise:
991 // If TraverseDocumentBoundaries is specified, the result will be in the s pace of the local root frame. 997 // If TraverseDocumentBoundaries is specified, the result will be in the s pace of the local root frame.
992 // Otherwise, the result will be in the space of the containing frame. 998 // Otherwise, the result will be in the space of the containing frame.
993 FloatQuad localToAncestorQuad(const FloatQuad&, const LayoutBoxModelObject* ancestor, MapCoordinatesFlags = 0, bool* wasFixed = nullptr) const; 999 FloatQuad localToAncestorQuad(const FloatQuad&, const LayoutBoxModelObject* ancestor, MapCoordinatesFlags = 0, bool* wasFixed = nullptr) const;
994 FloatPoint localToAncestorPoint(const FloatPoint&, const LayoutBoxModelObjec t* ancestor, MapCoordinatesFlags = 0, bool* wasFixed = nullptr, const PaintInval idationState* = nullptr) const; 1000 FloatPoint localToAncestorPoint(const FloatPoint&, const LayoutBoxModelObjec t* ancestor, MapCoordinatesFlags = 0, bool* wasFixed = nullptr) const;
995 void localToAncestorRects(Vector<LayoutRect>&, const LayoutBoxModelObject* a ncestor, const LayoutPoint& preOffset, const LayoutPoint& postOffset) const; 1001 void localToAncestorRects(Vector<LayoutRect>&, const LayoutBoxModelObject* a ncestor, const LayoutPoint& preOffset, const LayoutPoint& postOffset) const;
996 1002
997 // Return the transformation matrix to map points from local to the coordina te system of a container, taking transforms into account. 1003 // Return the transformation matrix to map points from local to the coordina te system of a container, taking transforms into account.
998 // Passing null for |ancestor| behaves the same as localToAncestorQuad. 1004 // Passing null for |ancestor| behaves the same as localToAncestorQuad.
999 TransformationMatrix localToAncestorTransform(const LayoutBoxModelObject* an cestor, MapCoordinatesFlags = 0, bool* wasFixed = nullptr) const; 1005 TransformationMatrix localToAncestorTransform(const LayoutBoxModelObject* an cestor, MapCoordinatesFlags = 0, bool* wasFixed = nullptr) const;
1000 TransformationMatrix localToAbsoluteTransform(MapCoordinatesFlags mode = 0, bool* wasFixed = nullptr) const 1006 TransformationMatrix localToAbsoluteTransform(MapCoordinatesFlags mode = 0, bool* wasFixed = nullptr) const
1001 { 1007 {
1002 return localToAncestorTransform(nullptr, mode, wasFixed); 1008 return localToAncestorTransform(nullptr, mode, wasFixed);
1003 } 1009 }
1004 1010
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1096 // is responsible for painting this object. The function crosses 1102 // is responsible for painting this object. The function crosses
1097 // frames boundaries so the returned value can be in a 1103 // frames boundaries so the returned value can be in a
1098 // different document. 1104 // different document.
1099 // 1105 //
1100 // This is the container that should be passed to 1106 // This is the container that should be passed to
1101 // the '*forPaintInvalidation' methods. 1107 // the '*forPaintInvalidation' methods.
1102 const LayoutBoxModelObject& containerForPaintInvalidation() const; 1108 const LayoutBoxModelObject& containerForPaintInvalidation() const;
1103 1109
1104 bool isPaintInvalidationContainer() const; 1110 bool isPaintInvalidationContainer() const;
1105 1111
1106 LayoutRect computePaintInvalidationRect()
1107 {
1108 return computePaintInvalidationRect(containerForPaintInvalidation());
1109 }
1110
1111 // Returns the paint invalidation rect for this LayoutObject in the coordina te space of the paint backing (typically a GraphicsLayer) for |paintInvalidation Container|.
1112 LayoutRect computePaintInvalidationRect(const LayoutBoxModelObject& paintInv alidationContainer, const PaintInvalidationState* = nullptr) const;
1113
1114 // Returns the rect bounds needed to invalidate the paint of this object, in the coordinate space of the layoutObject backing of |paintInvalidationContainer |
1115 LayoutRect boundsRectForPaintInvalidation(const LayoutBoxModelObject& paintI nvalidationContainer, const PaintInvalidationState* = nullptr) const;
1116
1117 // Actually do the paint invalidate of rect r for this object which has been computed in the coordinate space 1112 // Actually do the paint invalidate of rect r for this object which has been computed in the coordinate space
1118 // of the GraphicsLayer backing of |paintInvalidationContainer|. Note that t his coordinaten space is not the same 1113 // of the GraphicsLayer backing of |paintInvalidationContainer|. Note that t his coordinaten space is not the same
1119 // as the local coordinate space of |paintInvalidationContainer| in the pres ence of layer squashing. 1114 // as the local coordinate space of |paintInvalidationContainer| in the pres ence of layer squashing.
1120 void invalidatePaintUsingContainer(const LayoutBoxModelObject& paintInvalida tionContainer, const LayoutRect&, PaintInvalidationReason) const; 1115 void invalidatePaintUsingContainer(const LayoutBoxModelObject& paintInvalida tionContainer, const LayoutRect&, PaintInvalidationReason) const;
1121 1116
1122 // Invalidate the paint of a specific subrectangle within a given object. Th e rect is in the object's coordinate space. 1117 // Invalidate the paint of a specific subrectangle within a given object. Th e rect is in the object's coordinate space.
1123 void invalidatePaintRectangle(const LayoutRect&) const; 1118 void invalidatePaintRectangle(const LayoutRect&) const;
1124 void invalidatePaintRectangleNotInvalidatingDisplayItemClients(const LayoutR ect&) const; 1119 void invalidatePaintRectangleNotInvalidatingDisplayItemClients(const LayoutR ect&) const;
1125 1120
1126 // 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. 1121 // 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.
1127 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&); 1122 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&);
1128 1123
1129 // This function only invalidates the visual overflow. 1124 // This function only invalidates the visual overflow.
1130 // 1125 //
1131 // Note that overflow is a box concept but this function 1126 // Note that overflow is a box concept but this function
1132 // is only supported for block-flow. 1127 // is only supported for block-flow.
1133 virtual void invalidatePaintForOverflow(); 1128 virtual void invalidatePaintForOverflow();
1134 void invalidatePaintForOverflowIfNeeded(); 1129 void invalidatePaintForOverflowIfNeeded();
1135 1130
1136 void invalidatePaintIncludingNonCompositingDescendants(); 1131 void invalidatePaintIncludingNonCompositingDescendants();
1137 void invalidatePaintIncludingNonSelfPaintingLayerDescendants(const LayoutBox ModelObject& paintInvalidationContainer); 1132 void invalidatePaintIncludingNonSelfPaintingLayerDescendants(const LayoutBox ModelObject& paintInvalidationContainer);
1138 void setShouldDoFullPaintInvalidationIncludingNonCompositingDescendants(); 1133 void setShouldDoFullPaintInvalidationIncludingNonCompositingDescendants();
1139 1134
1140 // Returns the rect that should have paint invalidated whenever this object changes. The rect is in the view's 1135 // Returns the rect that should have paint invalidated whenever this object changes. The rect is in the view's
1141 // coordinate space. This method deals with outlines and overflow. 1136 // coordinate space. This method deals with outlines and overflow.
1142 virtual LayoutRect absoluteClippedOverflowRect() const; 1137 virtual LayoutRect absoluteClippedOverflowRect() const;
1143 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutBoxMo delObject* paintInvalidationContainer, const PaintInvalidationState* = nullptr) const; 1138
1139 // Returns the rect that should have paint invalidated whenever this object changes. The rect is in the object's
1140 // local coordinate space.
1141 virtual LayoutRect localOverflowRectForPaintInvalidation() const;
1144 1142
1145 // Given a rect in the object's coordinate space, compute a rect in the coor dinate space of |ancestor|. If 1143 // Given a rect in the object's coordinate space, compute a rect in the coor dinate space of |ancestor|. If
1146 // intermediate containers have clipping or scrolling of any kind, it is app lied; but overflow clipping is 1144 // intermediate containers have clipping or scrolling of any kind, it is app lied; but overflow clipping is
1147 // *not* applied for |ancestor| itself. The output rect is suitable for purp oses such as paint invalidation. 1145 // *not* applied for |ancestor| itself. The output rect is suitable for purp oses such as paint invalidation.
1148 // 1146 //
1149 // If visibleRectFlags has the EdgeInclusive bit set, clipping operations wi ll use 1147 // If visibleRectFlags has the EdgeInclusive bit set, clipping operations wi ll use
1150 // LayoutRect::inclusiveIntersect, and the return value of inclusiveIntersec t will be propagated 1148 // LayoutRect::inclusiveIntersect, and the return value of inclusiveIntersec t will be propagated
1151 // to the return value of this method. Otherwise, clipping operations will use LayoutRect::intersect, 1149 // to the return value of this method. Otherwise, clipping operations will use LayoutRect::intersect,
1152 // and the return value will be true only if the clipped rect has non-zero a rea. 1150 // and the return value will be true only if the clipped rect has non-zero a rea.
1153 // See the documentation for LayoutRect::inclusiveIntersect for more informa tion. 1151 // See the documentation for LayoutRect::inclusiveIntersect for more informa tion.
1154 virtual bool mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* anc estor, LayoutRect&, const PaintInvalidationState*, VisibleRectFlags = DefaultVis ibleRectFlags) const; 1152 virtual bool mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* anc estor, LayoutRect&, VisibleRectFlags = DefaultVisibleRectFlags) const;
1155 1153
1156 // Return the offset to the column in which the specified point (in flow-thr ead coordinates) 1154 // Return the offset to the column in which the specified point (in flow-thr ead coordinates)
1157 // lives. This is used to convert a flow-thread point to a visual point. 1155 // lives. This is used to convert a flow-thread point to a visual point.
1158 virtual LayoutSize columnOffset(const LayoutPoint&) const { return LayoutSiz e(); } 1156 virtual LayoutSize columnOffset(const LayoutPoint&) const { return LayoutSiz e(); }
1159 1157
1160 virtual unsigned length() const { return 1; } 1158 virtual unsigned length() const { return 1; }
1161 1159
1162 bool isFloatingOrOutOfFlowPositioned() const { return (isFloating() || isOut OfFlowPositioned()); } 1160 bool isFloatingOrOutOfFlowPositioned() const { return (isFloating() || isOut OfFlowPositioned()); }
1163 1161
1164 bool isTransparent() const { return style()->hasOpacity(); } 1162 bool isTransparent() const { return style()->hasOpacity(); }
1165 float opacity() const { return style()->opacity(); } 1163 float opacity() const { return style()->opacity(); }
1166 1164
1167 bool hasReflection() const { return m_bitfields.hasReflection(); } 1165 bool hasReflection() const { return m_bitfields.hasReflection(); }
1168 1166
1169 // The current selection state for an object. For blocks, the state refers to the state of the leaf 1167 // The current selection state for an object. For blocks, the state refers to the state of the leaf
1170 // descendants (as described above in the SelectionState enum declaration). 1168 // descendants (as described above in the SelectionState enum declaration).
1171 SelectionState getSelectionState() const { return m_bitfields.getSelectionSt ate(); } 1169 SelectionState getSelectionState() const { return m_bitfields.getSelectionSt ate(); }
1172 virtual void setSelectionState(SelectionState state) { m_bitfields.setSelect ionState(state); } 1170 virtual void setSelectionState(SelectionState state) { m_bitfields.setSelect ionState(state); }
1173 inline void setSelectionStateIfNeeded(SelectionState); 1171 inline void setSelectionStateIfNeeded(SelectionState);
1174 bool canUpdateSelectionOnRootLineBoxes() const; 1172 bool canUpdateSelectionOnRootLineBoxes() const;
1175 1173
1176 // A single rectangle that encompasses all of the selected objects within th is object. Used to determine the tightest 1174 // A single rectangle that encompasses all of the selected objects within th is object. Used to determine the tightest
1177 // possible bounding box for the selection. The rect returned is in the coor dinate space of the paint invalidation container's backing. 1175 // possible bounding box for the selection. The rect returned is in the obje ct's local coordinate space.
1178 virtual LayoutRect selectionRectForPaintInvalidation(const LayoutBoxModelObj ect* /* paintInvalidationContainer */) const { return LayoutRect(); } 1176 virtual LayoutRect localSelectionRect() const { return LayoutRect(); }
1179 1177
1180 // View coordinates means the coordinate space of |view()|. 1178 // View coordinates means the coordinate space of |view()|.
1181 LayoutRect selectionRectInViewCoordinates() const; 1179 LayoutRect selectionRectInViewCoordinates() const;
1182 1180
1183 virtual bool canBeSelectionLeaf() const { return false; } 1181 virtual bool canBeSelectionLeaf() const { return false; }
1184 bool hasSelectedChildren() const { return getSelectionState() != SelectionNo ne; } 1182 bool hasSelectedChildren() const { return getSelectionState() != SelectionNo ne; }
1185 1183
1186 bool isSelectable() const; 1184 bool isSelectable() const;
1187 // Obtains the selection colors that should be used when painting a selectio n. 1185 // Obtains the selection colors that should be used when painting a selectio n.
1188 Color selectionBackgroundColor() const; 1186 Color selectionBackgroundColor() const;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1244 if (parent()) 1242 if (parent())
1245 parent()->removeChild(this); 1243 parent()->removeChild(this);
1246 } 1244 }
1247 1245
1248 bool visibleToHitTestRequest(const HitTestRequest& request) const { return s tyle()->visibility() == VISIBLE && (request.ignorePointerEventsNone() || style() ->pointerEvents() != PE_NONE) && !isInert(); } 1246 bool visibleToHitTestRequest(const HitTestRequest& request) const { return s tyle()->visibility() == VISIBLE && (request.ignorePointerEventsNone() || style() ->pointerEvents() != PE_NONE) && !isInert(); }
1249 1247
1250 bool visibleToHitTesting() const { return style()->visibility() == VISIBLE & & style()->pointerEvents() != PE_NONE && !isInert(); } 1248 bool visibleToHitTesting() const { return style()->visibility() == VISIBLE & & style()->pointerEvents() != PE_NONE && !isInert(); }
1251 1249
1252 // Map points and quads through elements, potentially via 3d transforms. You should never need to call these directly; use 1250 // Map points and quads through elements, potentially via 3d transforms. You should never need to call these directly; use
1253 // localToAbsolute/absoluteToLocal methods instead. 1251 // localToAbsolute/absoluteToLocal methods instead.
1254 virtual void mapLocalToAncestor(const LayoutBoxModelObject* ancestor, Transf ormState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = nullptr, c onst PaintInvalidationState* = nullptr) const; 1252 virtual void mapLocalToAncestor(const LayoutBoxModelObject* ancestor, Transf ormState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = nullptr) c onst;
1255 // If the LayoutBoxModelObject ancestor is non-null, the input quad is in th e space of the ancestor. 1253 // If the LayoutBoxModelObject ancestor is non-null, the input quad is in th e space of the ancestor.
1256 // Otherwise: 1254 // Otherwise:
1257 // If TraverseDocumentBoundaries is specified, the input quad is in the sp ace of the local root frame. 1255 // If TraverseDocumentBoundaries is specified, the input quad is in the sp ace of the local root frame.
1258 // Otherwise, the input quad is in the space of the containing frame. 1256 // Otherwise, the input quad is in the space of the containing frame.
1259 virtual void mapAncestorToLocal(const LayoutBoxModelObject*, TransformState& , MapCoordinatesFlags = ApplyContainerFlip) const; 1257 virtual void mapAncestorToLocal(const LayoutBoxModelObject*, TransformState& , MapCoordinatesFlags = ApplyContainerFlip) const;
1260 void mapAbsoluteToLocalPoint(MapCoordinatesFlags flags, TransformState& tran sformState) const 1258 void mapAbsoluteToLocalPoint(MapCoordinatesFlags flags, TransformState& tran sformState) const
1261 { 1259 {
1262 return mapAncestorToLocal(nullptr, transformState, flags); 1260 return mapAncestorToLocal(nullptr, transformState, flags);
1263 } 1261 }
1264 1262
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1361 return paintInvalidationState.forcedSubtreeInvalidationWithinContainer() 1359 return paintInvalidationState.forcedSubtreeInvalidationWithinContainer()
1362 || paintInvalidationState.forcedSubtreeInvalidationRectUpdateWithinC ontainer() 1360 || paintInvalidationState.forcedSubtreeInvalidationRectUpdateWithinC ontainer()
1363 || shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState (); 1361 || shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState ();
1364 } 1362 }
1365 1363
1366 bool shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState() con st 1364 bool shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState() con st
1367 { 1365 {
1368 return mayNeedPaintInvalidation() || shouldDoFullPaintInvalidation() || shouldInvalidateSelection() || m_bitfields.childShouldCheckForPaintInvalidation( ); 1366 return mayNeedPaintInvalidation() || shouldDoFullPaintInvalidation() || shouldInvalidateSelection() || m_bitfields.childShouldCheckForPaintInvalidation( );
1369 } 1367 }
1370 1368
1371 virtual bool supportsPaintInvalidationStateCachedOffsets() const { return !h asTransformRelatedProperty() && !hasReflection() && !style()->isFlippedBlocksWri tingMode(); }
1372
1373 virtual LayoutRect viewRect() const; 1369 virtual LayoutRect viewRect() const;
1374 1370
1375 void invalidateDisplayItemClient(const DisplayItemClient&) const; 1371 void invalidateDisplayItemClient(const DisplayItemClient&) const;
1376 void invalidateDisplayItemClientsIncludingNonCompositingDescendants(const La youtBoxModelObject* paintInvalidationContainer, PaintInvalidationReason) const; 1372 void invalidateDisplayItemClientsIncludingNonCompositingDescendants(const La youtBoxModelObject* paintInvalidationContainer, PaintInvalidationReason) const;
1377 1373
1378 // Called before anonymousChild.setStyle(). Override to set custom styles fo r the child. 1374 // Called before anonymousChild.setStyle(). Override to set custom styles fo r the child.
1379 virtual void updateAnonymousChildStyle(const LayoutObject& anonymousChild, C omputedStyle& style) const { } 1375 virtual void updateAnonymousChildStyle(const LayoutObject& anonymousChild, C omputedStyle& style) const { }
1380 1376
1381 // Painters can use const methods only, except for these explicitly declared methods. 1377 // Painters can use const methods only, except for these explicitly declared methods.
1382 class MutableForPainting { 1378 class MutableForPainting {
(...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after
2171 void showTree(const blink::LayoutObject*); 2167 void showTree(const blink::LayoutObject*);
2172 void showLineTree(const blink::LayoutObject*); 2168 void showLineTree(const blink::LayoutObject*);
2173 void showLayoutTree(const blink::LayoutObject* object1); 2169 void showLayoutTree(const blink::LayoutObject* object1);
2174 // We don't make object2 an optional parameter so that showLayoutTree 2170 // We don't make object2 an optional parameter so that showLayoutTree
2175 // can be called from gdb easily. 2171 // can be called from gdb easily.
2176 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2); 2172 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2);
2177 2173
2178 #endif 2174 #endif
2179 2175
2180 #endif // LayoutObject_h 2176 #endif // LayoutObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698