Commit f0a103c4 authored by Yoshifumi Inoue's avatar Yoshifumi Inoue Committed by Commit Bot

[FragmentItem] Utilize LayoutText::FirstLineBoxTopLeft() in NGInlineCursor

This patch changes |LayoutText::FirstLineBoxTopLeft()| to use |NGInlineCursor|
for prepration of migrating |NGFragmentItem|.

Bug: 982194
Change-Id: I37d5f298056f4141de824f8eee38e88cbd49721b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2021566
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: default avatarKoji Ishii <kojii@chromium.org>
Reviewed-by: default avatarKent Tamura <tkent@chromium.org>
Auto-Submit: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735770}
parent c0786251
......@@ -1624,12 +1624,14 @@ UChar32 LayoutText::LastCharacterAfterWhitespaceCollapsing() const {
}
PhysicalOffset LayoutText::FirstLineBoxTopLeft() const {
if (const NGPaintFragment* fragment = FirstInlineFragment()) {
if (IsInLayoutNGInlineFormattingContext()) {
// TODO(kojii): Some clients call this against dirty-tree, but NG fragments
// are not safe to read for dirty-tree. crbug.com/963103
if (UNLIKELY(!IsFirstInlineFragmentSafe()))
return PhysicalOffset();
return fragment->InlineOffsetToContainerBox();
NGInlineCursor cursor;
cursor.MoveTo(*this);
return cursor ? cursor.CurrentOffset() : PhysicalOffset();
}
if (const auto* text_box = FirstTextBox()) {
LayoutPoint location = text_box->Location();
......
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