Skip to content

Commit

Permalink
LayoutNG: Rename NGInlineCursorPosition, NGInlineCursor, and NGInline…
Browse files Browse the repository at this point in the history
…BackwardCursor

... to InlineCursorPosition, InlineCursorPosition, and
InlineBackwardCursor respectively.
This CL has no behavior changes.

Bug: 1492009
Change-Id: I87a9ebbbc28cf5bdb91f17be50da9cee54f3385d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4954095
Auto-Submit: Kent Tamura <tkent@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1211967}
  • Loading branch information
tkent-google authored and Chromium LUCI CQ committed Oct 19, 2023
1 parent a9cca3c commit 8ae57f8
Show file tree
Hide file tree
Showing 85 changed files with 861 additions and 873 deletions.
32 changes: 16 additions & 16 deletions third_party/blink/renderer/core/editing/bidi_adjustment.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace {

// Gets the resolved direction for any inline, including non-atomic inline
// boxes.
TextDirection ResolvedDirection(const NGInlineCursor& cursor) {
TextDirection ResolvedDirection(const InlineCursor& cursor) {
if (cursor.Current().IsText() || cursor.Current().IsAtomicInline())
return cursor.Current().ResolvedDirection();

Expand All @@ -28,22 +28,22 @@ TextDirection ResolvedDirection(const NGInlineCursor& cursor) {
// text editing caret. We currently use the line's base direction, but this is
// wrong:
// <div dir=ltr>abc A<span>B</span>C abc</div>
NGInlineCursor line_box;
InlineCursor line_box;
line_box.MoveTo(cursor);
line_box.MoveToContainingLine();
return line_box.Current().BaseDirection();
}

// Gets the bidi level for any inline, including non-atomic inline boxes.
UBiDiLevel BidiLevel(const NGInlineCursor& cursor) {
UBiDiLevel BidiLevel(const InlineCursor& cursor) {
if (cursor.Current().IsText() || cursor.Current().IsAtomicInline())
return cursor.Current().BidiLevel();

// TODO(abotella): Just like the |TextDirection| of an inline box, the bidi
// level of an inline box should also be defined. Since |ResolvedDirection|
// defaults to the line's base direction, though, we use the corresponding
// base level here.
NGInlineCursor line_box;
InlineCursor line_box;
line_box.MoveTo(cursor);
line_box.MoveToContainingLine();
return IsLtr(line_box.Current().BaseDirection()) ? 0 : 1;
Expand All @@ -60,7 +60,7 @@ class AbstractInlineBox {
public:
AbstractInlineBox() : type_(InstanceType::kNull) {}

explicit AbstractInlineBox(const NGInlineCursor& cursor)
explicit AbstractInlineBox(const InlineCursor& cursor)
: type_(InstanceType::kNG),
line_cursor_(CreateLineRootedCursor(cursor)) {}

Expand All @@ -82,7 +82,7 @@ class AbstractInlineBox {

// Returns containing block rooted cursor instead of line rooted cursor for
// ease of handling, e.g. equiality check, move to next/previous line, etc.
NGInlineCursor GetCursor() const {
InlineCursor GetCursor() const {
return line_cursor_.CursorForMovingAcrossFragmentainer();
}

Expand All @@ -98,28 +98,28 @@ class AbstractInlineBox {

AbstractInlineBox PrevLeafChild() const {
DCHECK(IsNotNull());
NGInlineCursor cursor(line_cursor_);
InlineCursor cursor(line_cursor_);
cursor.MoveToPreviousInlineLeaf();
return cursor ? AbstractInlineBox(cursor) : AbstractInlineBox();
}

AbstractInlineBox PrevLeafChildIgnoringLineBreak() const {
DCHECK(IsNotNull());
NGInlineCursor cursor(line_cursor_);
InlineCursor cursor(line_cursor_);
cursor.MoveToPreviousInlineLeafIgnoringLineBreak();
return cursor ? AbstractInlineBox(cursor) : AbstractInlineBox();
}

AbstractInlineBox NextLeafChild() const {
DCHECK(IsNotNull());
NGInlineCursor cursor(line_cursor_);
InlineCursor cursor(line_cursor_);
cursor.MoveToNextInlineLeaf();
return cursor ? AbstractInlineBox(cursor) : AbstractInlineBox();
}

AbstractInlineBox NextLeafChildIgnoringLineBreak() const {
DCHECK(IsNotNull());
NGInlineCursor cursor(line_cursor_);
InlineCursor cursor(line_cursor_);
cursor.MoveToNextInlineLeafIgnoringLineBreak();
return cursor ? AbstractInlineBox(cursor) : AbstractInlineBox();
}
Expand All @@ -130,16 +130,16 @@ class AbstractInlineBox {
}

private:
static NGInlineCursor CreateLineRootedCursor(const NGInlineCursor& cursor) {
NGInlineCursor line_cursor = GetLineBox(cursor).CursorForDescendants();
static InlineCursor CreateLineRootedCursor(const InlineCursor& cursor) {
InlineCursor line_cursor = GetLineBox(cursor).CursorForDescendants();
line_cursor.MoveTo(cursor);
return line_cursor;
}

// Returns containing line box of |cursor| even if |cursor| is scoped inside
// line.
static NGInlineCursor GetLineBox(const NGInlineCursor& cursor) {
NGInlineCursor line_box;
static InlineCursor GetLineBox(const InlineCursor& cursor) {
InlineCursor line_box;
line_box.MoveTo(cursor);
line_box.MoveToContainingLine();
return line_box;
Expand All @@ -151,7 +151,7 @@ class AbstractInlineBox {
// Because of |MoveToContainingLine()| isn't cheap and we avoid to call each
// |MoveTo{Next,Previous}InlineLeaf()|, we hold containing line rooted cursor
// instead of containing block rooted cursor.
NGInlineCursor line_cursor_;
InlineCursor line_cursor_;
};

// |SideAffinity| represents the left or right side of a leaf inline
Expand Down Expand Up @@ -223,7 +223,7 @@ class AbstractInlineBoxAndSideAffinity {
NGCaretPosition ToNGCaretPosition() const {
DCHECK(box_.IsNotNull());
const bool is_at_start = IsLtr(box_.Direction()) == AtLeftSide();
NGInlineCursor cursor(box_.GetCursor());
InlineCursor cursor(box_.GetCursor());

if (!cursor.Current().IsText()) {
return {cursor,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -651,7 +651,7 @@ TEST_P(CaretDisplayItemClientTest, FullDocumentPaintingWithCaret) {
auto& div = *To<Element>(GetDocument().body()->firstChild());
auto& layout_text = *To<Text>(div.firstChild())->GetLayoutObject();
DCHECK(layout_text.IsInLayoutNGInlineFormattingContext());
NGInlineCursor cursor;
InlineCursor cursor;
cursor.MoveTo(layout_text);
const DisplayItemClient* text_inline_box =
cursor.Current().GetDisplayItemClient();
Expand Down
4 changes: 2 additions & 2 deletions third_party/blink/renderer/core/editing/frame_selection.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1330,12 +1330,12 @@ void FrameSelection::ClearDocumentCachedRange() {
}

LayoutSelectionStatus FrameSelection::ComputeLayoutSelectionStatus(
const NGInlineCursor& cursor) const {
const InlineCursor& cursor) const {
return layout_selection_->ComputeSelectionStatus(cursor);
}

SelectionState FrameSelection::ComputePaintingSelectionStateForCursor(
const NGInlineCursorPosition& position) const {
const InlineCursorPosition& position) const {
return layout_selection_->ComputePaintingSelectionStateForCursor(position);
}

Expand Down
8 changes: 4 additions & 4 deletions third_party/blink/renderer/core/editing/frame_selection.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ class LocalFrame;
class FrameCaret;
class GranularityStrategy;
class GraphicsContext;
class NGInlineCursor;
class NGInlineCursorPosition;
class InlineCursor;
class InlineCursorPosition;
class NGPhysicalBoxFragment;
class Range;
class SelectionEditor;
Expand Down Expand Up @@ -312,9 +312,9 @@ class CORE_EXPORT FrameSelection final
LayoutTextSelectionStatus ComputeLayoutSelectionStatus(
const LayoutText& text) const;
LayoutSelectionStatus ComputeLayoutSelectionStatus(
const NGInlineCursor& cursor) const;
const InlineCursor& cursor) const;
SelectionState ComputePaintingSelectionStateForCursor(
const NGInlineCursorPosition& position) const;
const InlineCursorPosition& position) const;

void Trace(Visitor*) const override;

Expand Down
10 changes: 5 additions & 5 deletions third_party/blink/renderer/core/editing/layout_selection.cc
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,7 @@ static SelectionState GetSelectionStateFor(const LayoutText& layout_text) {
}

static SelectionState GetSelectionStateFor(
const NGInlineCursorPosition& position) {
const InlineCursorPosition& position) {
DCHECK(position.GetLayoutObject());
return GetSelectionStateFor(To<LayoutText>(*position.GetLayoutObject()));
}
Expand Down Expand Up @@ -649,8 +649,8 @@ LayoutTextSelectionStatus FrameSelection::ComputeLayoutSelectionStatus(
// These offset can be out of fragment because SelectionState is of each
// LayoutText and not of each fragment for it.
LayoutSelectionStatus LayoutSelection::ComputeSelectionStatus(
const NGInlineCursor& cursor) const {
const NGInlineCursorPosition& current = cursor.Current();
const InlineCursor& cursor) const {
const InlineCursorPosition& current = cursor.Current();
if (!current.IsLayoutGeneratedText())
return ComputeSelectionStatus(cursor, current.TextOffset());

Expand All @@ -675,7 +675,7 @@ LayoutSelectionStatus LayoutSelection::ComputeSelectionStatus(
}

LayoutSelectionStatus LayoutSelection::ComputeSelectionStatus(
const NGInlineCursor& cursor,
const InlineCursor& cursor,
const NGTextOffsetRange& offset) const {
const unsigned start_offset = offset.start;
const unsigned end_offset = offset.end;
Expand Down Expand Up @@ -773,7 +773,7 @@ SelectionState LayoutSelection::ComputeSelectionStateFromOffsets(
}

SelectionState LayoutSelection::ComputePaintingSelectionStateForCursor(
const NGInlineCursorPosition& position) const {
const InlineCursorPosition& position) const {
if (!position)
return SelectionState::kNone;

Expand Down
20 changes: 10 additions & 10 deletions third_party/blink/renderer/core/editing/layout_selection.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,16 @@ class Rect;

namespace blink {

class FrameSelection;
class InlineCursor;
class InlineCursorPosition;
class LayoutObject;
class LayoutText;
class NGInlineCursor;
class NGInlineCursorPosition;
struct NGTextOffsetRange;
class FrameSelection;
struct LayoutSelectionStatus;
struct LayoutTextSelectionStatus;
class SelectionPaintRange;
enum class SelectionState;
struct LayoutSelectionStatus;
struct LayoutTextSelectionStatus;
struct NGTextOffsetRange;

class LayoutSelection final : public GarbageCollected<LayoutSelection> {
public:
Expand All @@ -54,15 +54,15 @@ class LayoutSelection final : public GarbageCollected<LayoutSelection> {
void InvalidateStyleAndPaintForSelection();

LayoutTextSelectionStatus ComputeSelectionStatus(const LayoutText&) const;
LayoutSelectionStatus ComputeSelectionStatus(const NGInlineCursor&) const;
LayoutSelectionStatus ComputeSelectionStatus(const InlineCursor&) const;

// Compute the layout selection state relative to the current item of the
// given NGInlineCursor. E.g. a state of kStart means that the selection
// given InlineCursor. E.g. a state of kStart means that the selection
// starts within the position (and ends elsewhere), where kStartAndEnd means
// the selection both starts and ends within the position. This information is
// used at paint time to determine the edges of the layout selection.
SelectionState ComputePaintingSelectionStateForCursor(
const NGInlineCursorPosition&) const;
const InlineCursorPosition&) const;

static bool IsSelected(const LayoutObject&);

Expand All @@ -71,7 +71,7 @@ class LayoutSelection final : public GarbageCollected<LayoutSelection> {
void Trace(Visitor*) const;

private:
LayoutSelectionStatus ComputeSelectionStatus(const NGInlineCursor&,
LayoutSelectionStatus ComputeSelectionStatus(const InlineCursor&,
const NGTextOffsetRange&) const;
SelectionState ComputeSelectionStateFromOffsets(SelectionState state,
unsigned start_offset,
Expand Down
18 changes: 9 additions & 9 deletions third_party/blink/renderer/core/editing/layout_selection_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class LayoutSelectionTestBase : public EditingTestBase {
const LayoutText& layout_text,
SelectionState state) {
if (layout_text.IsInLayoutNGInlineFormattingContext()) {
NGInlineCursor cursor(*layout_text.FragmentItemsContainer());
InlineCursor cursor(*layout_text.FragmentItemsContainer());
cursor.MoveTo(layout_text);
if (!cursor)
return;
Expand Down Expand Up @@ -937,15 +937,15 @@ class NGLayoutSelectionTest
LayoutSelectionStatus ComputeLayoutSelectionStatus(
const LayoutObject& layout_object) const {
DCHECK(layout_object.IsText());
NGInlineCursor cursor(*layout_object.FragmentItemsContainer());
InlineCursor cursor(*layout_object.FragmentItemsContainer());
cursor.MoveTo(layout_object);
return Selection().ComputeLayoutSelectionStatus(cursor);
}

SelectionState ComputePaintingSelectionStateForCursor(
const LayoutObject& layout_object) const {
DCHECK(layout_object.IsText());
NGInlineCursor cursor;
InlineCursor cursor;
cursor.MoveTo(layout_object);
return Selection().ComputePaintingSelectionStateForCursor(cursor.Current());
}
Expand Down Expand Up @@ -1059,7 +1059,7 @@ TEST_F(NGLayoutSelectionTest, StartAndEndMultilineState) {
LayoutObject* const div_text =
GetDocument().body()->firstChild()->firstChild()->GetLayoutObject();

NGInlineCursor cursor(*(div_text->FragmentItemsContainer()));
InlineCursor cursor(*(div_text->FragmentItemsContainer()));
cursor.MoveTo(*div_text);
EXPECT_EQ(LayoutSelectionStatus(1u, 3u, SelectSoftLineBreak::kNotSelected),
Selection().ComputeLayoutSelectionStatus(cursor));
Expand Down Expand Up @@ -1094,7 +1094,7 @@ TEST_F(NGLayoutSelectionTest, BeforeStartAndAfterEndMultilineState) {
"style='white-space:pre'>ba|z\nquu</div>");
LayoutObject* const div_text =
GetDocument().body()->firstChild()->firstChild()->GetLayoutObject();
NGInlineCursor cursor(*(div_text->FragmentItemsContainer()));
InlineCursor cursor(*(div_text->FragmentItemsContainer()));
cursor.MoveTo(*div_text);
EXPECT_EQ(LayoutSelectionStatus(3u, 3u, SelectSoftLineBreak::kNotSelected),
Selection().ComputeLayoutSelectionStatus(cursor));
Expand All @@ -1114,7 +1114,7 @@ TEST_F(NGLayoutSelectionTest, BeforeStartAndAfterEndMultilineState) {

LayoutObject* const second_div_text =
GetDocument().body()->lastChild()->firstChild()->GetLayoutObject();
NGInlineCursor second_cursor(*(second_div_text->FragmentItemsContainer()));
InlineCursor second_cursor(*(second_div_text->FragmentItemsContainer()));
second_cursor.MoveTo(*second_div_text);
EXPECT_EQ(LayoutSelectionStatus(0u, 2u, SelectSoftLineBreak::kNotSelected),
Selection().ComputeLayoutSelectionStatus(second_cursor));
Expand Down Expand Up @@ -1246,7 +1246,7 @@ TEST_F(NGLayoutSelectionTest, SoftHyphen0to1) {
"<div id='container' style='width:3ch'>^0|123&shy;456</div>");
auto* element = GetElementById("container");
auto* block_flow = To<LayoutBlockFlow>(element->GetLayoutObject());
NGInlineCursor cursor(*block_flow);
InlineCursor cursor(*block_flow);
while (!cursor.Current()->IsLayoutGeneratedText())
cursor.MoveToNext();
auto status = Selection().ComputeLayoutSelectionStatus(cursor);
Expand All @@ -1258,7 +1258,7 @@ TEST_F(NGLayoutSelectionTest, SoftHyphen0to4) {
"<div id='container' style='width:3ch'>^0123|&shy;456</div>");
auto* element = GetElementById("container");
auto* block_flow = To<LayoutBlockFlow>(element->GetLayoutObject());
NGInlineCursor cursor(*block_flow);
InlineCursor cursor(*block_flow);
while (!cursor.Current()->IsLayoutGeneratedText())
cursor.MoveToNext();
auto status = Selection().ComputeLayoutSelectionStatus(cursor);
Expand All @@ -1270,7 +1270,7 @@ TEST_F(NGLayoutSelectionTest, SoftHyphen1to5) {
"<div id='container' style='width:3ch'>0^123&shy;|456</div>");
auto* element = GetElementById("container");
auto* block_flow = To<LayoutBlockFlow>(element->GetLayoutObject());
NGInlineCursor cursor(*block_flow);
InlineCursor cursor(*block_flow);
while (!cursor.Current()->IsLayoutGeneratedText())
cursor.MoveToNext();
auto status = Selection().ComputeLayoutSelectionStatus(cursor);
Expand Down
4 changes: 2 additions & 2 deletions third_party/blink/renderer/core/editing/selection_modifier.cc
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ absl::optional<TextDirection> DirectionAt(
return absl::nullopt;

if (NGInlineFormattingContextOf(adjusted.GetPosition())) {
const NGInlineCursor& cursor = ComputeNGCaretPosition(adjusted).cursor;
const InlineCursor& cursor = ComputeNGCaretPosition(adjusted).cursor;
if (cursor)
return cursor.Current().ResolvedDirection();
return absl::nullopt;
Expand All @@ -194,7 +194,7 @@ absl::optional<TextDirection> LineDirectionAt(
return absl::nullopt;

if (NGInlineFormattingContextOf(adjusted.GetPosition())) {
NGInlineCursor line = ComputeNGCaretPosition(adjusted).cursor;
InlineCursor line = ComputeNGCaretPosition(adjusted).cursor;
if (!line)
return absl::nullopt;
line.MoveToContainingLine();
Expand Down

0 comments on commit 8ae57f8

Please sign in to comment.