Commit 36d4e3c0 authored by Yoshifumi Inoue's avatar Yoshifumi Inoue Committed by Chromium LUCI CQ

Get rid of VisiblePosition version of EndOfLine()

This patch gets rid of |VisiblePosition| version of |EndOfLine()| to
reduce usage of |VisiblePosition| for improving code health.

Note: This patch doesn't change behavior.

Bug: 657237
Change-Id: I49e6732a7918ac4c55fced56f6e1d2362e4585b1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2568342
Commit-Queue: Yoshifumi Inoue <yosin@chromium.org>
Auto-Submit: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: default avatarKoji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#833173}
parent 776ab1f6
...@@ -224,7 +224,7 @@ class GranularityAdjuster final { ...@@ -224,7 +224,7 @@ class GranularityAdjuster final {
.DeepEquivalent(); .DeepEquivalent();
case TextGranularity::kLine: { case TextGranularity::kLine: {
const VisiblePositionTemplate<Strategy> end = const VisiblePositionTemplate<Strategy> end =
EndOfLine(CreateVisiblePosition(passed_end)); CreateVisiblePosition(EndOfLine(passed_end));
if (!IsEndOfParagraph(end)) if (!IsEndOfParagraph(end))
return end.DeepEquivalent(); return end.DeepEquivalent();
// If the end of this line is at the end of a paragraph, include the // If the end of this line is at the end of a paragraph, include the
...@@ -235,7 +235,7 @@ class GranularityAdjuster final { ...@@ -235,7 +235,7 @@ class GranularityAdjuster final {
return next.DeepEquivalent(); return next.DeepEquivalent();
} }
case TextGranularity::kLineBoundary: case TextGranularity::kLineBoundary:
return EndOfLine(CreateVisiblePosition(passed_end)).DeepEquivalent(); return EndOfLine(passed_end).GetPosition();
case TextGranularity::kParagraph: { case TextGranularity::kParagraph: {
const VisiblePositionTemplate<Strategy> visible_paragraph_end = const VisiblePositionTemplate<Strategy> visible_paragraph_end =
EndOfParagraph(CreateVisiblePosition(passed_end)); EndOfParagraph(CreateVisiblePosition(passed_end));
......
...@@ -158,11 +158,6 @@ StartOfLine(const VisiblePositionInFlatTree&); ...@@ -158,11 +158,6 @@ StartOfLine(const VisiblePositionInFlatTree&);
CORE_EXPORT PositionWithAffinity StartOfLine(const PositionWithAffinity&); CORE_EXPORT PositionWithAffinity StartOfLine(const PositionWithAffinity&);
CORE_EXPORT PositionInFlatTreeWithAffinity CORE_EXPORT PositionInFlatTreeWithAffinity
StartOfLine(const PositionInFlatTreeWithAffinity&); StartOfLine(const PositionInFlatTreeWithAffinity&);
// TODO(yosin) Return values of |VisiblePosition| version of |endOfLine()| with
// shadow tree isn't defined well. We should not use it for shadow tree.
CORE_EXPORT VisiblePosition EndOfLine(const VisiblePosition&);
CORE_EXPORT VisiblePositionInFlatTree
EndOfLine(const VisiblePositionInFlatTree&);
CORE_EXPORT PositionWithAffinity EndOfLine(const PositionWithAffinity&); CORE_EXPORT PositionWithAffinity EndOfLine(const PositionWithAffinity&);
CORE_EXPORT PositionInFlatTreeWithAffinity CORE_EXPORT PositionInFlatTreeWithAffinity
EndOfLine(const PositionInFlatTreeWithAffinity&); EndOfLine(const PositionInFlatTreeWithAffinity&);
......
...@@ -291,8 +291,11 @@ struct VisualOrdering { ...@@ -291,8 +291,11 @@ struct VisualOrdering {
const PositionWithAffinityTemplate<Strategy> candidate_position = const PositionWithAffinityTemplate<Strategy> candidate_position =
PositionWithAffinityTemplate<Strategy>( PositionWithAffinityTemplate<Strategy>(
candidate, TextAffinity::kUpstreamIfPossible); candidate, TextAffinity::kUpstreamIfPossible);
if (InSameLine(current_position, candidate_position)) if (InSameLine(current_position, candidate_position)) {
return candidate_position; return PositionWithAffinityTemplate<Strategy>(
CreateVisiblePosition(candidate).DeepEquivalent(),
TextAffinity::kUpstreamIfPossible);
}
const PositionWithAffinityTemplate<Strategy>& adjusted_position = const PositionWithAffinityTemplate<Strategy>& adjusted_position =
PreviousPositionOf(CreateVisiblePosition(current_position)) PreviousPositionOf(CreateVisiblePosition(current_position))
.ToPositionWithAffinity(); .ToPositionWithAffinity();
...@@ -403,20 +406,6 @@ PositionInFlatTreeWithAffinity EndOfLine( ...@@ -403,20 +406,6 @@ PositionInFlatTreeWithAffinity EndOfLine(
return EndOfLineAlgorithm<EditingInFlatTreeStrategy>(position); return EndOfLineAlgorithm<EditingInFlatTreeStrategy>(position);
} }
// TODO(yosin) Rename this function to reflect the fact it ignores bidi levels.
VisiblePosition EndOfLine(const VisiblePosition& current_position) {
DCHECK(current_position.IsValid()) << current_position;
return CreateVisiblePosition(
EndOfLine(current_position.ToPositionWithAffinity()));
}
VisiblePositionInFlatTree EndOfLine(
const VisiblePositionInFlatTree& current_position) {
DCHECK(current_position.IsValid()) << current_position;
return CreateVisiblePosition(
EndOfLine(current_position.ToPositionWithAffinity()));
}
template <typename Strategy> template <typename Strategy>
static bool InSameLogicalLine( static bool InSameLogicalLine(
const PositionWithAffinityTemplate<Strategy>& position1, const PositionWithAffinityTemplate<Strategy>& position1,
...@@ -550,9 +539,14 @@ bool IsStartOfLine(const VisiblePositionInFlatTree& p) { ...@@ -550,9 +539,14 @@ bool IsStartOfLine(const VisiblePositionInFlatTree& p) {
} }
template <typename Strategy> template <typename Strategy>
static bool IsEndOfLineAlgorithm(const VisiblePositionTemplate<Strategy>& p) { static bool IsEndOfLineAlgorithm(
DCHECK(p.IsValid()) << p; const VisiblePositionTemplate<Strategy>& visible_position) {
return p.IsNotNull() && p.DeepEquivalent() == EndOfLine(p).DeepEquivalent(); DCHECK(visible_position.IsValid()) << visible_position;
if (visible_position.IsNull())
return false;
const auto& end_of_line =
EndOfLine(visible_position.ToPositionWithAffinity());
return visible_position.DeepEquivalent() == end_of_line.GetPosition();
} }
bool IsEndOfLine(const VisiblePosition& p) { bool IsEndOfLine(const VisiblePosition& p) {
......
...@@ -16,6 +16,15 @@ ...@@ -16,6 +16,15 @@
namespace blink { namespace blink {
static VisiblePosition EndOfLine(const VisiblePosition& position) {
return CreateVisiblePosition(EndOfLine(position.ToPositionWithAffinity()));
}
static VisiblePositionInFlatTree EndOfLine(
const VisiblePositionInFlatTree& position) {
return CreateVisiblePosition(EndOfLine(position.ToPositionWithAffinity()));
}
class VisibleUnitsLineTest : public EditingTestBase { class VisibleUnitsLineTest : public EditingTestBase {
protected: protected:
static PositionWithAffinity PositionWithAffinityInDOMTree( static PositionWithAffinity PositionWithAffinityInDOMTree(
......
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