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

Make StartOfSentencePosition() to return null for null-position

This patch changes |StartOfSentencePosition()| to return null-position for
null-position to avoid to hit DcHECK for non-null position in
|TextSegments::FindBoundaryBackward()|.

Bug: 1100971
Change-Id: Iacaa706be454ef0334c1524703eaeddf56bfe1dd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2280978
Commit-Queue: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Reviewed-by: default avatarKent Tamura <tkent@chromium.org>
Auto-Submit: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#785331}
parent 57b2b36e
...@@ -104,4 +104,16 @@ TEST_F(SelectionModifierTest, PreviousLineWithDisplayNone) { ...@@ -104,4 +104,16 @@ TEST_F(SelectionModifierTest, PreviousLineWithDisplayNone) {
GetSelectionTextFromBody(modifier.Selection().AsSelection())); GetSelectionTextFromBody(modifier.Selection().AsSelection()));
} }
// For http://crbug.com/1100971
TEST_F(SelectionModifierTest, StartOfSentenceWithNull) {
InsertStyleElement("b {display:inline-block}");
const SelectionInDOMTree selection =
SetSelectionTextToBody("|<b><ruby><a></a></ruby></b>");
SelectionModifier modifier(GetFrame(), selection);
// We call |StartOfSentence()| with null-position.
EXPECT_FALSE(modifier.Modify(SelectionModifyAlteration::kMove,
SelectionModifyDirection::kBackward,
TextGranularity::kSentenceBoundary));
}
} // namespace blink } // namespace blink
...@@ -288,6 +288,8 @@ VisiblePosition PreviousSentencePosition(const VisiblePosition& c) { ...@@ -288,6 +288,8 @@ VisiblePosition PreviousSentencePosition(const VisiblePosition& c) {
// ---- // ----
PositionInFlatTree StartOfSentencePosition(const PositionInFlatTree& position) { PositionInFlatTree StartOfSentencePosition(const PositionInFlatTree& position) {
if (position.IsNull())
return position;
const PositionInFlatTree result = StartOfSentenceInternal(position); const PositionInFlatTree result = StartOfSentenceInternal(position);
return AdjustBackwardPositionToAvoidCrossingEditingBoundaries( return AdjustBackwardPositionToAvoidCrossingEditingBoundaries(
PositionInFlatTreeWithAffinity(result), position) PositionInFlatTreeWithAffinity(result), position)
......
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