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

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

Issue 899163003: Move rendering/RenderObject to layout/LayoutObject. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/layout/LayoutLayerModelObject.cpp ('k') | Source/core/layout/LayoutObject.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
11 * License as published by the Free Software Foundation; either 11 * License as published by the Free Software Foundation; either
12 * version 2 of the License, or (at your option) any later version. 12 * version 2 of the License, or (at your option) any later version.
13 * 13 *
14 * This library is distributed in the hope that it will be useful, 14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Library General Public License for more details. 17 * Library General Public License for more details.
18 * 18 *
19 * You should have received a copy of the GNU Library General Public License 19 * You should have received a copy of the GNU Library General Public License
20 * along with this library; see the file COPYING.LIB. If not, write to 20 * along with this library; see the file COPYING.LIB. If not, write to
21 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 21 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 * Boston, MA 02110-1301, USA. 22 * Boston, MA 02110-1301, USA.
23 * 23 *
24 */ 24 */
25 25
26 #ifndef RenderObject_h 26 #ifndef LayoutObject_h
27 #define RenderObject_h 27 #define LayoutObject_h
28 28
29 #include "core/dom/Document.h" 29 #include "core/dom/Document.h"
30 #include "core/dom/DocumentLifecycle.h" 30 #include "core/dom/DocumentLifecycle.h"
31 #include "core/dom/Element.h" 31 #include "core/dom/Element.h"
32 #include "core/editing/TextAffinity.h" 32 #include "core/editing/TextAffinity.h"
33 #include "core/fetch/ImageResourceClient.h" 33 #include "core/fetch/ImageResourceClient.h"
34 #include "core/html/HTMLElement.h" 34 #include "core/html/HTMLElement.h"
35 #include "core/inspector/InspectorTraceEvents.h" 35 #include "core/inspector/InspectorTraceEvents.h"
36 #include "core/layout/HitTestRequest.h" 36 #include "core/layout/HitTestRequest.h"
37 #include "core/layout/LayoutObjectChildList.h"
37 #include "core/layout/compositing/CompositingState.h" 38 #include "core/layout/compositing/CompositingState.h"
38 #include "core/layout/compositing/CompositingTriggers.h" 39 #include "core/layout/compositing/CompositingTriggers.h"
39 #include "core/rendering/PaintInvalidationState.h" 40 #include "core/rendering/PaintInvalidationState.h"
40 #include "core/rendering/PaintPhase.h" 41 #include "core/rendering/PaintPhase.h"
41 #include "core/rendering/RenderObjectChildList.h"
42 #include "core/rendering/ScrollAlignment.h" 42 #include "core/rendering/ScrollAlignment.h"
43 #include "core/rendering/SubtreeLayoutScope.h" 43 #include "core/rendering/SubtreeLayoutScope.h"
44 #include "core/rendering/style/RenderStyle.h" 44 #include "core/rendering/style/RenderStyle.h"
45 #include "core/rendering/style/StyleInheritedData.h" 45 #include "core/rendering/style/StyleInheritedData.h"
46 #include "platform/geometry/FloatQuad.h" 46 #include "platform/geometry/FloatQuad.h"
47 #include "platform/geometry/LayoutRect.h" 47 #include "platform/geometry/LayoutRect.h"
48 #include "platform/graphics/CompositingReasons.h" 48 #include "platform/graphics/CompositingReasons.h"
49 #include "platform/graphics/PaintInvalidationReason.h" 49 #include "platform/graphics/PaintInvalidationReason.h"
50 #include "platform/graphics/paint/DisplayItemClient.h" 50 #include "platform/graphics/paint/DisplayItemClient.h"
51 #include "platform/transforms/TransformationMatrix.h" 51 #include "platform/transforms/TransformationMatrix.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 bool draggable; 119 bool draggable;
120 }; 120 };
121 121
122 typedef WTF::HashMap<const Layer*, Vector<LayoutRect>> LayerHitTestRects; 122 typedef WTF::HashMap<const Layer*, Vector<LayoutRect>> LayerHitTestRects;
123 123
124 #ifndef NDEBUG 124 #ifndef NDEBUG
125 const int showTreeCharacterOffset = 39; 125 const int showTreeCharacterOffset = 39;
126 #endif 126 #endif
127 127
128 // Base class for all rendering tree objects. 128 // Base class for all rendering tree objects.
129 class RenderObject : public ImageResourceClient { 129 class LayoutObject : public ImageResourceClient {
130 friend class RenderBlock; 130 friend class RenderBlock;
131 friend class RenderBlockFlow; 131 friend class RenderBlockFlow;
132 friend class LayerReflectionInfo; // For setParent 132 friend class LayerReflectionInfo; // For setParent
133 friend class LayerScrollableArea; // For setParent. 133 friend class LayerScrollableArea; // For setParent.
134 friend class RenderObjectChildList; 134 friend class LayoutObjectChildList;
135 WTF_MAKE_NONCOPYABLE(RenderObject); 135 WTF_MAKE_NONCOPYABLE(LayoutObject);
136 public: 136 public:
137 // Anonymous objects should pass the document as their node, and they will t hen automatically be 137 // Anonymous objects should pass the document as their node, and they will t hen automatically be
138 // marked as anonymous in the constructor. 138 // marked as anonymous in the constructor.
139 explicit RenderObject(Node*); 139 explicit LayoutObject(Node*);
140 virtual ~RenderObject(); 140 virtual ~LayoutObject();
141 141
142 virtual const char* renderName() const = 0; 142 virtual const char* renderName() const = 0;
143 143
144 String debugName() const; 144 String debugName() const;
145 145
146 RenderObject* parent() const { return m_parent; } 146 LayoutObject* parent() const { return m_parent; }
147 bool isDescendantOf(const RenderObject*) const; 147 bool isDescendantOf(const LayoutObject*) const;
148 148
149 RenderObject* previousSibling() const { return m_previous; } 149 LayoutObject* previousSibling() const { return m_previous; }
150 RenderObject* nextSibling() const { return m_next; } 150 LayoutObject* nextSibling() const { return m_next; }
151 151
152 RenderObject* slowFirstChild() const 152 LayoutObject* slowFirstChild() const
153 { 153 {
154 if (const RenderObjectChildList* children = virtualChildren()) 154 if (const LayoutObjectChildList* children = virtualChildren())
155 return children->firstChild(); 155 return children->firstChild();
156 return 0; 156 return 0;
157 } 157 }
158 RenderObject* slowLastChild() const 158 LayoutObject* slowLastChild() const
159 { 159 {
160 if (const RenderObjectChildList* children = virtualChildren()) 160 if (const LayoutObjectChildList* children = virtualChildren())
161 return children->lastChild(); 161 return children->lastChild();
162 return 0; 162 return 0;
163 } 163 }
164 164
165 virtual RenderObjectChildList* virtualChildren() { return 0; } 165 virtual LayoutObjectChildList* virtualChildren() { return 0; }
166 virtual const RenderObjectChildList* virtualChildren() const { return 0; } 166 virtual const LayoutObjectChildList* virtualChildren() const { return 0; }
167 167
168 RenderObject* nextInPreOrder() const; 168 LayoutObject* nextInPreOrder() const;
169 RenderObject* nextInPreOrder(const RenderObject* stayWithin) const; 169 LayoutObject* nextInPreOrder(const LayoutObject* stayWithin) const;
170 RenderObject* nextInPreOrderAfterChildren() const; 170 LayoutObject* nextInPreOrderAfterChildren() const;
171 RenderObject* nextInPreOrderAfterChildren(const RenderObject* stayWithin) co nst; 171 LayoutObject* nextInPreOrderAfterChildren(const LayoutObject* stayWithin) co nst;
172 RenderObject* previousInPreOrder() const; 172 LayoutObject* previousInPreOrder() const;
173 RenderObject* previousInPreOrder(const RenderObject* stayWithin) const; 173 LayoutObject* previousInPreOrder(const LayoutObject* stayWithin) const;
174 RenderObject* childAt(unsigned) const; 174 LayoutObject* childAt(unsigned) const;
175 175
176 RenderObject* lastLeafChild() const; 176 LayoutObject* lastLeafChild() const;
177 177
178 // The following six functions are used when the render tree hierarchy chang es to make sure layers get 178 // The following six functions are used when the render tree hierarchy chang es to make sure layers get
179 // properly added and removed. Since containership can be implemented by an y subclass, and since a hierarchy 179 // properly added and removed. Since containership can be implemented by an y subclass, and since a hierarchy
180 // can contain a mixture of boxes and other object types, these functions ne ed to be in the base class. 180 // can contain a mixture of boxes and other object types, these functions ne ed to be in the base class.
181 Layer* enclosingLayer() const; 181 Layer* enclosingLayer() const;
182 void addLayers(Layer* parentLayer); 182 void addLayers(Layer* parentLayer);
183 void removeLayers(Layer* parentLayer); 183 void removeLayers(Layer* parentLayer);
184 void moveLayers(Layer* oldParent, Layer* newParent); 184 void moveLayers(Layer* oldParent, Layer* newParent);
185 Layer* findNextLayer(Layer* parentLayer, RenderObject* startPoint, bool chec kParent = true); 185 Layer* findNextLayer(Layer* parentLayer, LayoutObject* startPoint, bool chec kParent = true);
186 186
187 // Scrolling is a RenderBox concept, however some code just cares about recu rsively scrolling our enclosing ScrollableArea(s). 187 // Scrolling is a RenderBox concept, however some code just cares about recu rsively scrolling our enclosing ScrollableArea(s).
188 bool scrollRectToVisible(const LayoutRect&, const ScrollAlignment& alignX = ScrollAlignment::alignCenterIfNeeded, const ScrollAlignment& alignY = ScrollAlig nment::alignCenterIfNeeded); 188 bool scrollRectToVisible(const LayoutRect&, const ScrollAlignment& alignX = ScrollAlignment::alignCenterIfNeeded, const ScrollAlignment& alignY = ScrollAlig nment::alignCenterIfNeeded);
189 189
190 // Convenience function for getting to the nearest enclosing box of a Render Object. 190 // Convenience function for getting to the nearest enclosing box of a Layout Object.
191 RenderBox* enclosingBox() const; 191 RenderBox* enclosingBox() const;
192 RenderBoxModelObject* enclosingBoxModelObject() const; 192 RenderBoxModelObject* enclosingBoxModelObject() const;
193 193
194 RenderBox* enclosingScrollableBox() const; 194 RenderBox* enclosingScrollableBox() const;
195 195
196 // Function to return our enclosing flow thread if we are contained inside o ne. This 196 // Function to return our enclosing flow thread if we are contained inside o ne. This
197 // function follows the containing block chain. 197 // function follows the containing block chain.
198 RenderFlowThread* flowThreadContainingBlock() const 198 RenderFlowThread* flowThreadContainingBlock() const
199 { 199 {
200 if (flowThreadState() == NotInsideFlowThread) 200 if (flowThreadState() == NotInsideFlowThread)
201 return 0; 201 return 0;
202 return locateFlowThreadContainingBlock(); 202 return locateFlowThreadContainingBlock();
203 } 203 }
204 204
205 #if ENABLE(ASSERT) 205 #if ENABLE(ASSERT)
206 void setHasAXObject(bool flag) { m_hasAXObject = flag; } 206 void setHasAXObject(bool flag) { m_hasAXObject = flag; }
207 bool hasAXObject() const { return m_hasAXObject; } 207 bool hasAXObject() const { return m_hasAXObject; }
208 208
209 // Helper class forbidding calls to setNeedsLayout() during its lifetime. 209 // Helper class forbidding calls to setNeedsLayout() during its lifetime.
210 class SetLayoutNeededForbiddenScope { 210 class SetLayoutNeededForbiddenScope {
211 public: 211 public:
212 explicit SetLayoutNeededForbiddenScope(RenderObject&); 212 explicit SetLayoutNeededForbiddenScope(LayoutObject&);
213 ~SetLayoutNeededForbiddenScope(); 213 ~SetLayoutNeededForbiddenScope();
214 private: 214 private:
215 RenderObject& m_renderObject; 215 LayoutObject& m_layoutObject;
216 bool m_preexistingForbidden; 216 bool m_preexistingForbidden;
217 }; 217 };
218 218
219 void assertRendererLaidOut() const 219 void assertRendererLaidOut() const
220 { 220 {
221 #ifndef NDEBUG 221 #ifndef NDEBUG
222 if (needsLayout()) 222 if (needsLayout())
223 showRenderTreeForThis(); 223 showRenderTreeForThis();
224 #endif 224 #endif
225 ASSERT_WITH_SECURITY_IMPLICATION(!needsLayout()); 225 ASSERT_WITH_SECURITY_IMPLICATION(!needsLayout());
226 } 226 }
227 227
228 void assertSubtreeIsLaidOut() const 228 void assertSubtreeIsLaidOut() const
229 { 229 {
230 for (const RenderObject* renderer = this; renderer; renderer = renderer- >nextInPreOrder()) 230 for (const LayoutObject* renderer = this; renderer; renderer = renderer- >nextInPreOrder())
231 renderer->assertRendererLaidOut(); 231 renderer->assertRendererLaidOut();
232 } 232 }
233 233
234 void assertRendererClearedPaintInvalidationState() const 234 void assertRendererClearedPaintInvalidationState() const
235 { 235 {
236 #ifndef NDEBUG 236 #ifndef NDEBUG
237 if (paintInvalidationStateIsDirty()) { 237 if (paintInvalidationStateIsDirty()) {
238 showRenderTreeForThis(); 238 showRenderTreeForThis();
239 ASSERT_NOT_REACHED(); 239 ASSERT_NOT_REACHED();
240 } 240 }
241 #endif 241 #endif
242 } 242 }
243 243
244 void assertSubtreeClearedPaintInvalidationState() const 244 void assertSubtreeClearedPaintInvalidationState() const
245 { 245 {
246 for (const RenderObject* renderer = this; renderer; renderer = renderer- >nextInPreOrder()) 246 for (const LayoutObject* renderer = this; renderer; renderer = renderer- >nextInPreOrder())
247 renderer->assertRendererClearedPaintInvalidationState(); 247 renderer->assertRendererClearedPaintInvalidationState();
248 } 248 }
249 249
250 #endif 250 #endif
251 251
252 // FIXME: This could be used when changing the size of a renderer without ch ildren to skip some invalidations. 252 // FIXME: This could be used when changing the size of a renderer without ch ildren to skip some invalidations.
253 bool rendererHasNoBoxEffect() const 253 bool rendererHasNoBoxEffect() const
254 { 254 {
255 return !style()->hasVisualOverflowingEffect() && !style()->hasBorder() & & !style()->hasBackground(); 255 return !style()->hasVisualOverflowingEffect() && !style()->hasBorder() & & !style()->hasBackground();
256 } 256 }
257 257
258 // Obtains the nearest enclosing block (including this block) that contribut es a first-line style to our inline 258 // Obtains the nearest enclosing block (including this block) that contribut es a first-line style to our inline
259 // children. 259 // children.
260 virtual RenderBlock* firstLineBlock() const; 260 virtual RenderBlock* firstLineBlock() const;
261 261
262 // Called when an object that was floating or positioned becomes a normal fl ow object 262 // Called when an object that was floating or positioned becomes a normal fl ow object
263 // again. We have to make sure the render tree updates as needed to accommo date the new 263 // again. We have to make sure the render tree updates as needed to accommo date the new
264 // normal flow object. 264 // normal flow object.
265 void handleDynamicFloatPositionChange(); 265 void handleDynamicFloatPositionChange();
266 266
267 // RenderObject tree manipulation 267 // LayoutObject tree manipulation
268 ////////////////////////////////////////// 268 //////////////////////////////////////////
269 virtual bool canHaveChildren() const { return virtualChildren(); } 269 virtual bool canHaveChildren() const { return virtualChildren(); }
270 virtual bool canHaveGeneratedChildren() const; 270 virtual bool canHaveGeneratedChildren() const;
271 virtual bool isChildAllowed(RenderObject*, const RenderStyle&) const { retur n true; } 271 virtual bool isChildAllowed(LayoutObject*, const RenderStyle&) const { retur n true; }
272 virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0) ; 272 virtual void addChild(LayoutObject* newChild, LayoutObject* beforeChild = 0) ;
273 virtual void addChildIgnoringContinuation(RenderObject* newChild, RenderObje ct* beforeChild = 0) { return addChild(newChild, beforeChild); } 273 virtual void addChildIgnoringContinuation(LayoutObject* newChild, LayoutObje ct* beforeChild = 0) { return addChild(newChild, beforeChild); }
274 virtual void removeChild(RenderObject*); 274 virtual void removeChild(LayoutObject*);
275 virtual bool createsAnonymousWrapper() const { return false; } 275 virtual bool createsAnonymousWrapper() const { return false; }
276 ////////////////////////////////////////// 276 //////////////////////////////////////////
277 277
278 protected: 278 protected:
279 ////////////////////////////////////////// 279 //////////////////////////////////////////
280 // Helper functions. Dangerous to use! 280 // Helper functions. Dangerous to use!
281 void setPreviousSibling(RenderObject* previous) { m_previous = previous; } 281 void setPreviousSibling(LayoutObject* previous) { m_previous = previous; }
282 void setNextSibling(RenderObject* next) { m_next = next; } 282 void setNextSibling(LayoutObject* next) { m_next = next; }
283 void setParent(RenderObject* parent) 283 void setParent(LayoutObject* parent)
284 { 284 {
285 m_parent = parent; 285 m_parent = parent;
286 286
287 // Only update if our flow thread state is different from our new parent and if we're not a RenderFlowThread. 287 // Only update if our flow thread state is different from our new parent and if we're not a RenderFlowThread.
288 // A RenderFlowThread is always considered to be inside itself, so it ne ver has to change its state 288 // A RenderFlowThread is always considered to be inside itself, so it ne ver has to change its state
289 // in response to parent changes. 289 // in response to parent changes.
290 FlowThreadState newState = parent ? parent->flowThreadState() : NotInsid eFlowThread; 290 FlowThreadState newState = parent ? parent->flowThreadState() : NotInsid eFlowThread;
291 if (newState != flowThreadState() && !isRenderFlowThread()) 291 if (newState != flowThreadState() && !isRenderFlowThread())
292 setFlowThreadStateIncludingDescendants(newState); 292 setFlowThreadStateIncludingDescendants(newState);
293 } 293 }
294 294
295 ////////////////////////////////////////// 295 //////////////////////////////////////////
296 private: 296 private:
297 #if ENABLE(ASSERT) 297 #if ENABLE(ASSERT)
298 bool isSetNeedsLayoutForbidden() const { return m_setNeedsLayoutForbidden; } 298 bool isSetNeedsLayoutForbidden() const { return m_setNeedsLayoutForbidden; }
299 void setNeedsLayoutIsForbidden(bool flag) { m_setNeedsLayoutForbidden = flag ; } 299 void setNeedsLayoutIsForbidden(bool flag) { m_setNeedsLayoutForbidden = flag ; }
300 #endif 300 #endif
301 301
302 void addAbsoluteRectForLayer(LayoutRect& result); 302 void addAbsoluteRectForLayer(LayoutRect& result);
303 bool requiresAnonymousTableWrappers(const RenderObject*) const; 303 bool requiresAnonymousTableWrappers(const LayoutObject*) const;
304 304
305 // Gets pseudoStyle from Shadow host(in case of input elements) 305 // Gets pseudoStyle from Shadow host(in case of input elements)
306 // or from Parent element. 306 // or from Parent element.
307 PassRefPtr<RenderStyle> getUncachedPseudoStyleFromParentOrShadowHost() const ; 307 PassRefPtr<RenderStyle> getUncachedPseudoStyleFromParentOrShadowHost() const ;
308 308
309 bool skipInvalidationWhenLaidOutChildren() const; 309 bool skipInvalidationWhenLaidOutChildren() const;
310 310
311 public: 311 public:
312 #ifndef NDEBUG 312 #ifndef NDEBUG
313 void showTreeForThis() const; 313 void showTreeForThis() const;
314 void showRenderTreeForThis() const; 314 void showRenderTreeForThis() const;
315 void showLineTreeForThis() const; 315 void showLineTreeForThis() const;
316 316
317 void showRenderObject() const; 317 void showLayoutObject() const;
318 // We don't make printedCharacters an optional parameter so that 318 // We don't make printedCharacters an optional parameter so that
319 // showRenderObject can be called from gdb easily. 319 // showLayoutObject can be called from gdb easily.
320 void showRenderObject(int printedCharacters) const; 320 void showLayoutObject(int printedCharacters) const;
321 void showRenderTreeAndMark(const RenderObject* markedObject1 = 0, const char * markedLabel1 = 0, const RenderObject* markedObject2 = 0, const char* markedLab el2 = 0, int depth = 0) const; 321 void showRenderTreeAndMark(const LayoutObject* markedObject1 = 0, const char * markedLabel1 = 0, const LayoutObject* markedObject2 = 0, const char* markedLab el2 = 0, int depth = 0) const;
322 #endif 322 #endif
323 323
324 static RenderObject* createObject(Element*, const RenderStyle&); 324 static LayoutObject* createObject(Element*, const RenderStyle&);
325 static unsigned instanceCount() { return s_instanceCount; } 325 static unsigned instanceCount() { return s_instanceCount; }
326 326
327 // RenderObjects are allocated out of the rendering partition. 327 // LayoutObjects are allocated out of the rendering partition.
328 void* operator new(size_t); 328 void* operator new(size_t);
329 void operator delete(void*); 329 void operator delete(void*);
330 330
331 public: 331 public:
332 bool isPseudoElement() const { return node() && node()->isPseudoElement(); } 332 bool isPseudoElement() const { return node() && node()->isPseudoElement(); }
333 333
334 virtual bool isBoxModelObject() const { return false; } 334 virtual bool isBoxModelObject() const { return false; }
335 bool isBR() const { return isOfType(RenderObjectBr); } 335 bool isBR() const { return isOfType(LayoutObjectBr); }
336 bool isCanvas() const { return isOfType(RenderObjectCanvas); } 336 bool isCanvas() const { return isOfType(LayoutObjectCanvas); }
337 bool isCounter() const { return isOfType(RenderObjectCounter); } 337 bool isCounter() const { return isOfType(LayoutObjectCounter); }
338 bool isDetailsMarker() const { return isOfType(RenderObjectDetailsMarker); } 338 bool isDetailsMarker() const { return isOfType(LayoutObjectDetailsMarker); }
339 bool isEmbeddedObject() const { return isOfType(RenderObjectEmbeddedObject); } 339 bool isEmbeddedObject() const { return isOfType(LayoutObjectEmbeddedObject); }
340 bool isFieldset() const { return isOfType(RenderObjectFieldset); } 340 bool isFieldset() const { return isOfType(LayoutObjectFieldset); }
341 bool isFileUploadControl() const { return isOfType(RenderObjectFileUploadCon trol); } 341 bool isFileUploadControl() const { return isOfType(LayoutObjectFileUploadCon trol); }
342 bool isFrame() const { return isOfType(RenderObjectFrame); } 342 bool isFrame() const { return isOfType(LayoutObjectFrame); }
343 bool isFrameSet() const { return isOfType(RenderObjectFrameSet); } 343 bool isFrameSet() const { return isOfType(LayoutObjectFrameSet); }
344 bool isLayoutTableCol() const { return isOfType(RenderObjectLayoutTableCol); } 344 bool isLayoutTableCol() const { return isOfType(LayoutObjectLayoutTableCol); }
345 bool isListBox() const { return isOfType(RenderObjectListBox); } 345 bool isListBox() const { return isOfType(LayoutObjectListBox); }
346 bool isListItem() const { return isOfType(RenderObjectListItem); } 346 bool isListItem() const { return isOfType(LayoutObjectListItem); }
347 bool isListMarker() const { return isOfType(RenderObjectListMarker); } 347 bool isListMarker() const { return isOfType(LayoutObjectListMarker); }
348 bool isMedia() const { return isOfType(RenderObjectMedia); } 348 bool isMedia() const { return isOfType(LayoutObjectMedia); }
349 bool isMenuList() const { return isOfType(RenderObjectMenuList); } 349 bool isMenuList() const { return isOfType(LayoutObjectMenuList); }
350 bool isMeter() const { return isOfType(RenderObjectMeter); } 350 bool isMeter() const { return isOfType(LayoutObjectMeter); }
351 bool isProgress() const { return isOfType(RenderObjectProgress); } 351 bool isProgress() const { return isOfType(LayoutObjectProgress); }
352 bool isQuote() const { return isOfType(RenderObjectQuote); } 352 bool isQuote() const { return isOfType(LayoutObjectQuote); }
353 bool isRenderButton() const { return isOfType(RenderObjectRenderButton); } 353 bool isRenderButton() const { return isOfType(LayoutObjectRenderButton); }
354 bool isRenderFullScreen() const { return isOfType(RenderObjectRenderFullScre en); } 354 bool isRenderFullScreen() const { return isOfType(LayoutObjectRenderFullScre en); }
355 bool isRenderFullScreenPlaceholder() const { return isOfType(RenderObjectRen derFullScreenPlaceholder); } 355 bool isRenderFullScreenPlaceholder() const { return isOfType(LayoutObjectRen derFullScreenPlaceholder); }
356 bool isRenderGrid() const { return isOfType(RenderObjectRenderGrid); } 356 bool isRenderGrid() const { return isOfType(LayoutObjectRenderGrid); }
357 bool isRenderIFrame() const { return isOfType(RenderObjectRenderIFrame); } 357 bool isRenderIFrame() const { return isOfType(LayoutObjectRenderIFrame); }
358 bool isRenderImage() const { return isOfType(RenderObjectRenderImage); } 358 bool isRenderImage() const { return isOfType(LayoutObjectRenderImage); }
359 bool isRenderMultiColumnSet() const { return isOfType(RenderObjectRenderMult iColumnSet); } 359 bool isRenderMultiColumnSet() const { return isOfType(LayoutObjectRenderMult iColumnSet); }
360 bool isRenderMultiColumnSpannerPlaceholder() const { return isOfType(RenderO bjectRenderMultiColumnSpannerPlaceholder); } 360 bool isRenderMultiColumnSpannerPlaceholder() const { return isOfType(LayoutO bjectRenderMultiColumnSpannerPlaceholder); }
361 bool isRenderRegion() const { return isOfType(RenderObjectRenderRegion); } 361 bool isRenderRegion() const { return isOfType(LayoutObjectRenderRegion); }
362 bool isRenderScrollbarPart() const { return isOfType(RenderObjectRenderScrol lbarPart); } 362 bool isRenderScrollbarPart() const { return isOfType(LayoutObjectRenderScrol lbarPart); }
363 bool isRenderView() const { return isOfType(RenderObjectRenderView); } 363 bool isRenderView() const { return isOfType(LayoutObjectRenderView); }
364 bool isReplica() const { return isOfType(RenderObjectReplica); } 364 bool isReplica() const { return isOfType(LayoutObjectReplica); }
365 bool isRuby() const { return isOfType(RenderObjectRuby); } 365 bool isRuby() const { return isOfType(LayoutObjectRuby); }
366 bool isRubyBase() const { return isOfType(RenderObjectRubyBase); } 366 bool isRubyBase() const { return isOfType(LayoutObjectRubyBase); }
367 bool isRubyRun() const { return isOfType(RenderObjectRubyRun); } 367 bool isRubyRun() const { return isOfType(LayoutObjectRubyRun); }
368 bool isRubyText() const { return isOfType(RenderObjectRubyText); } 368 bool isRubyText() const { return isOfType(LayoutObjectRubyText); }
369 bool isSlider() const { return isOfType(RenderObjectSlider); } 369 bool isSlider() const { return isOfType(LayoutObjectSlider); }
370 bool isSliderThumb() const { return isOfType(RenderObjectSliderThumb); } 370 bool isSliderThumb() const { return isOfType(LayoutObjectSliderThumb); }
371 bool isTable() const { return isOfType(RenderObjectTable); } 371 bool isTable() const { return isOfType(LayoutObjectTable); }
372 bool isTableCaption() const { return isOfType(RenderObjectTableCaption); } 372 bool isTableCaption() const { return isOfType(LayoutObjectTableCaption); }
373 bool isTableCell() const { return isOfType(RenderObjectTableCell); } 373 bool isTableCell() const { return isOfType(LayoutObjectTableCell); }
374 bool isTableRow() const { return isOfType(RenderObjectTableRow); } 374 bool isTableRow() const { return isOfType(LayoutObjectTableRow); }
375 bool isTableSection() const { return isOfType(RenderObjectTableSection); } 375 bool isTableSection() const { return isOfType(LayoutObjectTableSection); }
376 bool isTextArea() const { return isOfType(RenderObjectTextArea); } 376 bool isTextArea() const { return isOfType(LayoutObjectTextArea); }
377 bool isTextControl() const { return isOfType(RenderObjectTextControl); } 377 bool isTextControl() const { return isOfType(LayoutObjectTextControl); }
378 bool isTextField() const { return isOfType(RenderObjectTextField); } 378 bool isTextField() const { return isOfType(LayoutObjectTextField); }
379 bool isVideo() const { return isOfType(RenderObjectVideo); } 379 bool isVideo() const { return isOfType(LayoutObjectVideo); }
380 bool isWidget() const { return isOfType(RenderObjectWidget); } 380 bool isWidget() const { return isOfType(LayoutObjectWidget); }
381 381
382 virtual bool isImage() const { return false; } 382 virtual bool isImage() const { return false; }
383 383
384 virtual bool isInlineBlockOrInlineTable() const { return false; } 384 virtual bool isInlineBlockOrInlineTable() const { return false; }
385 virtual bool isLayoutLayerModelObject() const { return false; } 385 virtual bool isLayoutLayerModelObject() const { return false; }
386 virtual bool isRenderBlock() const { return false; } 386 virtual bool isRenderBlock() const { return false; }
387 virtual bool isRenderBlockFlow() const { return false; } 387 virtual bool isRenderBlockFlow() const { return false; }
388 virtual bool isRenderFlowThread() const { return false; } 388 virtual bool isRenderFlowThread() const { return false; }
389 virtual bool isRenderInline() const { return false; } 389 virtual bool isRenderInline() const { return false; }
390 virtual bool isRenderPart() const { return false; } 390 virtual bool isRenderPart() const { return false; }
391 391
392 bool isDocumentElement() const { return document().documentElement() == m_no de; } 392 bool isDocumentElement() const { return document().documentElement() == m_no de; }
393 // isBody is called from RenderBox::styleWillChange and is thus quite hot. 393 // isBody is called from RenderBox::styleWillChange and is thus quite hot.
394 bool isBody() const { return node() && node()->hasTagName(HTMLNames::bodyTag ); } 394 bool isBody() const { return node() && node()->hasTagName(HTMLNames::bodyTag ); }
395 bool isHR() const; 395 bool isHR() const;
396 bool isLegend() const; 396 bool isLegend() const;
397 397
398 bool isTablePart() const { return isTableCell() || isLayoutTableCol() || isT ableCaption() || isTableRow() || isTableSection(); } 398 bool isTablePart() const { return isTableCell() || isLayoutTableCol() || isT ableCaption() || isTableRow() || isTableSection(); }
399 399
400 inline bool isBeforeContent() const; 400 inline bool isBeforeContent() const;
401 inline bool isAfterContent() const; 401 inline bool isAfterContent() const;
402 inline bool isBeforeOrAfterContent() const; 402 inline bool isBeforeOrAfterContent() const;
403 static inline bool isAfterContent(const RenderObject* obj) { return obj && o bj->isAfterContent(); } 403 static inline bool isAfterContent(const LayoutObject* obj) { return obj && o bj->isAfterContent(); }
404 404
405 bool hasCounterNodeMap() const { return m_bitfields.hasCounterNodeMap(); } 405 bool hasCounterNodeMap() const { return m_bitfields.hasCounterNodeMap(); }
406 void setHasCounterNodeMap(bool hasCounterNodeMap) { m_bitfields.setHasCounte rNodeMap(hasCounterNodeMap); } 406 void setHasCounterNodeMap(bool hasCounterNodeMap) { m_bitfields.setHasCounte rNodeMap(hasCounterNodeMap); }
407 bool everHadLayout() const { return m_bitfields.everHadLayout(); } 407 bool everHadLayout() const { return m_bitfields.everHadLayout(); }
408 408
409 bool childrenInline() const { return m_bitfields.childrenInline(); } 409 bool childrenInline() const { return m_bitfields.childrenInline(); }
410 void setChildrenInline(bool b) { m_bitfields.setChildrenInline(b); } 410 void setChildrenInline(bool b) { m_bitfields.setChildrenInline(b); }
411 bool hasColumns() const { return m_bitfields.hasColumns(); } 411 bool hasColumns() const { return m_bitfields.hasColumns(); }
412 void setHasColumns(bool b = true) { m_bitfields.setHasColumns(b); } 412 void setHasColumns(bool b = true) { m_bitfields.setHasColumns(b); }
413 413
(...skipping 21 matching lines...) Expand all
435 InsideOutOfFlowThread = 1, 435 InsideOutOfFlowThread = 1,
436 InsideInFlowThread = 2, 436 InsideInFlowThread = 2,
437 }; 437 };
438 438
439 void setFlowThreadStateIncludingDescendants(FlowThreadState); 439 void setFlowThreadStateIncludingDescendants(FlowThreadState);
440 440
441 FlowThreadState flowThreadState() const { return m_bitfields.flowThreadState (); } 441 FlowThreadState flowThreadState() const { return m_bitfields.flowThreadState (); }
442 void setFlowThreadState(FlowThreadState state) { m_bitfields.setFlowThreadSt ate(state); } 442 void setFlowThreadState(FlowThreadState state) { m_bitfields.setFlowThreadSt ate(state); }
443 443
444 // FIXME: Until all SVG renders can be subclasses of RenderSVGModelObject we have 444 // FIXME: Until all SVG renders can be subclasses of RenderSVGModelObject we have
445 // to add SVG renderer methods to RenderObject with an ASSERT_NOT_REACHED() default implementation. 445 // to add SVG renderer methods to LayoutObject with an ASSERT_NOT_REACHED() default implementation.
446 bool isSVG() const { return isOfType(RenderObjectSVG); } 446 bool isSVG() const { return isOfType(LayoutObjectSVG); }
447 bool isSVGRoot() const { return isOfType(RenderObjectSVGRoot); } 447 bool isSVGRoot() const { return isOfType(LayoutObjectSVGRoot); }
448 bool isSVGContainer() const { return isOfType(RenderObjectSVGContainer); } 448 bool isSVGContainer() const { return isOfType(LayoutObjectSVGContainer); }
449 bool isSVGTransformableContainer() const { return isOfType(RenderObjectSVGTr ansformableContainer); } 449 bool isSVGTransformableContainer() const { return isOfType(LayoutObjectSVGTr ansformableContainer); }
450 bool isSVGViewportContainer() const { return isOfType(RenderObjectSVGViewpor tContainer); } 450 bool isSVGViewportContainer() const { return isOfType(LayoutObjectSVGViewpor tContainer); }
451 bool isSVGGradientStop() const { return isOfType(RenderObjectSVGGradientStop ); } 451 bool isSVGGradientStop() const { return isOfType(LayoutObjectSVGGradientStop ); }
452 bool isSVGHiddenContainer() const { return isOfType(RenderObjectSVGHiddenCon tainer); } 452 bool isSVGHiddenContainer() const { return isOfType(LayoutObjectSVGHiddenCon tainer); }
453 bool isSVGShape() const { return isOfType(RenderObjectSVGShape); } 453 bool isSVGShape() const { return isOfType(LayoutObjectSVGShape); }
454 bool isSVGText() const { return isOfType(RenderObjectSVGText); } 454 bool isSVGText() const { return isOfType(LayoutObjectSVGText); }
455 bool isSVGTextPath() const { return isOfType(RenderObjectSVGTextPath); } 455 bool isSVGTextPath() const { return isOfType(LayoutObjectSVGTextPath); }
456 bool isSVGInline() const { return isOfType(RenderObjectSVGInline); } 456 bool isSVGInline() const { return isOfType(LayoutObjectSVGInline); }
457 bool isSVGInlineText() const { return isOfType(RenderObjectSVGInlineText); } 457 bool isSVGInlineText() const { return isOfType(LayoutObjectSVGInlineText); }
458 bool isSVGImage() const { return isOfType(RenderObjectSVGImage); } 458 bool isSVGImage() const { return isOfType(LayoutObjectSVGImage); }
459 bool isSVGForeignObject() const { return isOfType(RenderObjectSVGForeignObje ct); } 459 bool isSVGForeignObject() const { return isOfType(LayoutObjectSVGForeignObje ct); }
460 bool isSVGResourceContainer() const { return isOfType(RenderObjectSVGResourc eContainer); } 460 bool isSVGResourceContainer() const { return isOfType(LayoutObjectSVGResourc eContainer); }
461 bool isSVGResourceFilter() const { return isOfType(RenderObjectSVGResourceFi lter); } 461 bool isSVGResourceFilter() const { return isOfType(LayoutObjectSVGResourceFi lter); }
462 bool isSVGResourceFilterPrimitive() const { return isOfType(RenderObjectSVGR esourceFilterPrimitive); } 462 bool isSVGResourceFilterPrimitive() const { return isOfType(LayoutObjectSVGR esourceFilterPrimitive); }
463 463
464 // FIXME: Those belong into a SVG specific base-class for all renderers (see above) 464 // FIXME: Those belong into a SVG specific base-class for all renderers (see above)
465 // Unfortunately we don't have such a class yet, because it's not possible f or all renderers 465 // Unfortunately we don't have such a class yet, because it's not possible f or all renderers
466 // to inherit from RenderSVGObject -> RenderObject (some need RenderBlock in heritance for instance) 466 // to inherit from RenderSVGObject -> LayoutObject (some need RenderBlock in heritance for instance)
467 virtual void setNeedsTransformUpdate() { } 467 virtual void setNeedsTransformUpdate() { }
468 virtual void setNeedsBoundariesUpdate(); 468 virtual void setNeedsBoundariesUpdate();
469 469
470 bool isBlendingAllowed() const { return !isSVG() || (isSVGContainer() && !is SVGHiddenContainer()) || isSVGShape() || isSVGImage() || isSVGText(); } 470 bool isBlendingAllowed() const { return !isSVG() || (isSVGContainer() && !is SVGHiddenContainer()) || isSVGShape() || isSVGImage() || isSVGText(); }
471 virtual bool hasNonIsolatedBlendingDescendants() const { return false; } 471 virtual bool hasNonIsolatedBlendingDescendants() const { return false; }
472 enum DescendantIsolationState { 472 enum DescendantIsolationState {
473 DescendantIsolationRequired, 473 DescendantIsolationRequired,
474 DescendantIsolationNeedsUpdate, 474 DescendantIsolationNeedsUpdate,
475 }; 475 };
476 virtual void descendantIsolationRequirementsChanged(DescendantIsolationState ) { } 476 virtual void descendantIsolationRequirementsChanged(DescendantIsolationState ) { }
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 631
632 Document& document() const { return m_node->document(); } 632 Document& document() const { return m_node->document(); }
633 LocalFrame* frame() const { return document().frame(); } 633 LocalFrame* frame() const { return document().frame(); }
634 634
635 virtual RenderMultiColumnSpannerPlaceholder* spannerPlaceholder() const { re turn 0; } 635 virtual RenderMultiColumnSpannerPlaceholder* spannerPlaceholder() const { re turn 0; }
636 bool isColumnSpanAll() const { return style()->columnSpan() == ColumnSpanAll && spannerPlaceholder(); } 636 bool isColumnSpanAll() const { return style()->columnSpan() == ColumnSpanAll && spannerPlaceholder(); }
637 637
638 // Returns the object containing this one. Can be different from parent for positioned elements. 638 // Returns the object containing this one. Can be different from parent for positioned elements.
639 // If paintInvalidationContainer and paintInvalidationContainerSkipped are n ot null, on return *paintInvalidationContainerSkipped 639 // If paintInvalidationContainer and paintInvalidationContainerSkipped are n ot null, on return *paintInvalidationContainerSkipped
640 // is true if the renderer returned is an ancestor of paintInvalidationConta iner. 640 // is true if the renderer returned is an ancestor of paintInvalidationConta iner.
641 RenderObject* container(const LayoutLayerModelObject* paintInvalidationConta iner = 0, bool* paintInvalidationContainerSkipped = 0) const; 641 LayoutObject* container(const LayoutLayerModelObject* paintInvalidationConta iner = 0, bool* paintInvalidationContainerSkipped = 0) const;
642 RenderBlock* containerForFixedPosition(const LayoutLayerModelObject* paintIn validationContainer = 0, bool* paintInvalidationContainerSkipped = 0) const; 642 RenderBlock* containerForFixedPosition(const LayoutLayerModelObject* paintIn validationContainer = 0, bool* paintInvalidationContainerSkipped = 0) const;
643 643
644 virtual RenderObject* hoverAncestor() const { return parent(); } 644 virtual LayoutObject* hoverAncestor() const { return parent(); }
645 645
646 Element* offsetParent() const; 646 Element* offsetParent() const;
647 647
648 void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObjec t* newRoot = 0, SubtreeLayoutScope* = 0); 648 void markContainingBlocksForLayout(bool scheduleRelayout = true, LayoutObjec t* newRoot = 0, SubtreeLayoutScope* = 0);
649 void setNeedsLayout(MarkingBehavior = MarkContainingBlockChain, SubtreeLayou tScope* = 0); 649 void setNeedsLayout(MarkingBehavior = MarkContainingBlockChain, SubtreeLayou tScope* = 0);
650 void setNeedsLayoutAndFullPaintInvalidation(MarkingBehavior = MarkContaining BlockChain, SubtreeLayoutScope* = 0); 650 void setNeedsLayoutAndFullPaintInvalidation(MarkingBehavior = MarkContaining BlockChain, SubtreeLayoutScope* = 0);
651 void clearNeedsLayout(); 651 void clearNeedsLayout();
652 void setChildNeedsLayout(MarkingBehavior = MarkContainingBlockChain, Subtree LayoutScope* = 0); 652 void setChildNeedsLayout(MarkingBehavior = MarkContainingBlockChain, Subtree LayoutScope* = 0);
653 void setNeedsPositionedMovementLayout(); 653 void setNeedsPositionedMovementLayout();
654 void setPreferredLogicalWidthsDirty(MarkingBehavior = MarkContainingBlockCha in); 654 void setPreferredLogicalWidthsDirty(MarkingBehavior = MarkContainingBlockCha in);
655 void clearPreferredLogicalWidthsDirty(); 655 void clearPreferredLogicalWidthsDirty();
656 void invalidateContainerPreferredLogicalWidths(); 656 void invalidateContainerPreferredLogicalWidths();
657 657
658 void setNeedsLayoutAndPrefWidthsRecalc() 658 void setNeedsLayoutAndPrefWidthsRecalc()
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
699 virtual void paint(const PaintInfo&, const LayoutPoint& paintOffset); 699 virtual void paint(const PaintInfo&, const LayoutPoint& paintOffset);
700 700
701 // Subclasses must reimplement this method to compute the size and position 701 // Subclasses must reimplement this method to compute the size and position
702 // of this object and all its descendants. 702 // of this object and all its descendants.
703 virtual void layout() = 0; 703 virtual void layout() = 0;
704 virtual bool updateImageLoadingPriorities() { return false; } 704 virtual bool updateImageLoadingPriorities() { return false; }
705 void setHasPendingResourceUpdate(bool hasPendingResourceUpdate) { m_bitfield s.setHasPendingResourceUpdate(hasPendingResourceUpdate); } 705 void setHasPendingResourceUpdate(bool hasPendingResourceUpdate) { m_bitfield s.setHasPendingResourceUpdate(hasPendingResourceUpdate); }
706 bool hasPendingResourceUpdate() const { return m_bitfields.hasPendingResourc eUpdate(); } 706 bool hasPendingResourceUpdate() const { return m_bitfields.hasPendingResourc eUpdate(); }
707 707
708 /* This function performs a layout only if one is needed. */ 708 /* This function performs a layout only if one is needed. */
709 void layoutIfNeeded() { if (needsLayout()) layout(); } 709 void layoutIfNeeded()
710 {
711 if (needsLayout())
712 layout();
713 }
710 714
711 void forceLayout(); 715 void forceLayout();
712 void forceChildLayout(); 716 void forceChildLayout();
713 717
714 // Used for element state updates that cannot be fixed with a 718 // Used for element state updates that cannot be fixed with a
715 // paint invalidation and do not need a relayout. 719 // paint invalidation and do not need a relayout.
716 virtual void updateFromElement() { } 720 virtual void updateFromElement() { }
717 721
718 virtual void addAnnotatedRegions(Vector<AnnotatedRegionValue>&); 722 virtual void addAnnotatedRegions(Vector<AnnotatedRegionValue>&);
719 void collectAnnotatedRegions(Vector<AnnotatedRegionValue>&); 723 void collectAnnotatedRegions(Vector<AnnotatedRegionValue>&);
720 724
721 CompositingState compositingState() const; 725 CompositingState compositingState() const;
722 virtual CompositingReasons additionalCompositingReasons() const; 726 virtual CompositingReasons additionalCompositingReasons() const;
723 727
724 bool hitTest(const HitTestRequest&, HitTestResult&, const HitTestLocation& l ocationInContainer, const LayoutPoint& accumulatedOffset, HitTestFilter = HitTes tAll); 728 bool hitTest(const HitTestRequest&, HitTestResult&, const HitTestLocation& l ocationInContainer, const LayoutPoint& accumulatedOffset, HitTestFilter = HitTes tAll);
725 virtual void updateHitTestResult(HitTestResult&, const LayoutPoint&); 729 virtual void updateHitTestResult(HitTestResult&, const LayoutPoint&);
726 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct ion); 730 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct ion);
727 731
728 virtual PositionWithAffinity positionForPoint(const LayoutPoint&); 732 virtual PositionWithAffinity positionForPoint(const LayoutPoint&);
729 PositionWithAffinity createPositionWithAffinity(int offset, EAffinity); 733 PositionWithAffinity createPositionWithAffinity(int offset, EAffinity);
730 PositionWithAffinity createPositionWithAffinity(const Position&); 734 PositionWithAffinity createPositionWithAffinity(const Position&);
731 735
732 virtual void dirtyLinesFromChangedChild(RenderObject*); 736 virtual void dirtyLinesFromChangedChild(LayoutObject*);
733 737
734 // Set the style of the object and update the state of the object accordingl y. 738 // Set the style of the object and update the state of the object accordingl y.
735 void setStyle(PassRefPtr<RenderStyle>); 739 void setStyle(PassRefPtr<RenderStyle>);
736 740
737 // Set the style of the object if it's generated content. 741 // Set the style of the object if it's generated content.
738 void setPseudoStyle(PassRefPtr<RenderStyle>); 742 void setPseudoStyle(PassRefPtr<RenderStyle>);
739 743
740 // Updates only the local style ptr of the object. Does not update the stat e of the object, 744 // Updates only the local style ptr of the object. Does not update the stat e of the object,
741 // and so only should be called when the style is known not to have changed (or from setStyle). 745 // and so only should be called when the style is known not to have changed (or from setStyle).
742 void setStyleInternal(PassRefPtr<RenderStyle> style) { m_style = style; } 746 void setStyleInternal(PassRefPtr<RenderStyle> style) { m_style = style; }
(...skipping 21 matching lines...) Expand all
764 768
765 // Convert a local quad into the coordinate system of container, taking tran sforms into account. 769 // Convert a local quad into the coordinate system of container, taking tran sforms into account.
766 FloatQuad localToContainerQuad(const FloatQuad&, const LayoutLayerModelObjec t* paintInvalidatinoContainer, MapCoordinatesFlags = 0, bool* wasFixed = 0) cons t; 770 FloatQuad localToContainerQuad(const FloatQuad&, const LayoutLayerModelObjec t* paintInvalidatinoContainer, MapCoordinatesFlags = 0, bool* wasFixed = 0) cons t;
767 FloatPoint localToContainerPoint(const FloatPoint&, const LayoutLayerModelOb ject* paintInvalidationContainer, MapCoordinatesFlags = 0, bool* wasFixed = 0, c onst PaintInvalidationState* = 0) const; 771 FloatPoint localToContainerPoint(const FloatPoint&, const LayoutLayerModelOb ject* paintInvalidationContainer, MapCoordinatesFlags = 0, bool* wasFixed = 0, c onst PaintInvalidationState* = 0) const;
768 772
769 // Convert a local point into the coordinate system of backing coordinates. Also returns the backing layer if needed. 773 // Convert a local point into the coordinate system of backing coordinates. Also returns the backing layer if needed.
770 FloatPoint localToInvalidationBackingPoint(const LayoutPoint&, Layer** backi ngLayer = nullptr); 774 FloatPoint localToInvalidationBackingPoint(const LayoutPoint&, Layer** backi ngLayer = nullptr);
771 775
772 // Return the offset from the container() renderer (excluding transforms). I n multi-column layout, 776 // Return the offset from the container() renderer (excluding transforms). I n multi-column layout,
773 // different offsets apply at different points, so return the offset that ap plies to the given point. 777 // different offsets apply at different points, so return the offset that ap plies to the given point.
774 virtual LayoutSize offsetFromContainer(const RenderObject*, const LayoutPoin t&, bool* offsetDependsOnPoint = 0) const; 778 virtual LayoutSize offsetFromContainer(const LayoutObject*, const LayoutPoin t&, bool* offsetDependsOnPoint = 0) const;
775 // Return the offset from an object up the container() chain. Asserts that n one of the intermediate objects have transforms. 779 // Return the offset from an object up the container() chain. Asserts that n one of the intermediate objects have transforms.
776 LayoutSize offsetFromAncestorContainer(const RenderObject*) const; 780 LayoutSize offsetFromAncestorContainer(const LayoutObject*) const;
777 781
778 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint&) const { } 782 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint&) const { }
779 783
780 IntRect absoluteBoundingBoxRect() const; 784 IntRect absoluteBoundingBoxRect() const;
781 // FIXME: This function should go away eventually 785 // FIXME: This function should go away eventually
782 IntRect absoluteBoundingBoxRectIgnoringTransforms() const; 786 IntRect absoluteBoundingBoxRectIgnoringTransforms() const;
783 787
784 // Build an array of quads in absolute coords for line boxes 788 // Build an array of quads in absolute coords for line boxes
785 virtual void absoluteQuads(Vector<FloatQuad>&, bool* /*wasFixed*/ = 0) const { } 789 virtual void absoluteQuads(Vector<FloatQuad>&, bool* /*wasFixed*/ = 0) const { }
786 790
787 virtual IntRect absoluteFocusRingBoundingBoxRect() const; 791 virtual IntRect absoluteFocusRingBoundingBoxRect() const;
788 792
789 static FloatRect absoluteBoundingBoxRectForRange(const Range*); 793 static FloatRect absoluteBoundingBoxRectForRange(const Range*);
790 794
791 // the rect that will be painted if this object is passed as the paintingRoo t 795 // the rect that will be painted if this object is passed as the paintingRoo t
792 LayoutRect paintingRootRect(LayoutRect& topLevelRect); 796 LayoutRect paintingRootRect(LayoutRect& topLevelRect);
793 797
794 virtual LayoutUnit minPreferredLogicalWidth() const { return 0; } 798 virtual LayoutUnit minPreferredLogicalWidth() const { return 0; }
795 virtual LayoutUnit maxPreferredLogicalWidth() const { return 0; } 799 virtual LayoutUnit maxPreferredLogicalWidth() const { return 0; }
796 800
797 RenderStyle* style() const { return m_style.get(); } 801 RenderStyle* style() const { return m_style.get(); }
798 802
799 // m_style can only be nullptr before the first style is set, thus most 803 // m_style can only be nullptr before the first style is set, thus most
800 // callers will never see a nullptr style and should use styleRef(). 804 // callers will never see a nullptr style and should use styleRef().
801 // FIXME: It would be better if style() returned a const reference. 805 // FIXME: It would be better if style() returned a const reference.
802 const RenderStyle& styleRef() const { return mutableStyleRef(); } 806 const RenderStyle& styleRef() const { return mutableStyleRef(); }
803 RenderStyle& mutableStyleRef() const { ASSERT(m_style); return *m_style; } 807 RenderStyle& mutableStyleRef() const { ASSERT(m_style); return *m_style; }
804 808
805 /* The following methods are inlined in RenderObjectInlines.h */ 809 /* The following methods are inlined in LayoutObjectInlines.h */
806 RenderStyle* firstLineStyle() const; 810 RenderStyle* firstLineStyle() const;
807 RenderStyle* style(bool firstLine) const; 811 RenderStyle* style(bool firstLine) const;
808 const RenderStyle& styleRef(bool firstLine) const; 812 const RenderStyle& styleRef(bool firstLine) const;
809 813
810 static inline Color resolveColor(const RenderStyle& styleToUse, int colorPro perty) 814 static inline Color resolveColor(const RenderStyle& styleToUse, int colorPro perty)
811 { 815 {
812 return styleToUse.visitedDependentColor(colorProperty); 816 return styleToUse.visitedDependentColor(colorProperty);
813 } 817 }
814 818
815 inline Color resolveColor(int colorProperty) const 819 inline Color resolveColor(int colorProperty) const
(...skipping 20 matching lines...) Expand all
836 // methods. 840 // methods.
837 const LayoutLayerModelObject* containerForPaintInvalidation() const; 841 const LayoutLayerModelObject* containerForPaintInvalidation() const;
838 const LayoutLayerModelObject* adjustCompositedContainerForSpecialAncestors(c onst LayoutLayerModelObject* paintInvalidationContainer) const; 842 const LayoutLayerModelObject* adjustCompositedContainerForSpecialAncestors(c onst LayoutLayerModelObject* paintInvalidationContainer) const;
839 bool isPaintInvalidationContainer() const; 843 bool isPaintInvalidationContainer() const;
840 844
841 LayoutRect computePaintInvalidationRect() 845 LayoutRect computePaintInvalidationRect()
842 { 846 {
843 return computePaintInvalidationRect(containerForPaintInvalidation()); 847 return computePaintInvalidationRect(containerForPaintInvalidation());
844 } 848 }
845 849
846 // Returns the paint invalidation rect for this RenderObject in the coordina te space of the paint backing (typically a GraphicsLayer) for |paintInvalidation Container|. 850 // Returns the paint invalidation rect for this LayoutObject in the coordina te space of the paint backing (typically a GraphicsLayer) for |paintInvalidation Container|.
847 LayoutRect computePaintInvalidationRect(const LayoutLayerModelObject* paintI nvalidationContainer, const PaintInvalidationState* = 0) const; 851 LayoutRect computePaintInvalidationRect(const LayoutLayerModelObject* paintI nvalidationContainer, const PaintInvalidationState* = 0) const;
848 852
849 // Returns the rect bounds needed to invalidate the paint of this object, in the coordinate space of the rendering backing of |paintInvalidationContainer| 853 // Returns the rect bounds needed to invalidate the paint of this object, in the coordinate space of the rendering backing of |paintInvalidationContainer|
850 LayoutRect boundsRectForPaintInvalidation(const LayoutLayerModelObject* pain tInvalidationContainer, const PaintInvalidationState* = 0) const; 854 LayoutRect boundsRectForPaintInvalidation(const LayoutLayerModelObject* pain tInvalidationContainer, const PaintInvalidationState* = 0) const;
851 855
852 // Actually do the paint invalidate of rect r for this object which has been computed in the coordinate space 856 // Actually do the paint invalidate of rect r for this object which has been computed in the coordinate space
853 // of the GraphicsLayer backing of |paintInvalidationContainer|. Note that t his coordinaten space is not the same 857 // of the GraphicsLayer backing of |paintInvalidationContainer|. Note that t his coordinaten space is not the same
854 // as the local coordinate space of |paintInvalidationContainer| in the pres ence of layer squashing. 858 // as the local coordinate space of |paintInvalidationContainer| in the pres ence of layer squashing.
855 // If |paintInvalidationContainer| is 0, invalidate paints via the view. 859 // If |paintInvalidationContainer| is 0, invalidate paints via the view.
856 // FIXME: |paintInvalidationContainer| should never be 0. See crbug.com/3636 99. 860 // FIXME: |paintInvalidationContainer| should never be 0. See crbug.com/3636 99.
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 virtual int previousOffsetForBackwardDeletion(int current) const; 962 virtual int previousOffsetForBackwardDeletion(int current) const;
959 virtual int nextOffset(int current) const; 963 virtual int nextOffset(int current) const;
960 964
961 virtual void imageChanged(ImageResource*, const IntRect* = 0) override final ; 965 virtual void imageChanged(ImageResource*, const IntRect* = 0) override final ;
962 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0) { } 966 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0) { }
963 virtual bool willRenderImage(ImageResource*) override final; 967 virtual bool willRenderImage(ImageResource*) override final;
964 virtual bool getImageAnimationPolicy(ImageResource*, ImageAnimationPolicy&) override final; 968 virtual bool getImageAnimationPolicy(ImageResource*, ImageAnimationPolicy&) override final;
965 969
966 void selectionStartEnd(int& spos, int& epos) const; 970 void selectionStartEnd(int& spos, int& epos) const;
967 971
968 void remove() { if (parent()) parent()->removeChild(this); } 972 void remove()
973 {
974 if (parent())
975 parent()->removeChild(this);
976 }
969 977
970 bool isInert() const; 978 bool isInert() const;
971 979
972 bool supportsTouchAction() const; 980 bool supportsTouchAction() const;
973 981
974 bool visibleToHitTestRequest(const HitTestRequest& request) const { return s tyle()->visibility() == VISIBLE && (request.ignorePointerEventsNone() || style() ->pointerEvents() != PE_NONE) && !isInert(); } 982 bool visibleToHitTestRequest(const HitTestRequest& request) const { return s tyle()->visibility() == VISIBLE && (request.ignorePointerEventsNone() || style() ->pointerEvents() != PE_NONE) && !isInert(); }
975 983
976 bool visibleToHitTesting() const { return style()->visibility() == VISIBLE & & style()->pointerEvents() != PE_NONE && !isInert(); } 984 bool visibleToHitTesting() const { return style()->visibility() == VISIBLE & & style()->pointerEvents() != PE_NONE && !isInert(); }
977 985
978 // Map points and quads through elements, potentially via 3d transforms. You should never need to call these directly; use 986 // Map points and quads through elements, potentially via 3d transforms. You should never need to call these directly; use
979 // localToAbsolute/absoluteToLocal methods instead. 987 // localToAbsolute/absoluteToLocal methods instead.
980 virtual void mapLocalToContainer(const LayoutLayerModelObject* paintInvalida tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0, const PaintInvalidationState* = 0) const; 988 virtual void mapLocalToContainer(const LayoutLayerModelObject* paintInvalida tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0, const PaintInvalidationState* = 0) const;
981 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst; 989 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst;
982 990
983 // Pushes state onto RenderGeometryMap about how to map coordinates from thi s renderer to its container, or ancestorToStopAt (whichever is encountered first ). 991 // Pushes state onto RenderGeometryMap about how to map coordinates from thi s renderer to its container, or ancestorToStopAt (whichever is encountered first ).
984 // Returns the renderer which was mapped to (container or ancestorToStopAt). 992 // Returns the renderer which was mapped to (container or ancestorToStopAt).
985 virtual const RenderObject* pushMappingToContainer(const LayoutLayerModelObj ect* ancestorToStopAt, RenderGeometryMap&) const; 993 virtual const LayoutObject* pushMappingToContainer(const LayoutLayerModelObj ect* ancestorToStopAt, RenderGeometryMap&) const;
986 994
987 bool shouldUseTransformFromContainer(const RenderObject* container) const; 995 bool shouldUseTransformFromContainer(const LayoutObject* container) const;
988 void getTransformFromContainer(const RenderObject* container, const LayoutSi ze& offsetInContainer, TransformationMatrix&) const; 996 void getTransformFromContainer(const LayoutObject* container, const LayoutSi ze& offsetInContainer, TransformationMatrix&) const;
989 997
990 bool createsGroup() const { return isTransparent() || hasMask() || hasFilter () || style()->hasBlendMode(); } 998 bool createsGroup() const { return isTransparent() || hasMask() || hasFilter () || style()->hasBlendMode(); }
991 999
992 virtual void addFocusRingRects(Vector<LayoutRect>&, const LayoutPoint& addit ionalOffset) const { } 1000 virtual void addFocusRingRects(Vector<LayoutRect>&, const LayoutPoint& addit ionalOffset) const { }
993 1001
994 // Compute a list of hit-test rectangles per layer rooted at this renderer. 1002 // Compute a list of hit-test rectangles per layer rooted at this renderer.
995 virtual void computeLayerHitTestRects(LayerHitTestRects&) const; 1003 virtual void computeLayerHitTestRects(LayerHitTestRects&) const;
996 1004
997 // Return the renderer whose background style is used to paint the root back ground. Should only be called on the renderer for which isDocumentElement() is t rue. 1005 // Return the renderer whose background style is used to paint the root back ground. Should only be called on the renderer for which isDocumentElement() is t rue.
998 RenderObject* rendererForRootBackground(); 1006 LayoutObject* rendererForRootBackground();
999 1007
1000 RespectImageOrientationEnum shouldRespectImageOrientation() const; 1008 RespectImageOrientationEnum shouldRespectImageOrientation() const;
1001 1009
1002 bool isRelayoutBoundaryForInspector() const; 1010 bool isRelayoutBoundaryForInspector() const;
1003 1011
1004 // The previous paint invalidation rect in the object's previous paint backi ng. 1012 // The previous paint invalidation rect in the object's previous paint backi ng.
1005 const LayoutRect& previousPaintInvalidationRect() const { return m_previousP aintInvalidationRect; } 1013 const LayoutRect& previousPaintInvalidationRect() const { return m_previousP aintInvalidationRect; }
1006 void setPreviousPaintInvalidationRect(const LayoutRect& rect) { m_previousPa intInvalidationRect = rect; } 1014 void setPreviousPaintInvalidationRect(const LayoutRect& rect) { m_previousPa intInvalidationRect = rect; }
1007 1015
1008 // The previous position of the top-left corner of the object in its previou s paint backing. 1016 // The previous position of the top-left corner of the object in its previou s paint backing.
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1052 virtual bool supportsPaintInvalidationStateCachedOffsets() const { return !h asColumns() && !hasTransformRelatedProperty() && !hasReflection() && !style()->i sFlippedBlocksWritingMode(); } 1060 virtual bool supportsPaintInvalidationStateCachedOffsets() const { return !h asColumns() && !hasTransformRelatedProperty() && !hasReflection() && !style()->i sFlippedBlocksWritingMode(); }
1053 1061
1054 void setNeedsOverflowRecalcAfterStyleChange(); 1062 void setNeedsOverflowRecalcAfterStyleChange();
1055 void markContainingBlocksForOverflowRecalc(); 1063 void markContainingBlocksForOverflowRecalc();
1056 1064
1057 virtual LayoutRect viewRect() const; 1065 virtual LayoutRect viewRect() const;
1058 1066
1059 DisplayItemClient displayItemClient() const { return toDisplayItemClient(thi s); } 1067 DisplayItemClient displayItemClient() const { return toDisplayItemClient(thi s); }
1060 1068
1061 protected: 1069 protected:
1062 enum RenderObjectType { 1070 enum LayoutObjectType {
1063 RenderObjectBr, 1071 LayoutObjectBr,
1064 RenderObjectCanvas, 1072 LayoutObjectCanvas,
1065 RenderObjectFieldset, 1073 LayoutObjectFieldset,
1066 RenderObjectCounter, 1074 LayoutObjectCounter,
1067 RenderObjectDetailsMarker, 1075 LayoutObjectDetailsMarker,
1068 RenderObjectEmbeddedObject, 1076 LayoutObjectEmbeddedObject,
1069 RenderObjectFileUploadControl, 1077 LayoutObjectFileUploadControl,
1070 RenderObjectFrame, 1078 LayoutObjectFrame,
1071 RenderObjectFrameSet, 1079 LayoutObjectFrameSet,
1072 RenderObjectLayoutTableCol, 1080 LayoutObjectLayoutTableCol,
1073 RenderObjectListBox, 1081 LayoutObjectListBox,
1074 RenderObjectListItem, 1082 LayoutObjectListItem,
1075 RenderObjectListMarker, 1083 LayoutObjectListMarker,
1076 RenderObjectMedia, 1084 LayoutObjectMedia,
1077 RenderObjectMenuList, 1085 LayoutObjectMenuList,
1078 RenderObjectMeter, 1086 LayoutObjectMeter,
1079 RenderObjectProgress, 1087 LayoutObjectProgress,
1080 RenderObjectQuote, 1088 LayoutObjectQuote,
1081 RenderObjectRenderButton, 1089 LayoutObjectRenderButton,
1082 RenderObjectRenderFlowThread, 1090 LayoutObjectRenderFlowThread,
1083 RenderObjectRenderFullScreen, 1091 LayoutObjectRenderFullScreen,
1084 RenderObjectRenderFullScreenPlaceholder, 1092 LayoutObjectRenderFullScreenPlaceholder,
1085 RenderObjectRenderGrid, 1093 LayoutObjectRenderGrid,
1086 RenderObjectRenderIFrame, 1094 LayoutObjectRenderIFrame,
1087 RenderObjectRenderImage, 1095 LayoutObjectRenderImage,
1088 RenderObjectRenderInline, 1096 LayoutObjectRenderInline,
1089 RenderObjectRenderMultiColumnSet, 1097 LayoutObjectRenderMultiColumnSet,
1090 RenderObjectRenderMultiColumnSpannerPlaceholder, 1098 LayoutObjectRenderMultiColumnSpannerPlaceholder,
1091 RenderObjectRenderPart, 1099 LayoutObjectRenderPart,
1092 RenderObjectRenderRegion, 1100 LayoutObjectRenderRegion,
1093 RenderObjectRenderScrollbarPart, 1101 LayoutObjectRenderScrollbarPart,
1094 RenderObjectRenderView, 1102 LayoutObjectRenderView,
1095 RenderObjectReplica, 1103 LayoutObjectReplica,
1096 RenderObjectRuby, 1104 LayoutObjectRuby,
1097 RenderObjectRubyBase, 1105 LayoutObjectRubyBase,
1098 RenderObjectRubyRun, 1106 LayoutObjectRubyRun,
1099 RenderObjectRubyText, 1107 LayoutObjectRubyText,
1100 RenderObjectSlider, 1108 LayoutObjectSlider,
1101 RenderObjectSliderThumb, 1109 LayoutObjectSliderThumb,
1102 RenderObjectTable, 1110 LayoutObjectTable,
1103 RenderObjectTableCaption, 1111 LayoutObjectTableCaption,
1104 RenderObjectTableCell, 1112 LayoutObjectTableCell,
1105 RenderObjectTableRow, 1113 LayoutObjectTableRow,
1106 RenderObjectTableSection, 1114 LayoutObjectTableSection,
1107 RenderObjectTextArea, 1115 LayoutObjectTextArea,
1108 RenderObjectTextControl, 1116 LayoutObjectTextControl,
1109 RenderObjectTextField, 1117 LayoutObjectTextField,
1110 RenderObjectVideo, 1118 LayoutObjectVideo,
1111 RenderObjectWidget, 1119 LayoutObjectWidget,
1112 1120
1113 RenderObjectSVG, /* Keep by itself? */ 1121 LayoutObjectSVG, /* Keep by itself? */
1114 RenderObjectSVGRoot, 1122 LayoutObjectSVGRoot,
1115 RenderObjectSVGContainer, 1123 LayoutObjectSVGContainer,
1116 RenderObjectSVGTransformableContainer, 1124 LayoutObjectSVGTransformableContainer,
1117 RenderObjectSVGViewportContainer, 1125 LayoutObjectSVGViewportContainer,
1118 RenderObjectSVGHiddenContainer, 1126 LayoutObjectSVGHiddenContainer,
1119 RenderObjectSVGGradientStop, 1127 LayoutObjectSVGGradientStop,
1120 RenderObjectSVGShape, 1128 LayoutObjectSVGShape,
1121 RenderObjectSVGText, 1129 LayoutObjectSVGText,
1122 RenderObjectSVGTextPath, 1130 LayoutObjectSVGTextPath,
1123 RenderObjectSVGInline, 1131 LayoutObjectSVGInline,
1124 RenderObjectSVGInlineText, 1132 LayoutObjectSVGInlineText,
1125 RenderObjectSVGImage, 1133 LayoutObjectSVGImage,
1126 RenderObjectSVGForeignObject, 1134 LayoutObjectSVGForeignObject,
1127 RenderObjectSVGResourceContainer, 1135 LayoutObjectSVGResourceContainer,
1128 RenderObjectSVGResourceFilter, 1136 LayoutObjectSVGResourceFilter,
1129 RenderObjectSVGResourceFilterPrimitive, 1137 LayoutObjectSVGResourceFilterPrimitive,
1130 }; 1138 };
1131 virtual bool isOfType(RenderObjectType type) const { return false; } 1139 virtual bool isOfType(LayoutObjectType type) const { return false; }
1132 1140
1133 inline bool layerCreationAllowedForSubtree() const; 1141 inline bool layerCreationAllowedForSubtree() const;
1134 1142
1135 // Overrides should call the superclass at the end. m_style will be 0 the fi rst time 1143 // Overrides should call the superclass at the end. m_style will be 0 the fi rst time
1136 // this function will be called. 1144 // this function will be called.
1137 virtual void styleWillChange(StyleDifference, const RenderStyle& newStyle); 1145 virtual void styleWillChange(StyleDifference, const RenderStyle& newStyle);
1138 // Overrides should call the superclass at the start. |oldStyle| will be 0 t he first 1146 // Overrides should call the superclass at the start. |oldStyle| will be 0 t he first
1139 // time this function is called. 1147 // time this function is called.
1140 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle); 1148 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
1141 void propagateStyleToAnonymousChildren(bool blockChildrenOnly = false); 1149 void propagateStyleToAnonymousChildren(bool blockChildrenOnly = false);
1142 virtual void updateAnonymousChildStyle(const RenderObject* child, RenderStyl e* style) const { } 1150 virtual void updateAnonymousChildStyle(const LayoutObject* child, RenderStyl e* style) const { }
1143 1151
1144 protected: 1152 protected:
1145 void setSelfMayNeedPaintInvalidation(); 1153 void setSelfMayNeedPaintInvalidation();
1146 1154
1147 void clearLayoutRootIfNeeded() const; 1155 void clearLayoutRootIfNeeded() const;
1148 virtual void willBeDestroyed(); 1156 virtual void willBeDestroyed();
1149 void postDestroy(); 1157 void postDestroy();
1150 1158
1151 virtual void insertedIntoTree(); 1159 virtual void insertedIntoTree();
1152 virtual void willBeRemovedFromTree(); 1160 virtual void willBeRemovedFromTree();
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1223 1231
1224 void markContainingBlockChainForPaintInvalidation(); 1232 void markContainingBlockChainForPaintInvalidation();
1225 1233
1226 static bool isAllowedToModifyRenderTreeStructure(Document&); 1234 static bool isAllowedToModifyRenderTreeStructure(Document&);
1227 1235
1228 RefPtr<RenderStyle> m_style; 1236 RefPtr<RenderStyle> m_style;
1229 1237
1230 // Oilpan: raw pointer back to the owning Node is considered safe. 1238 // Oilpan: raw pointer back to the owning Node is considered safe.
1231 Node* m_node; 1239 Node* m_node;
1232 1240
1233 RenderObject* m_parent; 1241 LayoutObject* m_parent;
1234 RenderObject* m_previous; 1242 LayoutObject* m_previous;
1235 RenderObject* m_next; 1243 LayoutObject* m_next;
1236 1244
1237 #if ENABLE(ASSERT) 1245 #if ENABLE(ASSERT)
1238 unsigned m_hasAXObject : 1; 1246 unsigned m_hasAXObject : 1;
1239 unsigned m_setNeedsLayoutForbidden : 1; 1247 unsigned m_setNeedsLayoutForbidden : 1;
1240 #endif 1248 #endif
1241 1249
1242 #define ADD_BOOLEAN_BITFIELD(name, Name) \ 1250 #define ADD_BOOLEAN_BITFIELD(name, Name) \
1243 private:\ 1251 private:\
1244 unsigned m_##name : 1;\ 1252 unsigned m_##name : 1;\
1245 public:\ 1253 public:\
1246 bool name() const { return m_##name; }\ 1254 bool name() const { return m_##name; }\
1247 void set##Name(bool name) { m_##name = name; }\ 1255 void set##Name(bool name) { m_##name = name; }\
1248 1256
1249 class RenderObjectBitfields { 1257 class LayoutObjectBitfields {
1250 enum PositionedState { 1258 enum PositionedState {
1251 IsStaticallyPositioned = 0, 1259 IsStaticallyPositioned = 0,
1252 IsRelativelyPositioned = 1, 1260 IsRelativelyPositioned = 1,
1253 IsOutOfFlowPositioned = 2, 1261 IsOutOfFlowPositioned = 2,
1254 }; 1262 };
1255 1263
1256 public: 1264 public:
1257 RenderObjectBitfields(Node* node) 1265 LayoutObjectBitfields(Node* node)
1258 : m_selfNeedsLayout(false) 1266 : m_selfNeedsLayout(false)
1259 , m_shouldInvalidateOverflowForPaint(false) 1267 , m_shouldInvalidateOverflowForPaint(false)
1260 // FIXME: We should remove mayNeedPaintInvalidation once we are able to 1268 // FIXME: We should remove mayNeedPaintInvalidation once we are able to
1261 // use the other layout flags to detect the same cases. crbug.com/37 0118 1269 // use the other layout flags to detect the same cases. crbug.com/37 0118
1262 , m_mayNeedPaintInvalidation(false) 1270 , m_mayNeedPaintInvalidation(false)
1263 , m_shouldInvalidateSelection(false) 1271 , m_shouldInvalidateSelection(false)
1264 , m_neededLayoutBecauseOfChildren(false) 1272 , m_neededLayoutBecauseOfChildren(false)
1265 , m_needsPositionedMovementLayout(false) 1273 , m_needsPositionedMovementLayout(false)
1266 , m_normalChildNeedsLayout(false) 1274 , m_normalChildNeedsLayout(false)
1267 , m_posChildNeedsLayout(false) 1275 , m_posChildNeedsLayout(false)
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1367 1375
1368 ALWAYS_INLINE BoxDecorationBackgroundState boxDecorationBackgroundState( ) const { return static_cast<BoxDecorationBackgroundState>(m_boxDecorationBackgr oundState); } 1376 ALWAYS_INLINE BoxDecorationBackgroundState boxDecorationBackgroundState( ) const { return static_cast<BoxDecorationBackgroundState>(m_boxDecorationBackgr oundState); }
1369 ALWAYS_INLINE void setBoxDecorationBackgroundState(BoxDecorationBackgrou ndState s) { m_boxDecorationBackgroundState = s; } 1377 ALWAYS_INLINE void setBoxDecorationBackgroundState(BoxDecorationBackgrou ndState s) { m_boxDecorationBackgroundState = s; }
1370 1378
1371 PaintInvalidationReason fullPaintInvalidationReason() const { return sta tic_cast<PaintInvalidationReason>(m_fullPaintInvalidationReason); } 1379 PaintInvalidationReason fullPaintInvalidationReason() const { return sta tic_cast<PaintInvalidationReason>(m_fullPaintInvalidationReason); }
1372 void setFullPaintInvalidationReason(PaintInvalidationReason reason) { m_ fullPaintInvalidationReason = reason; } 1380 void setFullPaintInvalidationReason(PaintInvalidationReason reason) { m_ fullPaintInvalidationReason = reason; }
1373 }; 1381 };
1374 1382
1375 #undef ADD_BOOLEAN_BITFIELD 1383 #undef ADD_BOOLEAN_BITFIELD
1376 1384
1377 RenderObjectBitfields m_bitfields; 1385 LayoutObjectBitfields m_bitfields;
1378 1386
1379 void setSelfNeedsLayout(bool b) { m_bitfields.setSelfNeedsLayout(b); } 1387 void setSelfNeedsLayout(bool b) { m_bitfields.setSelfNeedsLayout(b); }
1380 void setNeedsPositionedMovementLayout(bool b) { m_bitfields.setNeedsPosition edMovementLayout(b); } 1388 void setNeedsPositionedMovementLayout(bool b) { m_bitfields.setNeedsPosition edMovementLayout(b); }
1381 void setNormalChildNeedsLayout(bool b) { m_bitfields.setNormalChildNeedsLayo ut(b); } 1389 void setNormalChildNeedsLayout(bool b) { m_bitfields.setNormalChildNeedsLayo ut(b); }
1382 void setPosChildNeedsLayout(bool b) { m_bitfields.setPosChildNeedsLayout(b); } 1390 void setPosChildNeedsLayout(bool b) { m_bitfields.setPosChildNeedsLayout(b); }
1383 void setNeedsSimplifiedNormalFlowLayout(bool b) { m_bitfields.setNeedsSimpli fiedNormalFlowLayout(b); } 1391 void setNeedsSimplifiedNormalFlowLayout(bool b) { m_bitfields.setNeedsSimpli fiedNormalFlowLayout(b); }
1384 void setIsDragging(bool b) { m_bitfields.setIsDragging(b); } 1392 void setIsDragging(bool b) { m_bitfields.setIsDragging(b); }
1385 void setEverHadLayout(bool b) { m_bitfields.setEverHadLayout(b); } 1393 void setEverHadLayout(bool b) { m_bitfields.setEverHadLayout(b); }
1386 void setShouldInvalidateOverflowForPaint(bool b) { m_bitfields.setShouldInva lidateOverflowForPaint(b); } 1394 void setShouldInvalidateOverflowForPaint(bool b) { m_bitfields.setShouldInva lidateOverflowForPaint(b); }
1387 void setSelfNeedsOverflowRecalcAfterStyleChange(bool b) { m_bitfields.setSel fNeedsOverflowRecalcAfterStyleChange(b); } 1395 void setSelfNeedsOverflowRecalcAfterStyleChange(bool b) { m_bitfields.setSel fNeedsOverflowRecalcAfterStyleChange(b); }
(...skipping 18 matching lines...) Expand all
1406 WTF_MAKE_NONCOPYABLE(DeprecatedDisableModifyRenderTreeStructureAsserts); 1414 WTF_MAKE_NONCOPYABLE(DeprecatedDisableModifyRenderTreeStructureAsserts);
1407 public: 1415 public:
1408 DeprecatedDisableModifyRenderTreeStructureAsserts(); 1416 DeprecatedDisableModifyRenderTreeStructureAsserts();
1409 1417
1410 static bool canModifyRenderTreeStateInAnyState(); 1418 static bool canModifyRenderTreeStateInAnyState();
1411 1419
1412 private: 1420 private:
1413 TemporaryChange<bool> m_disabler; 1421 TemporaryChange<bool> m_disabler;
1414 }; 1422 };
1415 1423
1416 // Allow equality comparisons of RenderObjects by reference or pointer, intercha ngeably. 1424 // Allow equality comparisons of LayoutObjects by reference or pointer, intercha ngeably.
1417 DEFINE_COMPARISON_OPERATORS_WITH_REFERENCES(RenderObject) 1425 DEFINE_COMPARISON_OPERATORS_WITH_REFERENCES(LayoutObject)
1418 1426
1419 inline bool RenderObject::documentBeingDestroyed() const 1427 inline bool LayoutObject::documentBeingDestroyed() const
1420 { 1428 {
1421 return document().lifecycle().state() >= DocumentLifecycle::Stopping; 1429 return document().lifecycle().state() >= DocumentLifecycle::Stopping;
1422 } 1430 }
1423 1431
1424 inline bool RenderObject::isBeforeContent() const 1432 inline bool LayoutObject::isBeforeContent() const
1425 { 1433 {
1426 if (style()->styleType() != BEFORE) 1434 if (style()->styleType() != BEFORE)
1427 return false; 1435 return false;
1428 // Text nodes don't have their own styles, so ignore the style on a text nod e. 1436 // Text nodes don't have their own styles, so ignore the style on a text nod e.
1429 if (isText() && !isBR()) 1437 if (isText() && !isBR())
1430 return false; 1438 return false;
1431 return true; 1439 return true;
1432 } 1440 }
1433 1441
1434 inline bool RenderObject::isAfterContent() const 1442 inline bool LayoutObject::isAfterContent() const
1435 { 1443 {
1436 if (style()->styleType() != AFTER) 1444 if (style()->styleType() != AFTER)
1437 return false; 1445 return false;
1438 // Text nodes don't have their own styles, so ignore the style on a text nod e. 1446 // Text nodes don't have their own styles, so ignore the style on a text nod e.
1439 if (isText() && !isBR()) 1447 if (isText() && !isBR())
1440 return false; 1448 return false;
1441 return true; 1449 return true;
1442 } 1450 }
1443 1451
1444 inline bool RenderObject::isBeforeOrAfterContent() const 1452 inline bool LayoutObject::isBeforeOrAfterContent() const
1445 { 1453 {
1446 return isBeforeContent() || isAfterContent(); 1454 return isBeforeContent() || isAfterContent();
1447 } 1455 }
1448 1456
1449 // setNeedsLayout() won't cause full paint invalidations as 1457 // setNeedsLayout() won't cause full paint invalidations as
1450 // setNeedsLayoutAndFullPaintInvalidation() does. Otherwise the two methods are identical. 1458 // setNeedsLayoutAndFullPaintInvalidation() does. Otherwise the two methods are identical.
1451 inline void RenderObject::setNeedsLayout(MarkingBehavior markParents, SubtreeLay outScope* layouter) 1459 inline void LayoutObject::setNeedsLayout(MarkingBehavior markParents, SubtreeLay outScope* layouter)
1452 { 1460 {
1453 TRACE_EVENT_INSTANT1( 1461 TRACE_EVENT_INSTANT1(
1454 TRACE_DISABLED_BY_DEFAULT("devtools.timeline.invalidationTracking"), 1462 TRACE_DISABLED_BY_DEFAULT("devtools.timeline.invalidationTracking"),
1455 "LayoutInvalidationTracking", 1463 "LayoutInvalidationTracking",
1456 "data", 1464 "data",
1457 InspectorLayoutInvalidationTrackingEvent::data(this)); 1465 InspectorLayoutInvalidationTrackingEvent::data(this));
1458 ASSERT(!isSetNeedsLayoutForbidden()); 1466 ASSERT(!isSetNeedsLayoutForbidden());
1459 bool alreadyNeededLayout = m_bitfields.selfNeedsLayout(); 1467 bool alreadyNeededLayout = m_bitfields.selfNeedsLayout();
1460 setSelfNeedsLayout(true); 1468 setSelfNeedsLayout(true);
1461 if (!alreadyNeededLayout) { 1469 if (!alreadyNeededLayout) {
1462 if (markParents == MarkContainingBlockChain && (!layouter || layouter->r oot() != this)) 1470 if (markParents == MarkContainingBlockChain && (!layouter || layouter->r oot() != this))
1463 markContainingBlocksForLayout(true, 0, layouter); 1471 markContainingBlocksForLayout(true, 0, layouter);
1464 } 1472 }
1465 } 1473 }
1466 1474
1467 inline void RenderObject::setNeedsLayoutAndFullPaintInvalidation(MarkingBehavior markParents, SubtreeLayoutScope* layouter) 1475 inline void LayoutObject::setNeedsLayoutAndFullPaintInvalidation(MarkingBehavior markParents, SubtreeLayoutScope* layouter)
1468 { 1476 {
1469 setNeedsLayout(markParents, layouter); 1477 setNeedsLayout(markParents, layouter);
1470 setShouldDoFullPaintInvalidation(); 1478 setShouldDoFullPaintInvalidation();
1471 } 1479 }
1472 1480
1473 inline void RenderObject::clearNeedsLayout() 1481 inline void LayoutObject::clearNeedsLayout()
1474 { 1482 {
1475 setNeededLayoutBecauseOfChildren(needsLayoutBecauseOfChildren()); 1483 setNeededLayoutBecauseOfChildren(needsLayoutBecauseOfChildren());
1476 setLayoutDidGetCalledSinceLastFrame(); 1484 setLayoutDidGetCalledSinceLastFrame();
1477 setSelfNeedsLayout(false); 1485 setSelfNeedsLayout(false);
1478 setEverHadLayout(true); 1486 setEverHadLayout(true);
1479 setPosChildNeedsLayout(false); 1487 setPosChildNeedsLayout(false);
1480 setNeedsSimplifiedNormalFlowLayout(false); 1488 setNeedsSimplifiedNormalFlowLayout(false);
1481 setNormalChildNeedsLayout(false); 1489 setNormalChildNeedsLayout(false);
1482 setNeedsPositionedMovementLayout(false); 1490 setNeedsPositionedMovementLayout(false);
1483 setAncestorLineBoxDirty(false); 1491 setAncestorLineBoxDirty(false);
1484 #if ENABLE(ASSERT) 1492 #if ENABLE(ASSERT)
1485 checkBlockPositionedObjectsNeedLayout(); 1493 checkBlockPositionedObjectsNeedLayout();
1486 #endif 1494 #endif
1487 } 1495 }
1488 1496
1489 inline void RenderObject::setChildNeedsLayout(MarkingBehavior markParents, Subtr eeLayoutScope* layouter) 1497 inline void LayoutObject::setChildNeedsLayout(MarkingBehavior markParents, Subtr eeLayoutScope* layouter)
1490 { 1498 {
1491 ASSERT(!isSetNeedsLayoutForbidden()); 1499 ASSERT(!isSetNeedsLayoutForbidden());
1492 bool alreadyNeededLayout = normalChildNeedsLayout(); 1500 bool alreadyNeededLayout = normalChildNeedsLayout();
1493 setNormalChildNeedsLayout(true); 1501 setNormalChildNeedsLayout(true);
1494 // FIXME: Replace MarkOnlyThis with the SubtreeLayoutScope code path and rem ove the MarkingBehavior argument entirely. 1502 // FIXME: Replace MarkOnlyThis with the SubtreeLayoutScope code path and rem ove the MarkingBehavior argument entirely.
1495 if (!alreadyNeededLayout && markParents == MarkContainingBlockChain && (!lay outer || layouter->root() != this)) 1503 if (!alreadyNeededLayout && markParents == MarkContainingBlockChain && (!lay outer || layouter->root() != this))
1496 markContainingBlocksForLayout(true, 0, layouter); 1504 markContainingBlocksForLayout(true, 0, layouter);
1497 } 1505 }
1498 1506
1499 inline void RenderObject::setNeedsPositionedMovementLayout() 1507 inline void LayoutObject::setNeedsPositionedMovementLayout()
1500 { 1508 {
1501 bool alreadyNeededLayout = needsPositionedMovementLayout(); 1509 bool alreadyNeededLayout = needsPositionedMovementLayout();
1502 setNeedsPositionedMovementLayout(true); 1510 setNeedsPositionedMovementLayout(true);
1503 ASSERT(!isSetNeedsLayoutForbidden()); 1511 ASSERT(!isSetNeedsLayoutForbidden());
1504 if (!alreadyNeededLayout) 1512 if (!alreadyNeededLayout)
1505 markContainingBlocksForLayout(); 1513 markContainingBlocksForLayout();
1506 } 1514 }
1507 1515
1508 inline bool RenderObject::preservesNewline() const 1516 inline bool LayoutObject::preservesNewline() const
1509 { 1517 {
1510 if (isSVGInlineText()) 1518 if (isSVGInlineText())
1511 return false; 1519 return false;
1512 1520
1513 return style()->preserveNewline(); 1521 return style()->preserveNewline();
1514 } 1522 }
1515 1523
1516 inline bool RenderObject::layerCreationAllowedForSubtree() const 1524 inline bool LayoutObject::layerCreationAllowedForSubtree() const
1517 { 1525 {
1518 RenderObject* parentRenderer = parent(); 1526 LayoutObject* parentRenderer = parent();
1519 while (parentRenderer) { 1527 while (parentRenderer) {
1520 if (parentRenderer->isSVGHiddenContainer()) 1528 if (parentRenderer->isSVGHiddenContainer())
1521 return false; 1529 return false;
1522 parentRenderer = parentRenderer->parent(); 1530 parentRenderer = parentRenderer->parent();
1523 } 1531 }
1524 1532
1525 return true; 1533 return true;
1526 } 1534 }
1527 1535
1528 inline void RenderObject::setSelectionStateIfNeeded(SelectionState state) 1536 inline void LayoutObject::setSelectionStateIfNeeded(SelectionState state)
1529 { 1537 {
1530 if (selectionState() == state) 1538 if (selectionState() == state)
1531 return; 1539 return;
1532 1540
1533 setSelectionState(state); 1541 setSelectionState(state);
1534 } 1542 }
1535 1543
1536 inline void RenderObject::setHasBoxDecorationBackground(bool b) 1544 inline void LayoutObject::setHasBoxDecorationBackground(bool b)
1537 { 1545 {
1538 if (!b) { 1546 if (!b) {
1539 m_bitfields.setBoxDecorationBackgroundState(NoBoxDecorationBackground); 1547 m_bitfields.setBoxDecorationBackgroundState(NoBoxDecorationBackground);
1540 return; 1548 return;
1541 } 1549 }
1542 if (hasBoxDecorationBackground()) 1550 if (hasBoxDecorationBackground())
1543 return; 1551 return;
1544 m_bitfields.setBoxDecorationBackgroundState(HasBoxDecorationBackgroundObscur ationStatusInvalid); 1552 m_bitfields.setBoxDecorationBackgroundState(HasBoxDecorationBackgroundObscur ationStatusInvalid);
1545 } 1553 }
1546 1554
1547 inline void RenderObject::invalidateBackgroundObscurationStatus() 1555 inline void LayoutObject::invalidateBackgroundObscurationStatus()
1548 { 1556 {
1549 if (!hasBoxDecorationBackground()) 1557 if (!hasBoxDecorationBackground())
1550 return; 1558 return;
1551 m_bitfields.setBoxDecorationBackgroundState(HasBoxDecorationBackgroundObscur ationStatusInvalid); 1559 m_bitfields.setBoxDecorationBackgroundState(HasBoxDecorationBackgroundObscur ationStatusInvalid);
1552 } 1560 }
1553 1561
1554 inline bool RenderObject::boxDecorationBackgroundIsKnownToBeObscured() 1562 inline bool LayoutObject::boxDecorationBackgroundIsKnownToBeObscured()
1555 { 1563 {
1556 if (m_bitfields.boxDecorationBackgroundState() == HasBoxDecorationBackground ObscurationStatusInvalid) { 1564 if (m_bitfields.boxDecorationBackgroundState() == HasBoxDecorationBackground ObscurationStatusInvalid) {
1557 BoxDecorationBackgroundState state = computeBackgroundIsKnownToBeObscure d() ? HasBoxDecorationBackgroundKnownToBeObscured : HasBoxDecorationBackgroundMa yBeVisible; 1565 BoxDecorationBackgroundState state = computeBackgroundIsKnownToBeObscure d() ? HasBoxDecorationBackgroundKnownToBeObscured : HasBoxDecorationBackgroundMa yBeVisible;
1558 m_bitfields.setBoxDecorationBackgroundState(state); 1566 m_bitfields.setBoxDecorationBackgroundState(state);
1559 } 1567 }
1560 return m_bitfields.boxDecorationBackgroundState() == HasBoxDecorationBackgro undKnownToBeObscured; 1568 return m_bitfields.boxDecorationBackgroundState() == HasBoxDecorationBackgro undKnownToBeObscured;
1561 } 1569 }
1562 1570
1563 inline void makeMatrixRenderable(TransformationMatrix& matrix, bool has3DRenderi ng) 1571 inline void makeMatrixRenderable(TransformationMatrix& matrix, bool has3DRenderi ng)
1564 { 1572 {
1565 if (!has3DRendering) 1573 if (!has3DRendering)
1566 matrix.makeAffine(); 1574 matrix.makeAffine();
1567 } 1575 }
1568 1576
1569 inline int adjustForAbsoluteZoom(int value, RenderObject* renderer) 1577 inline int adjustForAbsoluteZoom(int value, LayoutObject* renderer)
1570 { 1578 {
1571 return adjustForAbsoluteZoom(value, renderer->style()); 1579 return adjustForAbsoluteZoom(value, renderer->style());
1572 } 1580 }
1573 1581
1574 inline double adjustDoubleForAbsoluteZoom(double value, RenderObject& renderer) 1582 inline double adjustDoubleForAbsoluteZoom(double value, LayoutObject& renderer)
1575 { 1583 {
1576 ASSERT(renderer.style()); 1584 ASSERT(renderer.style());
1577 return adjustDoubleForAbsoluteZoom(value, *renderer.style()); 1585 return adjustDoubleForAbsoluteZoom(value, *renderer.style());
1578 } 1586 }
1579 1587
1580 inline LayoutUnit adjustLayoutUnitForAbsoluteZoom(LayoutUnit value, RenderObject & renderer) 1588 inline LayoutUnit adjustLayoutUnitForAbsoluteZoom(LayoutUnit value, LayoutObject & renderer)
1581 { 1589 {
1582 ASSERT(renderer.style()); 1590 ASSERT(renderer.style());
1583 return adjustLayoutUnitForAbsoluteZoom(value, *renderer.style()); 1591 return adjustLayoutUnitForAbsoluteZoom(value, *renderer.style());
1584 } 1592 }
1585 1593
1586 inline void adjustFloatQuadForAbsoluteZoom(FloatQuad& quad, RenderObject& render er) 1594 inline void adjustFloatQuadForAbsoluteZoom(FloatQuad& quad, LayoutObject& render er)
1587 { 1595 {
1588 float zoom = renderer.style()->effectiveZoom(); 1596 float zoom = renderer.style()->effectiveZoom();
1589 if (zoom != 1) 1597 if (zoom != 1)
1590 quad.scale(1 / zoom, 1 / zoom); 1598 quad.scale(1 / zoom, 1 / zoom);
1591 } 1599 }
1592 1600
1593 inline void adjustFloatRectForAbsoluteZoom(FloatRect& rect, RenderObject& render er) 1601 inline void adjustFloatRectForAbsoluteZoom(FloatRect& rect, LayoutObject& render er)
1594 { 1602 {
1595 float zoom = renderer.style()->effectiveZoom(); 1603 float zoom = renderer.style()->effectiveZoom();
1596 if (zoom != 1) 1604 if (zoom != 1)
1597 rect.scale(1 / zoom, 1 / zoom); 1605 rect.scale(1 / zoom, 1 / zoom);
1598 } 1606 }
1599 1607
1600 inline double adjustScrollForAbsoluteZoom(double value, RenderObject& renderer) 1608 inline double adjustScrollForAbsoluteZoom(double value, LayoutObject& renderer)
1601 { 1609 {
1602 ASSERT(renderer.style()); 1610 ASSERT(renderer.style());
1603 return adjustScrollForAbsoluteZoom(value, *renderer.style()); 1611 return adjustScrollForAbsoluteZoom(value, *renderer.style());
1604 } 1612 }
1605 1613
1606 #define DEFINE_RENDER_OBJECT_TYPE_CASTS(thisType, predicate) \ 1614 #define DEFINE_LAYOUT_OBJECT_TYPE_CASTS(thisType, predicate) \
1607 DEFINE_TYPE_CASTS(thisType, RenderObject, object, object->predicate, object. predicate) 1615 DEFINE_TYPE_CASTS(thisType, LayoutObject, object, object->predicate, object. predicate)
1608 1616
1609 } // namespace blink 1617 } // namespace blink
1610 1618
1611 #ifndef NDEBUG 1619 #ifndef NDEBUG
1612 // Outside the WebCore namespace for ease of invocation from gdb. 1620 // Outside the WebCore namespace for ease of invocation from gdb.
1613 void showTree(const blink::RenderObject*); 1621 void showTree(const blink::LayoutObject*);
1614 void showLineTree(const blink::RenderObject*); 1622 void showLineTree(const blink::LayoutObject*);
1615 void showRenderTree(const blink::RenderObject* object1); 1623 void showRenderTree(const blink::LayoutObject* object1);
1616 // We don't make object2 an optional parameter so that showRenderTree 1624 // We don't make object2 an optional parameter so that showRenderTree
1617 // can be called from gdb easily. 1625 // can be called from gdb easily.
1618 void showRenderTree(const blink::RenderObject* object1, const blink::RenderObjec t* object2); 1626 void showRenderTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2);
1619 1627
1620 #endif 1628 #endif
1621 1629
1622 #endif // RenderObject_h 1630 #endif // LayoutObject_h
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutLayerModelObject.cpp ('k') | Source/core/layout/LayoutObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698