Commit 7d22acf5 authored by Christian Biesinger's avatar Christian Biesinger Committed by Commit Bot

Simplify ContainingBlock()

Move the |object| declaration closer to where it is used, and
only call IsLayoutScrollbarPart when we actually use the
result.

R=eae@chromium.org

Change-Id: I058572f2f2a05d97a481293db3f901e55a1773b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1509462
Auto-Submit: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: default avatarMorten Stenshorne <mstensho@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#638768}
parent 73d88ee1
...@@ -1128,18 +1128,19 @@ const LayoutBlock* LayoutObject::InclusiveContainingBlock() const { ...@@ -1128,18 +1128,19 @@ const LayoutBlock* LayoutObject::InclusiveContainingBlock() const {
} }
LayoutBlock* LayoutObject::ContainingBlock(AncestorSkipInfo* skip_info) const { LayoutBlock* LayoutObject::ContainingBlock(AncestorSkipInfo* skip_info) const {
LayoutObject* object = Parent();
if (!object && IsLayoutScrollbarPart())
object = ToLayoutScrollbarPart(this)->GetScrollableArea()->GetLayoutBox();
if (!IsTextOrSVGChild()) { if (!IsTextOrSVGChild()) {
if (style_->GetPosition() == EPosition::kFixed) if (style_->GetPosition() == EPosition::kFixed)
return ContainingBlockForFixedPosition(skip_info); return ContainingBlockForFixedPosition(skip_info);
if (style_->GetPosition() == EPosition::kAbsolute) if (style_->GetPosition() == EPosition::kAbsolute)
return ContainingBlockForAbsolutePosition(skip_info); return ContainingBlockForAbsolutePosition(skip_info);
} }
LayoutObject* object;
if (IsColumnSpanAll()) { if (IsColumnSpanAll()) {
object = SpannerPlaceholder()->ContainingBlock(); object = SpannerPlaceholder()->ContainingBlock();
} else { } else {
object = Parent();
if (!object && IsLayoutScrollbarPart())
object = ToLayoutScrollbarPart(this)->GetScrollableArea()->GetLayoutBox();
while (object && ((object->IsInline() && !object->IsAtomicInlineLevel()) || while (object && ((object->IsInline() && !object->IsAtomicInlineLevel()) ||
!object->IsLayoutBlock())) { !object->IsLayoutBlock())) {
if (skip_info) if (skip_info)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment