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

Avoid to crash in NGCaretPosition::ToPositionInDOMTreeWithAffinity()

This patch changes |NGCaretPosition::ToPositionInDOMTreeWithAffinity()|
to avoid crash regarding null |NGOffsetMapping|.

Note: This is speculative change because we don't have reproducible
test case yet.

Bug: 1145514
Change-Id: I8935175d721e6cc678efcb1f8c52d33275197143
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2519544
Auto-Submit: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: default avatarKoji Ishii <kojii@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Commit-Queue: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#824330}
parent 64e40a70
...@@ -357,6 +357,13 @@ PositionWithAffinity NGCaretPosition::ToPositionInDOMTreeWithAffinity() const { ...@@ -357,6 +357,13 @@ PositionWithAffinity NGCaretPosition::ToPositionInDOMTreeWithAffinity() const {
DCHECK(text_offset.has_value()); DCHECK(text_offset.has_value());
const NGOffsetMapping* mapping = const NGOffsetMapping* mapping =
NGOffsetMapping::GetFor(cursor.Current().GetLayoutObject()); NGOffsetMapping::GetFor(cursor.Current().GetLayoutObject());
if (!mapping) {
// TODO(yosin): We're not sure why |mapping| is |nullptr|. It seems
// we are attempt to use destroyed/moved |NGFragmentItem|.
// See http://crbug.com/1145514
NOTREACHED() << cursor << " " << cursor.Current().GetLayoutObject();
return PositionWithAffinity();
}
const TextAffinity affinity = const TextAffinity affinity =
*text_offset == cursor.Current().TextEndOffset() *text_offset == cursor.Current().TextEndOffset()
? TextAffinity::kUpstreamIfPossible ? TextAffinity::kUpstreamIfPossible
......
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