OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 LayoutRect m_previousContentBoxRect; | 75 LayoutRect m_previousContentBoxRect; |
76 LayoutRect m_previousLayoutOverflowRect; | 76 LayoutRect m_previousLayoutOverflowRect; |
77 | 77 |
78 LayoutUnit m_pageLogicalOffset; | 78 LayoutUnit m_pageLogicalOffset; |
79 }; | 79 }; |
80 | 80 |
81 class CORE_EXPORT LayoutBox : public LayoutBoxModelObject { | 81 class CORE_EXPORT LayoutBox : public LayoutBoxModelObject { |
82 public: | 82 public: |
83 explicit LayoutBox(ContainerNode*); | 83 explicit LayoutBox(ContainerNode*); |
84 | 84 |
85 virtual DeprecatedPaintLayerType layerTypeRequired() const override; | 85 DeprecatedPaintLayerType layerTypeRequired() const override; |
86 | 86 |
87 virtual bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect)
const override; | 87 bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect) const ov
erride; |
88 | 88 |
89 virtual bool backgroundShouldAlwaysBeClipped() const { return false; } | 89 virtual bool backgroundShouldAlwaysBeClipped() const { return false; } |
90 | 90 |
91 // Use this with caution! No type checking is done! | 91 // Use this with caution! No type checking is done! |
92 LayoutBox* firstChildBox() const; | 92 LayoutBox* firstChildBox() const; |
93 LayoutBox* lastChildBox() const; | 93 LayoutBox* lastChildBox() const; |
94 | 94 |
95 int pixelSnappedWidth() const { return m_frameRect.pixelSnappedWidth(); } | 95 int pixelSnappedWidth() const { return m_frameRect.pixelSnappedWidth(); } |
96 int pixelSnappedHeight() const { return m_frameRect.pixelSnappedHeight(); } | 96 int pixelSnappedHeight() const { return m_frameRect.pixelSnappedHeight(); } |
97 | 97 |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 { | 219 { |
220 if (rect == m_frameRect) | 220 if (rect == m_frameRect) |
221 return; | 221 return; |
222 m_frameRect = rect; | 222 m_frameRect = rect; |
223 frameRectChanged(); | 223 frameRectChanged(); |
224 } | 224 } |
225 | 225 |
226 LayoutRect borderBoxRect() const { return LayoutRect(LayoutPoint(), size());
} | 226 LayoutRect borderBoxRect() const { return LayoutRect(LayoutPoint(), size());
} |
227 LayoutRect paddingBoxRect() const { return LayoutRect(borderLeft(), borderTo
p(), clientWidth(), clientHeight()); } | 227 LayoutRect paddingBoxRect() const { return LayoutRect(borderLeft(), borderTo
p(), clientWidth(), clientHeight()); } |
228 IntRect pixelSnappedBorderBoxRect() const { return IntRect(IntPoint(), m_fra
meRect.pixelSnappedSize()); } | 228 IntRect pixelSnappedBorderBoxRect() const { return IntRect(IntPoint(), m_fra
meRect.pixelSnappedSize()); } |
229 virtual IntRect borderBoundingBox() const override final { return pixelSnapp
edBorderBoxRect(); } | 229 IntRect borderBoundingBox() const final { return pixelSnappedBorderBoxRect()
; } |
230 | 230 |
231 // The content area of the box (excludes padding - and intrinsic padding for
table cells, etc... - and border). | 231 // The content area of the box (excludes padding - and intrinsic padding for
table cells, etc... - and border). |
232 LayoutRect contentBoxRect() const { return LayoutRect(borderLeft() + padding
Left(), borderTop() + paddingTop(), contentWidth(), contentHeight()); } | 232 LayoutRect contentBoxRect() const { return LayoutRect(borderLeft() + padding
Left(), borderTop() + paddingTop(), contentWidth(), contentHeight()); } |
233 LayoutSize contentBoxOffset() const { return LayoutSize(borderLeft() + paddi
ngLeft(), borderTop() + paddingTop()); } | 233 LayoutSize contentBoxOffset() const { return LayoutSize(borderLeft() + paddi
ngLeft(), borderTop() + paddingTop()); } |
234 // The content box in absolute coords. Ignores transforms. | 234 // The content box in absolute coords. Ignores transforms. |
235 IntRect absoluteContentBox() const; | 235 IntRect absoluteContentBox() const; |
236 // The offset of the content box in absolute coords, ignoring transforms. | 236 // The offset of the content box in absolute coords, ignoring transforms. |
237 IntSize absoluteContentBoxOffset() const; | 237 IntSize absoluteContentBoxOffset() const; |
238 // The content box converted to absolute coords (taking transforms into acco
unt). | 238 // The content box converted to absolute coords (taking transforms into acco
unt). |
239 FloatQuad absoluteContentQuad() const; | 239 FloatQuad absoluteContentQuad() const; |
240 | 240 |
241 // This returns the content area of the box (excluding padding and border).
The only difference with contentBoxRect is that computedCSSContentBoxRect | 241 // This returns the content area of the box (excluding padding and border).
The only difference with contentBoxRect is that computedCSSContentBoxRect |
242 // does include the intrinsic padding in the content box as this is what som
e callers expect (like getComputedStyle). | 242 // does include the intrinsic padding in the content box as this is what som
e callers expect (like getComputedStyle). |
243 LayoutRect computedCSSContentBoxRect() const { return LayoutRect(borderLeft(
) + computedCSSPaddingLeft(), borderTop() + computedCSSPaddingTop(), clientWidth
() - computedCSSPaddingLeft() - computedCSSPaddingRight(), clientHeight() - comp
utedCSSPaddingTop() - computedCSSPaddingBottom()); } | 243 LayoutRect computedCSSContentBoxRect() const { return LayoutRect(borderLeft(
) + computedCSSPaddingLeft(), borderTop() + computedCSSPaddingTop(), clientWidth
() - computedCSSPaddingLeft() - computedCSSPaddingRight(), clientHeight() - comp
utedCSSPaddingTop() - computedCSSPaddingBottom()); } |
244 | 244 |
245 virtual void addFocusRingRects(Vector<LayoutRect>&, const LayoutPoint& addit
ionalOffset) const override; | 245 void addFocusRingRects(Vector<LayoutRect>&, const LayoutPoint& additionalOff
set) const override; |
246 | 246 |
247 // Use this with caution! No type checking is done! | 247 // Use this with caution! No type checking is done! |
248 LayoutBox* previousSiblingBox() const; | 248 LayoutBox* previousSiblingBox() const; |
249 LayoutBox* previousInFlowSiblingBox() const; | 249 LayoutBox* previousInFlowSiblingBox() const; |
250 LayoutBox* nextSiblingBox() const; | 250 LayoutBox* nextSiblingBox() const; |
251 LayoutBox* nextInFlowSiblingBox() const; | 251 LayoutBox* nextInFlowSiblingBox() const; |
252 LayoutBox* parentBox() const; | 252 LayoutBox* parentBox() const; |
253 | 253 |
254 // Return the previous sibling column set or spanner placeholder. Only to be
used on multicol container children. | 254 // Return the previous sibling column set or spanner placeholder. Only to be
used on multicol container children. |
255 LayoutBox* previousSiblingMultiColumnBox() const; | 255 LayoutBox* previousSiblingMultiColumnBox() const; |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 void updateLayerTransformAfterLayout(); | 291 void updateLayerTransformAfterLayout(); |
292 | 292 |
293 LayoutUnit contentWidth() const { return clientWidth() - paddingLeft() - pad
dingRight(); } | 293 LayoutUnit contentWidth() const { return clientWidth() - paddingLeft() - pad
dingRight(); } |
294 LayoutUnit contentHeight() const { return clientHeight() - paddingTop() - pa
ddingBottom(); } | 294 LayoutUnit contentHeight() const { return clientHeight() - paddingTop() - pa
ddingBottom(); } |
295 LayoutSize contentSize() const { return LayoutSize(contentWidth(), contentHe
ight()); } | 295 LayoutSize contentSize() const { return LayoutSize(contentWidth(), contentHe
ight()); } |
296 LayoutUnit contentLogicalWidth() const { return style()->isHorizontalWriting
Mode() ? contentWidth() : contentHeight(); } | 296 LayoutUnit contentLogicalWidth() const { return style()->isHorizontalWriting
Mode() ? contentWidth() : contentHeight(); } |
297 LayoutUnit contentLogicalHeight() const { return style()->isHorizontalWritin
gMode() ? contentHeight() : contentWidth(); } | 297 LayoutUnit contentLogicalHeight() const { return style()->isHorizontalWritin
gMode() ? contentHeight() : contentWidth(); } |
298 | 298 |
299 // IE extensions. Used to calculate offsetWidth/Height. Overridden by inlin
es (LayoutFlow) | 299 // IE extensions. Used to calculate offsetWidth/Height. Overridden by inlin
es (LayoutFlow) |
300 // to return the remaining width on a given line (and the height of a single
line). | 300 // to return the remaining width on a given line (and the height of a single
line). |
301 virtual LayoutUnit offsetWidth() const override { return m_frameRect.width()
; } | 301 LayoutUnit offsetWidth() const override { return m_frameRect.width(); } |
302 virtual LayoutUnit offsetHeight() const override { return m_frameRect.height
(); } | 302 LayoutUnit offsetHeight() const override { return m_frameRect.height(); } |
303 | 303 |
304 virtual int pixelSnappedOffsetWidth() const override final; | 304 int pixelSnappedOffsetWidth() const final; |
305 virtual int pixelSnappedOffsetHeight() const override final; | 305 int pixelSnappedOffsetHeight() const final; |
306 | 306 |
307 // More IE extensions. clientWidth and clientHeight represent the interior
of an object | 307 // More IE extensions. clientWidth and clientHeight represent the interior
of an object |
308 // excluding border and scrollbar. clientLeft/Top are just the borderLeftWi
dth and borderTopWidth. | 308 // excluding border and scrollbar. clientLeft/Top are just the borderLeftWi
dth and borderTopWidth. |
309 LayoutUnit clientLeft() const { return borderLeft() + (style()->shouldPlaceB
lockDirectionScrollbarOnLogicalLeft() ? verticalScrollbarWidth() : 0); } | 309 LayoutUnit clientLeft() const { return borderLeft() + (style()->shouldPlaceB
lockDirectionScrollbarOnLogicalLeft() ? verticalScrollbarWidth() : 0); } |
310 LayoutUnit clientTop() const { return borderTop(); } | 310 LayoutUnit clientTop() const { return borderTop(); } |
311 LayoutUnit clientWidth() const; | 311 LayoutUnit clientWidth() const; |
312 LayoutUnit clientHeight() const; | 312 LayoutUnit clientHeight() const; |
313 LayoutUnit clientLogicalWidth() const { return style()->isHorizontalWritingM
ode() ? clientWidth() : clientHeight(); } | 313 LayoutUnit clientLogicalWidth() const { return style()->isHorizontalWritingM
ode() ? clientWidth() : clientHeight(); } |
314 LayoutUnit clientLogicalHeight() const { return style()->isHorizontalWriting
Mode() ? clientHeight() : clientWidth(); } | 314 LayoutUnit clientLogicalHeight() const { return style()->isHorizontalWriting
Mode() ? clientHeight() : clientWidth(); } |
315 LayoutUnit clientLogicalBottom() const { return borderBefore() + clientLogic
alHeight(); } | 315 LayoutUnit clientLogicalBottom() const { return borderBefore() + clientLogic
alHeight(); } |
(...skipping 13 matching lines...) Expand all Loading... |
329 virtual LayoutUnit scrollHeight() const; | 329 virtual LayoutUnit scrollHeight() const; |
330 int pixelSnappedScrollWidth() const; | 330 int pixelSnappedScrollWidth() const; |
331 int pixelSnappedScrollHeight() const; | 331 int pixelSnappedScrollHeight() const; |
332 virtual void setScrollLeft(LayoutUnit); | 332 virtual void setScrollLeft(LayoutUnit); |
333 virtual void setScrollTop(LayoutUnit); | 333 virtual void setScrollTop(LayoutUnit); |
334 | 334 |
335 void scrollToOffset(const DoubleSize&, ScrollBehavior = ScrollBehaviorInstan
t); | 335 void scrollToOffset(const DoubleSize&, ScrollBehavior = ScrollBehaviorInstan
t); |
336 void scrollByRecursively(const DoubleSize& delta, ScrollOffsetClamping = Scr
ollOffsetUnclamped); | 336 void scrollByRecursively(const DoubleSize& delta, ScrollOffsetClamping = Scr
ollOffsetUnclamped); |
337 void scrollRectToVisible(const LayoutRect&, const ScrollAlignment& alignX, c
onst ScrollAlignment& alignY); | 337 void scrollRectToVisible(const LayoutRect&, const ScrollAlignment& alignX, c
onst ScrollAlignment& alignY); |
338 | 338 |
339 virtual LayoutRectOutsets marginBoxOutsets() const override { return m_margi
nBoxOutsets; } | 339 LayoutRectOutsets marginBoxOutsets() const override { return m_marginBoxOuts
ets; } |
340 virtual LayoutUnit marginTop() const override { return m_marginBoxOutsets.to
p(); } | 340 LayoutUnit marginTop() const override { return m_marginBoxOutsets.top(); } |
341 virtual LayoutUnit marginBottom() const override { return m_marginBoxOutsets
.bottom(); } | 341 LayoutUnit marginBottom() const override { return m_marginBoxOutsets.bottom(
); } |
342 virtual LayoutUnit marginLeft() const override { return m_marginBoxOutsets.l
eft(); } | 342 LayoutUnit marginLeft() const override { return m_marginBoxOutsets.left(); } |
343 virtual LayoutUnit marginRight() const override { return m_marginBoxOutsets.
right(); } | 343 LayoutUnit marginRight() const override { return m_marginBoxOutsets.right();
} |
344 void setMarginTop(LayoutUnit margin) { m_marginBoxOutsets.setTop(margin); } | 344 void setMarginTop(LayoutUnit margin) { m_marginBoxOutsets.setTop(margin); } |
345 void setMarginBottom(LayoutUnit margin) { m_marginBoxOutsets.setBottom(margi
n); } | 345 void setMarginBottom(LayoutUnit margin) { m_marginBoxOutsets.setBottom(margi
n); } |
346 void setMarginLeft(LayoutUnit margin) { m_marginBoxOutsets.setLeft(margin);
} | 346 void setMarginLeft(LayoutUnit margin) { m_marginBoxOutsets.setLeft(margin);
} |
347 void setMarginRight(LayoutUnit margin) { m_marginBoxOutsets.setRight(margin)
; } | 347 void setMarginRight(LayoutUnit margin) { m_marginBoxOutsets.setRight(margin)
; } |
348 | 348 |
349 LayoutUnit marginLogicalLeft() const { return m_marginBoxOutsets.logicalLeft
(style()->writingMode()); } | 349 LayoutUnit marginLogicalLeft() const { return m_marginBoxOutsets.logicalLeft
(style()->writingMode()); } |
350 LayoutUnit marginLogicalRight() const { return m_marginBoxOutsets.logicalRig
ht(style()->writingMode()); } | 350 LayoutUnit marginLogicalRight() const { return m_marginBoxOutsets.logicalRig
ht(style()->writingMode()); } |
351 | 351 |
352 virtual LayoutUnit marginBefore(const ComputedStyle* overrideStyle = nullptr
) const override final { return m_marginBoxOutsets.before((overrideStyle ? overr
ideStyle : style())->writingMode()); } | 352 LayoutUnit marginBefore(const ComputedStyle* overrideStyle = nullptr) const
final { return m_marginBoxOutsets.before((overrideStyle ? overrideStyle : style(
))->writingMode()); } |
353 virtual LayoutUnit marginAfter(const ComputedStyle* overrideStyle = nullptr)
const override final { return m_marginBoxOutsets.after((overrideStyle ? overrid
eStyle : style())->writingMode()); } | 353 LayoutUnit marginAfter(const ComputedStyle* overrideStyle = nullptr) const f
inal { return m_marginBoxOutsets.after((overrideStyle ? overrideStyle : style())
->writingMode()); } |
354 virtual LayoutUnit marginStart(const ComputedStyle* overrideStyle = nullptr)
const override final | 354 LayoutUnit marginStart(const ComputedStyle* overrideStyle = nullptr) const f
inal |
355 { | 355 { |
356 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style(
); | 356 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style(
); |
357 return m_marginBoxOutsets.start(styleToUse->writingMode(), styleToUse->d
irection()); | 357 return m_marginBoxOutsets.start(styleToUse->writingMode(), styleToUse->d
irection()); |
358 } | 358 } |
359 virtual LayoutUnit marginEnd(const ComputedStyle* overrideStyle = nullptr) c
onst override final | 359 LayoutUnit marginEnd(const ComputedStyle* overrideStyle = nullptr) const fin
al |
360 { | 360 { |
361 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style(
); | 361 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style(
); |
362 return m_marginBoxOutsets.end(styleToUse->writingMode(), styleToUse->dir
ection()); | 362 return m_marginBoxOutsets.end(styleToUse->writingMode(), styleToUse->dir
ection()); |
363 } | 363 } |
364 void setMarginBefore(LayoutUnit value, const ComputedStyle* overrideStyle =
nullptr) { m_marginBoxOutsets.setBefore((overrideStyle ? overrideStyle : style()
)->writingMode(), value); } | 364 void setMarginBefore(LayoutUnit value, const ComputedStyle* overrideStyle =
nullptr) { m_marginBoxOutsets.setBefore((overrideStyle ? overrideStyle : style()
)->writingMode(), value); } |
365 void setMarginAfter(LayoutUnit value, const ComputedStyle* overrideStyle = n
ullptr) { m_marginBoxOutsets.setAfter((overrideStyle ? overrideStyle : style())-
>writingMode(), value); } | 365 void setMarginAfter(LayoutUnit value, const ComputedStyle* overrideStyle = n
ullptr) { m_marginBoxOutsets.setAfter((overrideStyle ? overrideStyle : style())-
>writingMode(), value); } |
366 void setMarginStart(LayoutUnit value, const ComputedStyle* overrideStyle = n
ullptr) | 366 void setMarginStart(LayoutUnit value, const ComputedStyle* overrideStyle = n
ullptr) |
367 { | 367 { |
368 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style(
); | 368 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style(
); |
369 m_marginBoxOutsets.setStart(styleToUse->writingMode(), styleToUse->direc
tion(), value); | 369 m_marginBoxOutsets.setStart(styleToUse->writingMode(), styleToUse->direc
tion(), value); |
370 } | 370 } |
371 void setMarginEnd(LayoutUnit value, const ComputedStyle* overrideStyle = nul
lptr) | 371 void setMarginEnd(LayoutUnit value, const ComputedStyle* overrideStyle = nul
lptr) |
372 { | 372 { |
373 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style(
); | 373 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style(
); |
374 m_marginBoxOutsets.setEnd(styleToUse->writingMode(), styleToUse->directi
on(), value); | 374 m_marginBoxOutsets.setEnd(styleToUse->writingMode(), styleToUse->directi
on(), value); |
375 } | 375 } |
376 | 376 |
377 // The following functions are used to implement collapsing margins. | 377 // The following functions are used to implement collapsing margins. |
378 // All objects know their maximal positive and negative margins. The | 378 // All objects know their maximal positive and negative margins. The |
379 // formula for computing a collapsed margin is |maxPosMargin| - |maxNegmargi
n|. | 379 // formula for computing a collapsed margin is |maxPosMargin| - |maxNegmargi
n|. |
380 // For a non-collapsing box, such as a leaf element, this formula will simpl
y return | 380 // For a non-collapsing box, such as a leaf element, this formula will simpl
y return |
381 // the margin of the element. Blocks override the maxMarginBefore and maxMa
rginAfter | 381 // the margin of the element. Blocks override the maxMarginBefore and maxMa
rginAfter |
382 // methods. | 382 // methods. |
383 virtual bool isSelfCollapsingBlock() const { return false; } | 383 virtual bool isSelfCollapsingBlock() const { return false; } |
384 virtual LayoutUnit collapsedMarginBefore() const { return marginBefore(); } | 384 virtual LayoutUnit collapsedMarginBefore() const { return marginBefore(); } |
385 virtual LayoutUnit collapsedMarginAfter() const { return marginAfter(); } | 385 virtual LayoutUnit collapsedMarginAfter() const { return marginAfter(); } |
386 LayoutRectOutsets collapsedMarginBoxLogicalOutsets() const { return LayoutRe
ctOutsets(collapsedMarginBefore(), 0, collapsedMarginAfter(), 0); } | 386 LayoutRectOutsets collapsedMarginBoxLogicalOutsets() const { return LayoutRe
ctOutsets(collapsedMarginBefore(), 0, collapsedMarginAfter(), 0); } |
387 | 387 |
388 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedO
ffset) const override; | 388 void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) c
onst override; |
389 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const overrid
e; | 389 void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override; |
390 | 390 |
391 int reflectionOffset() const; | 391 int reflectionOffset() const; |
392 // Given a rect in the object's coordinate space, returns the corresponding
rect in the reflection. | 392 // Given a rect in the object's coordinate space, returns the corresponding
rect in the reflection. |
393 LayoutRect reflectedRect(const LayoutRect&) const; | 393 LayoutRect reflectedRect(const LayoutRect&) const; |
394 | 394 |
395 virtual void layout() override; | 395 void layout() override; |
396 virtual void paint(const PaintInfo&, const LayoutPoint&) override; | 396 void paint(const PaintInfo&, const LayoutPoint&) override; |
397 virtual bool nodeAtPoint(HitTestResult&, const HitTestLocation& locationInCo
ntainer, const LayoutPoint& accumulatedOffset, HitTestAction) override; | 397 bool nodeAtPoint(HitTestResult&, const HitTestLocation& locationInContainer,
const LayoutPoint& accumulatedOffset, HitTestAction) override; |
398 | 398 |
399 virtual LayoutUnit minPreferredLogicalWidth() const override; | 399 LayoutUnit minPreferredLogicalWidth() const override; |
400 virtual LayoutUnit maxPreferredLogicalWidth() const override; | 400 LayoutUnit maxPreferredLogicalWidth() const override; |
401 | 401 |
402 // FIXME: We should rename these back to overrideLogicalHeight/Width and hav
e them store | 402 // FIXME: We should rename these back to overrideLogicalHeight/Width and hav
e them store |
403 // the border-box height/width like the regular height/width accessors on La
youtBox. | 403 // the border-box height/width like the regular height/width accessors on La
youtBox. |
404 // Right now, these are different than contentHeight/contentWidth because th
ey still | 404 // Right now, these are different than contentHeight/contentWidth because th
ey still |
405 // include the scrollbar height/width. | 405 // include the scrollbar height/width. |
406 LayoutUnit overrideLogicalContentWidth() const; | 406 LayoutUnit overrideLogicalContentWidth() const; |
407 LayoutUnit overrideLogicalContentHeight() const; | 407 LayoutUnit overrideLogicalContentHeight() const; |
408 bool hasOverrideLogicalContentHeight() const; | 408 bool hasOverrideLogicalContentHeight() const; |
409 bool hasOverrideLogicalContentWidth() const; | 409 bool hasOverrideLogicalContentWidth() const; |
410 void setOverrideLogicalContentHeight(LayoutUnit); | 410 void setOverrideLogicalContentHeight(LayoutUnit); |
(...skipping 10 matching lines...) Expand all Loading... |
421 void setOverrideContainingBlockContentLogicalHeight(LayoutUnit); | 421 void setOverrideContainingBlockContentLogicalHeight(LayoutUnit); |
422 void clearContainingBlockOverrideSize(); | 422 void clearContainingBlockOverrideSize(); |
423 void clearOverrideContainingBlockContentLogicalHeight(); | 423 void clearOverrideContainingBlockContentLogicalHeight(); |
424 | 424 |
425 LayoutUnit extraInlineOffset() const; | 425 LayoutUnit extraInlineOffset() const; |
426 LayoutUnit extraBlockOffset() const; | 426 LayoutUnit extraBlockOffset() const; |
427 void setExtraInlineOffset(LayoutUnit inlineOffest); | 427 void setExtraInlineOffset(LayoutUnit inlineOffest); |
428 void setExtraBlockOffset(LayoutUnit blockOffest); | 428 void setExtraBlockOffset(LayoutUnit blockOffest); |
429 void clearExtraInlineAndBlockOffests(); | 429 void clearExtraInlineAndBlockOffests(); |
430 | 430 |
431 virtual LayoutSize offsetFromContainer(const LayoutObject*, const LayoutPoin
t&, bool* offsetDependsOnPoint = nullptr) const override; | 431 LayoutSize offsetFromContainer(const LayoutObject*, const LayoutPoint&, bool
* offsetDependsOnPoint = nullptr) const override; |
432 | 432 |
433 LayoutUnit adjustBorderBoxLogicalWidthForBoxSizing(LayoutUnit width) const; | 433 LayoutUnit adjustBorderBoxLogicalWidthForBoxSizing(LayoutUnit width) const; |
434 LayoutUnit adjustBorderBoxLogicalHeightForBoxSizing(LayoutUnit height) const
; | 434 LayoutUnit adjustBorderBoxLogicalHeightForBoxSizing(LayoutUnit height) const
; |
435 LayoutUnit adjustContentBoxLogicalWidthForBoxSizing(LayoutUnit width) const; | 435 LayoutUnit adjustContentBoxLogicalWidthForBoxSizing(LayoutUnit width) const; |
436 LayoutUnit adjustContentBoxLogicalHeightForBoxSizing(LayoutUnit height) cons
t; | 436 LayoutUnit adjustContentBoxLogicalHeightForBoxSizing(LayoutUnit height) cons
t; |
437 | 437 |
438 struct ComputedMarginValues { | 438 struct ComputedMarginValues { |
439 ComputedMarginValues() { } | 439 ComputedMarginValues() { } |
440 | 440 |
441 LayoutUnit m_before; | 441 LayoutUnit m_before; |
(...skipping 30 matching lines...) Expand all Loading... |
472 | 472 |
473 // For inline replaced elements, this function returns the inline box that o
wns us. Enables | 473 // For inline replaced elements, this function returns the inline box that o
wns us. Enables |
474 // the replaced LayoutObject to quickly determine what line it is contained
on and to easily | 474 // the replaced LayoutObject to quickly determine what line it is contained
on and to easily |
475 // iterate over structures on the line. | 475 // iterate over structures on the line. |
476 InlineBox* inlineBoxWrapper() const { return m_rareData ? m_rareData->m_inli
neBoxWrapper : 0; } | 476 InlineBox* inlineBoxWrapper() const { return m_rareData ? m_rareData->m_inli
neBoxWrapper : 0; } |
477 void setInlineBoxWrapper(InlineBox*); | 477 void setInlineBoxWrapper(InlineBox*); |
478 void deleteLineBoxWrapper(); | 478 void deleteLineBoxWrapper(); |
479 | 479 |
480 void setSpannerPlaceholder(LayoutMultiColumnSpannerPlaceholder&); | 480 void setSpannerPlaceholder(LayoutMultiColumnSpannerPlaceholder&); |
481 void clearSpannerPlaceholder(); | 481 void clearSpannerPlaceholder(); |
482 virtual LayoutMultiColumnSpannerPlaceholder* spannerPlaceholder() const fina
l { return m_rareData ? m_rareData->m_spannerPlaceholder : 0; } | 482 LayoutMultiColumnSpannerPlaceholder* spannerPlaceholder() const final { retu
rn m_rareData ? m_rareData->m_spannerPlaceholder : 0; } |
483 | 483 |
484 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutBoxMo
delObject* paintInvalidationContainer, const PaintInvalidationState* = nullptr)
const override; | 484 LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutBoxModelObjec
t* paintInvalidationContainer, const PaintInvalidationState* = nullptr) const ov
erride; |
485 virtual void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* p
aintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const ove
rride; | 485 void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* paintInva
lidationContainer, LayoutRect&, const PaintInvalidationState*) const override; |
486 virtual void invalidatePaintForOverhangingFloats(bool paintAllDescendants); | 486 virtual void invalidatePaintForOverhangingFloats(bool paintAllDescendants); |
487 | 487 |
488 LayoutUnit containingBlockLogicalHeightForGetComputedStyle() const; | 488 LayoutUnit containingBlockLogicalHeightForGetComputedStyle() const; |
489 | 489 |
490 virtual LayoutUnit containingBlockLogicalWidthForContent() const override; | 490 LayoutUnit containingBlockLogicalWidthForContent() const override; |
491 LayoutUnit containingBlockLogicalHeightForContent(AvailableLogicalHeightType
) const; | 491 LayoutUnit containingBlockLogicalHeightForContent(AvailableLogicalHeightType
) const; |
492 | 492 |
493 LayoutUnit containingBlockAvailableLineWidth() const; | 493 LayoutUnit containingBlockAvailableLineWidth() const; |
494 LayoutUnit perpendicularContainingBlockLogicalHeight() const; | 494 LayoutUnit perpendicularContainingBlockLogicalHeight() const; |
495 | 495 |
496 virtual void updateLogicalWidth(); | 496 virtual void updateLogicalWidth(); |
497 void updateLogicalHeight(); | 497 void updateLogicalHeight(); |
498 virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logic
alTop, LogicalExtentComputedValues&) const; | 498 virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logic
alTop, LogicalExtentComputedValues&) const; |
499 // This function will compute the logical border-box height, without laying
out the box. This means that the result | 499 // This function will compute the logical border-box height, without laying
out the box. This means that the result |
500 // is only "correct" when the height is explicitly specified. This function
exists so that intrinsic width calculations | 500 // is only "correct" when the height is explicitly specified. This function
exists so that intrinsic width calculations |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
572 virtual bool scrollsOverflowY() const { return hasOverflowClip() && (style()
->overflowY() == OSCROLL || hasAutoVerticalScrollbar()); } | 572 virtual bool scrollsOverflowY() const { return hasOverflowClip() && (style()
->overflowY() == OSCROLL || hasAutoVerticalScrollbar()); } |
573 bool usesCompositedScrolling() const; | 573 bool usesCompositedScrolling() const; |
574 | 574 |
575 // Elements such as the <input> field override this to specify that they are
scrollable | 575 // Elements such as the <input> field override this to specify that they are
scrollable |
576 // outside the context of the CSS overflow style | 576 // outside the context of the CSS overflow style |
577 virtual bool isIntrinsicallyScrollable(ScrollbarOrientation orientation) con
st { return false; } | 577 virtual bool isIntrinsicallyScrollable(ScrollbarOrientation orientation) con
st { return false; } |
578 | 578 |
579 bool hasUnsplittableScrollingOverflow() const; | 579 bool hasUnsplittableScrollingOverflow() const; |
580 bool isUnsplittableForPagination() const; | 580 bool isUnsplittableForPagination() const; |
581 | 581 |
582 virtual LayoutRect localCaretRect(InlineBox*, int caretOffset, LayoutUnit* e
xtraWidthToEndOfLine = nullptr) override; | 582 LayoutRect localCaretRect(InlineBox*, int caretOffset, LayoutUnit* extraWidt
hToEndOfLine = nullptr) override; |
583 | 583 |
584 virtual LayoutRect overflowClipRect(const LayoutPoint& location, OverlayScro
llbarSizeRelevancy = IgnoreOverlayScrollbarSize) const; | 584 virtual LayoutRect overflowClipRect(const LayoutPoint& location, OverlayScro
llbarSizeRelevancy = IgnoreOverlayScrollbarSize) const; |
585 LayoutRect clipRect(const LayoutPoint& location); | 585 LayoutRect clipRect(const LayoutPoint& location); |
586 virtual bool hasControlClip() const { return false; } | 586 virtual bool hasControlClip() const { return false; } |
587 virtual LayoutRect controlClipRect(const LayoutPoint&) const { return Layout
Rect(); } | 587 virtual LayoutRect controlClipRect(const LayoutPoint&) const { return Layout
Rect(); } |
588 | 588 |
589 virtual void paintBoxDecorationBackground(const PaintInfo&, const LayoutPoin
t&); | 589 virtual void paintBoxDecorationBackground(const PaintInfo&, const LayoutPoin
t&); |
590 virtual void paintMask(const PaintInfo&, const LayoutPoint&); | 590 virtual void paintMask(const PaintInfo&, const LayoutPoint&); |
591 virtual void imageChanged(WrappedImagePtr, const IntRect* = nullptr) overrid
e; | 591 void imageChanged(WrappedImagePtr, const IntRect* = nullptr) override; |
592 | 592 |
593 void logicalExtentAfterUpdatingLogicalWidth(const LayoutUnit& logicalTop, Lo
gicalExtentComputedValues&); | 593 void logicalExtentAfterUpdatingLogicalWidth(const LayoutUnit& logicalTop, Lo
gicalExtentComputedValues&); |
594 | 594 |
595 virtual PositionWithAffinity positionForPoint(const LayoutPoint&) override; | 595 PositionWithAffinity positionForPoint(const LayoutPoint&) override; |
596 | 596 |
597 void removeFloatingOrPositionedChildFromBlockLists(); | 597 void removeFloatingOrPositionedChildFromBlockLists(); |
598 | 598 |
599 DeprecatedPaintLayer* enclosingFloatPaintingLayer() const; | 599 DeprecatedPaintLayer* enclosingFloatPaintingLayer() const; |
600 | 600 |
601 virtual int firstLineBoxBaseline() const { return -1; } | 601 virtual int firstLineBoxBaseline() const { return -1; } |
602 virtual int inlineBlockBaseline(LineDirectionMode) const { return -1; } // R
eturns -1 if we should skip this box when computing the baseline of an inline-bl
ock. | 602 virtual int inlineBlockBaseline(LineDirectionMode) const { return -1; } // R
eturns -1 if we should skip this box when computing the baseline of an inline-bl
ock. |
603 | 603 |
604 bool shrinkToAvoidFloats() const; | 604 bool shrinkToAvoidFloats() const; |
605 virtual bool avoidsFloats() const; | 605 virtual bool avoidsFloats() const; |
606 | 606 |
607 virtual void markForPaginationRelayoutIfNeeded(SubtreeLayoutScope&); | 607 virtual void markForPaginationRelayoutIfNeeded(SubtreeLayoutScope&); |
608 | 608 |
609 bool isWritingModeRoot() const { return !parent() || parent()->style()->writ
ingMode() != style()->writingMode(); } | 609 bool isWritingModeRoot() const { return !parent() || parent()->style()->writ
ingMode() != style()->writingMode(); } |
610 | 610 |
611 bool isDeprecatedFlexItem() const { return !isInline() && !isFloatingOrOutOf
FlowPositioned() && parent() && parent()->isDeprecatedFlexibleBox(); } | 611 bool isDeprecatedFlexItem() const { return !isInline() && !isFloatingOrOutOf
FlowPositioned() && parent() && parent()->isDeprecatedFlexibleBox(); } |
612 bool isFlexItemIncludingDeprecated() const { return !isInline() && !isFloati
ngOrOutOfFlowPositioned() && parent() && parent()->isFlexibleBoxIncludingDepreca
ted(); } | 612 bool isFlexItemIncludingDeprecated() const { return !isInline() && !isFloati
ngOrOutOfFlowPositioned() && parent() && parent()->isFlexibleBoxIncludingDepreca
ted(); } |
613 | 613 |
614 bool isGridItem() const { return parent() && parent()->isLayoutGrid(); } | 614 bool isGridItem() const { return parent() && parent()->isLayoutGrid(); } |
615 | 615 |
616 virtual LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositio
nMode = PositionOnContainingLine) const override; | 616 LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositionMode =
PositionOnContainingLine) const override; |
617 virtual int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode
, LinePositionMode = PositionOnContainingLine) const override; | 617 int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePo
sitionMode = PositionOnContainingLine) const override; |
618 | 618 |
619 virtual LayoutUnit offsetLeft() const override; | 619 LayoutUnit offsetLeft() const override; |
620 virtual LayoutUnit offsetTop() const override; | 620 LayoutUnit offsetTop() const override; |
621 | 621 |
622 LayoutPoint flipForWritingModeForChild(const LayoutBox* child, const LayoutP
oint&) const; | 622 LayoutPoint flipForWritingModeForChild(const LayoutBox* child, const LayoutP
oint&) const; |
623 LayoutUnit flipForWritingMode(LayoutUnit position) const WARN_UNUSED_RETURN
{ | 623 LayoutUnit flipForWritingMode(LayoutUnit position) const WARN_UNUSED_RETURN
{ |
624 // The offset is in the block direction (y for horizontal writing modes,
x for vertical writing modes). | 624 // The offset is in the block direction (y for horizontal writing modes,
x for vertical writing modes). |
625 if (!UNLIKELY(hasFlippedBlocksWritingMode())) | 625 if (!UNLIKELY(hasFlippedBlocksWritingMode())) |
626 return position; | 626 return position; |
627 return logicalHeight() - position; | 627 return logicalHeight() - position; |
628 } | 628 } |
629 LayoutPoint flipForWritingMode(const LayoutPoint& position) const WARN_UNUSE
D_RETURN { | 629 LayoutPoint flipForWritingMode(const LayoutPoint& position) const WARN_UNUSE
D_RETURN { |
630 if (!UNLIKELY(hasFlippedBlocksWritingMode())) | 630 if (!UNLIKELY(hasFlippedBlocksWritingMode())) |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
715 { | 715 { |
716 if (isFloating()) | 716 if (isFloating()) |
717 removeFloatingOrPositionedChildFromBlockLists(); | 717 removeFloatingOrPositionedChildFromBlockLists(); |
718 } | 718 } |
719 | 719 |
720 void setIntrinsicContentLogicalHeight(LayoutUnit intrinsicContentLogicalHeig
ht) const { m_intrinsicContentLogicalHeight = intrinsicContentLogicalHeight; } | 720 void setIntrinsicContentLogicalHeight(LayoutUnit intrinsicContentLogicalHeig
ht) const { m_intrinsicContentLogicalHeight = intrinsicContentLogicalHeight; } |
721 | 721 |
722 bool canRenderBorderImage() const; | 722 bool canRenderBorderImage() const; |
723 | 723 |
724 protected: | 724 protected: |
725 virtual void willBeDestroyed() override; | 725 void willBeDestroyed() override; |
726 | 726 |
727 virtual void styleWillChange(StyleDifference, const ComputedStyle& newStyle)
override; | 727 void styleWillChange(StyleDifference, const ComputedStyle& newStyle) overrid
e; |
728 virtual void styleDidChange(StyleDifference, const ComputedStyle* oldStyle)
override; | 728 void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override
; |
729 virtual void updateFromStyle() override; | 729 void updateFromStyle() override; |
730 | 730 |
731 // Returns false if it could not cheaply compute the extent (e.g. fixed back
ground), in which case the returned rect may be incorrect. | 731 // Returns false if it could not cheaply compute the extent (e.g. fixed back
ground), in which case the returned rect may be incorrect. |
732 // FIXME: make this a const method once the LayoutBox reference in BoxPainte
r is const. | 732 // FIXME: make this a const method once the LayoutBox reference in BoxPainte
r is const. |
733 bool getBackgroundPaintedExtent(LayoutRect&); | 733 bool getBackgroundPaintedExtent(LayoutRect&); |
734 virtual bool foregroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect,
unsigned maxDepthToTest) const; | 734 virtual bool foregroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect,
unsigned maxDepthToTest) const; |
735 virtual bool computeBackgroundIsKnownToBeObscured() override; | 735 bool computeBackgroundIsKnownToBeObscured() override; |
736 | 736 |
737 void computePositionedLogicalWidth(LogicalExtentComputedValues&) const; | 737 void computePositionedLogicalWidth(LogicalExtentComputedValues&) const; |
738 | 738 |
739 LayoutUnit computeIntrinsicLogicalWidthUsing(const Length& logicalWidthLengt
h, LayoutUnit availableLogicalWidth, LayoutUnit borderAndPadding) const; | 739 LayoutUnit computeIntrinsicLogicalWidthUsing(const Length& logicalWidthLengt
h, LayoutUnit availableLogicalWidth, LayoutUnit borderAndPadding) const; |
740 LayoutUnit computeIntrinsicLogicalContentHeightUsing(const Length& logicalHe
ightLength, LayoutUnit intrinsicContentHeight, LayoutUnit borderAndPadding) cons
t; | 740 LayoutUnit computeIntrinsicLogicalContentHeightUsing(const Length& logicalHe
ightLength, LayoutUnit intrinsicContentHeight, LayoutUnit borderAndPadding) cons
t; |
741 | 741 |
742 virtual bool shouldComputeSizeAsReplaced() const { return isReplaced() && !i
sInlineBlockOrInlineTable(); } | 742 virtual bool shouldComputeSizeAsReplaced() const { return isReplaced() && !i
sInlineBlockOrInlineTable(); } |
743 | 743 |
744 virtual void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidati
onContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wa
sFixed = nullptr, const PaintInvalidationState* = nullptr) const override; | 744 void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidationContai
ner, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed =
nullptr, const PaintInvalidationState* = nullptr) const override; |
745 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c
onst override; | 745 void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const ove
rride; |
746 | 746 |
747 LayoutObject* splitAnonymousBoxesAroundChild(LayoutObject* beforeChild); | 747 LayoutObject* splitAnonymousBoxesAroundChild(LayoutObject* beforeChild); |
748 | 748 |
749 virtual void addLayerHitTestRects(LayerHitTestRects&, const DeprecatedPaintL
ayer* currentCompositedLayer, const LayoutPoint& layerOffset, const LayoutRect&
containerRect) const override; | 749 void addLayerHitTestRects(LayerHitTestRects&, const DeprecatedPaintLayer* cu
rrentCompositedLayer, const LayoutPoint& layerOffset, const LayoutRect& containe
rRect) const override; |
750 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint&
layerOffset) const override; | 750 void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOf
fset) const override; |
751 | 751 |
752 virtual PaintInvalidationReason paintInvalidationReason(const LayoutBoxModel
Object& paintInvalidationContainer, | 752 PaintInvalidationReason paintInvalidationReason(const LayoutBoxModelObject&
paintInvalidationContainer, |
753 const LayoutRect& oldBounds, const LayoutPoint& oldPositionFromPaintInva
lidationContainer, | 753 const LayoutRect& oldBounds, const LayoutPoint& oldPositionFromPaintInva
lidationContainer, |
754 const LayoutRect& newBounds, const LayoutPoint& newPositionFromPaintInva
lidationContainer) const override; | 754 const LayoutRect& newBounds, const LayoutPoint& newPositionFromPaintInva
lidationContainer) const override; |
755 virtual void incrementallyInvalidatePaint(const LayoutBoxModelObject& paintI
nvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds,
const LayoutPoint& positionFromPaintInvalidationContainer) override; | 755 void incrementallyInvalidatePaint(const LayoutBoxModelObject& paintInvalidat
ionContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds, const La
youtPoint& positionFromPaintInvalidationContainer) override; |
756 | 756 |
757 virtual void clearPaintInvalidationState(const PaintInvalidationState&) over
ride; | 757 void clearPaintInvalidationState(const PaintInvalidationState&) override; |
758 #if ENABLE(ASSERT) | 758 #if ENABLE(ASSERT) |
759 virtual bool paintInvalidationStateIsDirty() const override; | 759 bool paintInvalidationStateIsDirty() const override; |
760 #endif | 760 #endif |
761 | 761 |
762 virtual PaintInvalidationReason invalidatePaintIfNeeded(PaintInvalidationSta
te&, const LayoutBoxModelObject& newPaintInvalidationContainer) override; | 762 PaintInvalidationReason invalidatePaintIfNeeded(PaintInvalidationState&, con
st LayoutBoxModelObject& newPaintInvalidationContainer) override; |
763 | 763 |
764 virtual bool hasNonCompositedScrollbars() const override final; | 764 bool hasNonCompositedScrollbars() const final; |
765 | 765 |
766 private: | 766 private: |
767 bool mustInvalidateBackgroundOrBorderPaintOnHeightChange() const; | 767 bool mustInvalidateBackgroundOrBorderPaintOnHeightChange() const; |
768 bool mustInvalidateBackgroundOrBorderPaintOnWidthChange() const; | 768 bool mustInvalidateBackgroundOrBorderPaintOnWidthChange() const; |
769 inline bool mustInvalidateFillLayersPaintOnWidthChange(const FillLayer&) con
st; | 769 inline bool mustInvalidateFillLayersPaintOnWidthChange(const FillLayer&) con
st; |
770 | 770 |
771 void invalidatePaintRectClippedByOldAndNewBounds(const LayoutBoxModelObject&
paintInvalidationContainer, const LayoutRect&, const LayoutRect& oldBounds, con
st LayoutRect& newBounds); | 771 void invalidatePaintRectClippedByOldAndNewBounds(const LayoutBoxModelObject&
paintInvalidationContainer, const LayoutRect&, const LayoutRect& oldBounds, con
st LayoutRect& newBounds); |
772 | 772 |
773 void updateShapeOutsideInfoAfterStyleChange(const ComputedStyle&, const Comp
utedStyle* oldStyle); | 773 void updateShapeOutsideInfoAfterStyleChange(const ComputedStyle&, const Comp
utedStyle* oldStyle); |
774 void updateGridPositionAfterStyleChange(const ComputedStyle*); | 774 void updateGridPositionAfterStyleChange(const ComputedStyle*); |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
928 if (UNLIKELY(inlineBoxWrapper() != nullptr)) | 928 if (UNLIKELY(inlineBoxWrapper() != nullptr)) |
929 deleteLineBoxWrapper(); | 929 deleteLineBoxWrapper(); |
930 } | 930 } |
931 | 931 |
932 ensureRareData().m_inlineBoxWrapper = boxWrapper; | 932 ensureRareData().m_inlineBoxWrapper = boxWrapper; |
933 } | 933 } |
934 | 934 |
935 } // namespace blink | 935 } // namespace blink |
936 | 936 |
937 #endif // LayoutBox_h | 937 #endif // LayoutBox_h |
OLD | NEW |