New issue
Advanced search Search tips

Issue 894651 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug
RTL


Sign in to add a comment

[meta] bidi adjustment related bugs

Project Member Reported by xiaoche...@chromium.org, Oct 11

Issue description

This is the umbrella bug for all issues related to bidi adjustment.
 
Blockedon: 162244 8172 90580 306870
Here's a summary of the issues.

1. Bidi adjustment, which is the root cause of all issues (issue 543480)

Blink performs a 1:1 mapping between logical positions and visual positions, even at bidi boundaries. The mapping rule is also very confusing when at line boundary.

Example. <input dir=rtl value=abc>, caret offset 3 is rendered at the left of "a"


2. Confusing typing behavior (issues 8172, 443161, 771129)

With mismatching visual and logical caret positions, it's possible that during typing, new characters don't appear under the caret.


3. Range selection that starts/ends at bidi boundary (issues 90580, 306870, 448758)

With one-to-one mapping between logical and visual positions, if a mouse dragging starts/ends at bidi boundary, it's basically impossible to tell which is the correct logical start/end of the selection. This leads to confusing selection behaviors, where the reverse content got selected.


4. Selection handle positioning (issue 359057)

For a range selection that starts/ends at bidi boundary, its logical start/end do not match its visual start/end. Blink uses the logical start/end + bidi adjustment (which also contains bugs) to place the selection handles, and fails to match the visual start/end.

5. Visual caret movement, or Left/Right arrow keys (issue 162244)

Blink's bidi adjustment has bug in its implementation, and isn't a perfect one-to-one mapping between logical and visual positions. This results in failures in visual caret movements.
Labels: RTL
Blockedon: 895005
6. Mouse clicking at a bidi boundary doesn't set caret under mouse (issue 895005)

This is due to bugs in bidi adjustment, so that bidi adjustment fails to build one-to-one mapping between visual and logical positions.
Blockedon: 895544
Blockedon: 507597
Project Member

Comment 9 by bugdroid1@chromium.org, Oct 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/92d11e85fd42064a2051be0ccbf146811e66af61

commit 92d11e85fd42064a2051be0ccbf146811e66af61
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Fri Oct 19 18:44:27 2018

Minor refactor to NGPaintFragment::PositionForPointInText

This patch refactors the function to reduce code duplicacy by reusing
NGCaretPosition::ToPositionInDOMTreeWithAffinity().

The refactoring also helps implementation of bidi caret affinity.

Bug: 894651
Change-Id: I114b65cfbf85966c3daf959da93e0a48a4fe170f
Reviewed-on: https://chromium-review.googlesource.com/c/1291780
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601240}
[modify] https://crrev.com/92d11e85fd42064a2051be0ccbf146811e66af61/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Oct 22

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a258b1fa145e584e94d15daf4faf58debcd7c8bc

commit a258b1fa145e584e94d15daf4faf58debcd7c8bc
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Mon Oct 22 16:45:41 2018

Stop passing VisiblePosition to AbsoluteCaretBoundsOf()

This patch changes AbsoluteCaretBoundsOf() to take PositionWithAffinity
instead of VisiblePosition to decrease the usage of VisiblePosition.

It is also a preparation for bidi caret affinity.

Bug: 657237, 894651
Change-Id: Ic55c037c058c1fe666ba89cbee502f7d0a74754b
Reviewed-on: https://chromium-review.googlesource.com/c/1292726
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Yoichi Osato <yoichio@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601613}
[modify] https://crrev.com/a258b1fa145e584e94d15daf4faf58debcd7c8bc/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
[modify] https://crrev.com/a258b1fa145e584e94d15daf4faf58debcd7c8bc/third_party/blink/renderer/core/editing/frame_selection.cc
[modify] https://crrev.com/a258b1fa145e584e94d15daf4faf58debcd7c8bc/third_party/blink/renderer/core/editing/local_caret_rect.cc
[modify] https://crrev.com/a258b1fa145e584e94d15daf4faf58debcd7c8bc/third_party/blink/renderer/core/editing/local_caret_rect.h
[modify] https://crrev.com/a258b1fa145e584e94d15daf4faf58debcd7c8bc/third_party/blink/renderer/core/editing/local_caret_rect_test.cc
[modify] https://crrev.com/a258b1fa145e584e94d15daf4faf58debcd7c8bc/third_party/blink/renderer/core/editing/selection_modifier.cc

Blockedon: 897983
Blockedon: 657237
Project Member

Comment 13 by bugdroid1@chromium.org, Dec 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/62ddb5cf66f3ac65e684d49fe89130253324c644

commit 62ddb5cf66f3ac65e684d49fe89130253324c644
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Thu Dec 13 19:09:00 2018

Implement bidi caret affinity basics

Design doc: http://bit.ly/2xVMjdc

This patch implements the basics of bidi caret affinity (*):
- Adds a runtime flag for bidi caret affinity
- Stop running bidi adjustments at the current sites:
 - ComputeInlineBoxPosition/ComputeNGCaretPosition
 - PositionForPoint
 - SelectionController when setting range selection
- Make affinity adjustment in VisiblePosition constructor aware
  of bidi affinity, so that it doesn't adjust affinity at bidi
  boundaries

This patch removes the mismatching between visual and logical caret
positions.

(*) This is the same as described in Stage 1, steps 1 & 2 of the
implementation plan in the design doc.

Bug: 894651
Change-Id: If96a19c8b2d3f12bfdfee326f7d9b91aa350c2cc
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Reviewed-on: https://chromium-review.googlesource.com/c/1292809
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616380}
[modify] https://crrev.com/62ddb5cf66f3ac65e684d49fe89130253324c644/third_party/blink/renderer/core/editing/inline_box_position.cc
[modify] https://crrev.com/62ddb5cf66f3ac65e684d49fe89130253324c644/third_party/blink/renderer/core/editing/inline_box_traversal.cc
[modify] https://crrev.com/62ddb5cf66f3ac65e684d49fe89130253324c644/third_party/blink/renderer/core/editing/selection_controller.cc
[modify] https://crrev.com/62ddb5cf66f3ac65e684d49fe89130253324c644/third_party/blink/renderer/core/editing/visible_position.cc
[modify] https://crrev.com/62ddb5cf66f3ac65e684d49fe89130253324c644/third_party/blink/renderer/core/layout/layout_text.cc
[modify] https://crrev.com/62ddb5cf66f3ac65e684d49fe89130253324c644/third_party/blink/renderer/core/layout/ng/inline/ng_caret_position.cc
[modify] https://crrev.com/62ddb5cf66f3ac65e684d49fe89130253324c644/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.cc
[modify] https://crrev.com/62ddb5cf66f3ac65e684d49fe89130253324c644/third_party/blink/renderer/platform/runtime_enabled_features.json5

Project Member

Comment 14 by bugdroid1@chromium.org, Dec 19

Project Member

Comment 15 by bugdroid1@chromium.org, Dec 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7a1e3a24b33a6e0849cbfb1ee59f58fc57176793

commit 7a1e3a24b33a6e0849cbfb1ee59f58fc57176793
Author: Thomas Anderson <thomasanderson@chromium.org>
Date: Wed Dec 19 23:17:51 2018

Revert "Add a virtual test suite for bidi caret affinity"

This reverts commit 5a6b52734e8db45dfa2b0f71c1720bd127d92139.

Reason for revert: Causing test failures on Mac 10.11 Tests: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac10.11%20Tests/31982

Original change's description:
> Add a virtual test suite for bidi caret affinity
> 
> This patch adds a virtual test suite with bidi caret affinity enabled to
> track implementation progress and prevent regressions.
> 
> Bug: 894651
> Change-Id: I9e1e8a91829ed8be1ac25749d0ba8ceaf9e6e207
> Reviewed-on: https://chromium-review.googlesource.com/c/1382956
> Reviewed-by: Emil A Eklund <eae@chromium.org>
> Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#617922}

TBR=yosin@chromium.org,eae@chromium.org,kojii@chromium.org,xiaochengh@chromium.org

Change-Id: I4d8973e7d5b8bd204bd9419edc92d8e880b6ba8d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 894651
Reviewed-on: https://chromium-review.googlesource.com/c/1385389
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618003}
[modify] https://crrev.com/7a1e3a24b33a6e0849cbfb1ee59f58fc57176793/third_party/blink/web_tests/NeverFixTests
[modify] https://crrev.com/7a1e3a24b33a6e0849cbfb1ee59f58fc57176793/third_party/blink/web_tests/SlowTests
[modify] https://crrev.com/7a1e3a24b33a6e0849cbfb1ee59f58fc57176793/third_party/blink/web_tests/TestExpectations
[modify] https://crrev.com/7a1e3a24b33a6e0849cbfb1ee59f58fc57176793/third_party/blink/web_tests/VirtualTestSuites
[delete] https://crrev.com/813acd2e776fb3c78ff10505288783e78c4aa3d3/third_party/blink/web_tests/virtual/bidi-caret-affinity/editing/README.txt

Project Member

Comment 16 by bugdroid1@chromium.org, Dec 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5d697fe1b8d6877ae694bcfbdcc9112ea33d78f9

commit 5d697fe1b8d6877ae694bcfbdcc9112ea33d78f9
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Thu Dec 20 00:16:53 2018

Reland "Add a virtual test suite for bidi caret affinity"

This reverts commit 7a1e3a24b33a6e0849cbfb1ee59f58fc57176793.

Reason for reland: The original CL has a failure line in
TestExpectations, which is added now.

Original change's description:
> Revert "Add a virtual test suite for bidi caret affinity"
> 
> This reverts commit 5a6b52734e8db45dfa2b0f71c1720bd127d92139.
> 
> Reason for revert: Causing test failures on Mac 10.11 Tests: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac10.11%20Tests/31982
> 
> Original change's description:
> > Add a virtual test suite for bidi caret affinity
> > 
> > This patch adds a virtual test suite with bidi caret affinity enabled to
> > track implementation progress and prevent regressions.
> > 
> > Bug: 894651
> > Change-Id: I9e1e8a91829ed8be1ac25749d0ba8ceaf9e6e207
> > Reviewed-on: https://chromium-review.googlesource.com/c/1382956
> > Reviewed-by: Emil A Eklund <eae@chromium.org>
> > Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#617922}
> 
> TBR=yosin@chromium.org,eae@chromium.org,kojii@chromium.org,xiaochengh@chromium.org
> 
> Change-Id: I4d8973e7d5b8bd204bd9419edc92d8e880b6ba8d
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 894651
> Reviewed-on: https://chromium-review.googlesource.com/c/1385389
> Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#618003}

TBR=yosin@chromium.org,eae@chromium.org,kojii@chromium.org,xiaochengh@chromium.org,thomasanderson@chromium.org

Change-Id: I7a3a63748c93d3e95cbebeed4b3eccf6fc6e4066
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 894651
Reviewed-on: https://chromium-review.googlesource.com/c/1385472
Reviewed-by: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618023}
[modify] https://crrev.com/5d697fe1b8d6877ae694bcfbdcc9112ea33d78f9/third_party/blink/web_tests/NeverFixTests
[modify] https://crrev.com/5d697fe1b8d6877ae694bcfbdcc9112ea33d78f9/third_party/blink/web_tests/SlowTests
[modify] https://crrev.com/5d697fe1b8d6877ae694bcfbdcc9112ea33d78f9/third_party/blink/web_tests/TestExpectations
[modify] https://crrev.com/5d697fe1b8d6877ae694bcfbdcc9112ea33d78f9/third_party/blink/web_tests/VirtualTestSuites
[add] https://crrev.com/5d697fe1b8d6877ae694bcfbdcc9112ea33d78f9/third_party/blink/web_tests/virtual/bidi-caret-affinity/editing/README.txt

Project Member

Comment 17 by bugdroid1@chromium.org, Dec 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/14ea7c43f8498e3cada06ad09e4174bbcb2e059a

commit 14ea7c43f8498e3cada06ad09e4174bbcb2e059a
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Thu Dec 20 05:53:44 2018

Add leak expectation for virtual/bidi-caret-affinity/editing/pasteboard/drag-drop-iframe-refresh-crash.html

The test is already leaking without bidi caret affinity.

This patch adds leaking expectation for the virtual test so that it
doesn't create bot failures.

Tbr: eae@chromium.org, kojii@chromium.org
Bug: 894651
Change-Id: I13ce3cbaf56eb898948a3513dc2c94b612661d58
Reviewed-on: https://chromium-review.googlesource.com/c/1385449
Reviewed-by: Xiaocheng Hu <xiaochengh@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618123}
[modify] https://crrev.com/14ea7c43f8498e3cada06ad09e4174bbcb2e059a/third_party/blink/web_tests/LeakExpectations

Project Member

Comment 18 by bugdroid1@chromium.org, Dec 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/84cba2b224a348a7f232e5740aaa024be54bd543

commit 84cba2b224a348a7f232e5740aaa024be54bd543
Author: Takashi Sakamoto <tasak@google.com>
Date: Thu Dec 20 06:37:34 2018

Revert "Add leak expectation for virtual/bidi-caret-affinity/editing/pasteboard/drag-drop-iframe-refresh-crash.html"

This reverts commit 14ea7c43f8498e3cada06ad09e4174bbcb2e059a.

Reason for revert: causes webkit_lint failure.

Original change's description:
> Add leak expectation for virtual/bidi-caret-affinity/editing/pasteboard/drag-drop-iframe-refresh-crash.html
> 
> The test is already leaking without bidi caret affinity.
> 
> This patch adds leaking expectation for the virtual test so that it
> doesn't create bot failures.
> 
> Tbr: eae@chromium.org, kojii@chromium.org
> Bug: 894651
> Change-Id: I13ce3cbaf56eb898948a3513dc2c94b612661d58
> Reviewed-on: https://chromium-review.googlesource.com/c/1385449
> Reviewed-by: Xiaocheng Hu <xiaochengh@chromium.org>
> Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#618123}

TBR=eae@chromium.org,kojii@chromium.org,xiaochengh@chromium.org

Change-Id: Ia06b79f82f5834ec785089b5254f544a377471d1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 894651
Reviewed-on: https://chromium-review.googlesource.com/c/1386067
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#618128}
[modify] https://crrev.com/84cba2b224a348a7f232e5740aaa024be54bd543/third_party/blink/web_tests/LeakExpectations

Blockedon: 917165
Project Member

Comment 20 by bugdroid1@chromium.org, Jan 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/40382e1b72335dc728d60b12d2468365a3d07446

commit 40382e1b72335dc728d60b12d2468365a3d07446
Author: Chris Lu <thegreenfrog@chromium.org>
Date: Thu Jan 03 02:06:06 2019

[ios] Add FindInPageManager Abstract Class

Adds class that defines public //ios/web API for FindInPageManager.

Bug: 894651
Change-Id: Ie1f750e6ea8953bcbb169bc4c957a6946b217d8f
Reviewed-on: https://chromium-review.googlesource.com/c/1387696
Commit-Queue: Chris Lu <thegreenfrog@chromium.org>
Reviewed-by: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619560}
[modify] https://crrev.com/40382e1b72335dc728d60b12d2468365a3d07446/ios/web/public/BUILD.gn
[add] https://crrev.com/40382e1b72335dc728d60b12d2468365a3d07446/ios/web/public/web_state/find_in_page/find_in_page_manager.h

Blockedon: 919146
Project Member

Comment 22 by bugdroid1@chromium.org, Jan 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/70a9c2c44d3b46e1d802a54441a518692714f5f2

commit 70a9c2c44d3b46e1d802a54441a518692714f5f2
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Thu Jan 10 09:27:15 2019

[LayoutNG] Set IsAnonymousText() as true for ellipsis fragments

This patch makes ellipsis fragments return true for IsAnonymousText(),
so that they are not eligible for resolving caret positions. This fixes
8 crashers with bidi caret affinity.

Bug: 894651
Change-Id: I4b754416669d4e160650609aabf51ccc419cfa83
Reviewed-on: https://chromium-review.googlesource.com/c/1404387
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621519}
[modify] https://crrev.com/70a9c2c44d3b46e1d802a54441a518692714f5f2/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.cc
[modify] https://crrev.com/70a9c2c44d3b46e1d802a54441a518692714f5f2/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment_test.cc
[modify] https://crrev.com/70a9c2c44d3b46e1d802a54441a518692714f5f2/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG

Project Member

Comment 23 by bugdroid1@chromium.org, Jan 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c669cdeb14de70937832bfadf5ce6b40b764f4ee

commit c669cdeb14de70937832bfadf5ce6b40b764f4ee
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Thu Jan 10 23:53:49 2019

[LayoutNG] Treat CSS-generated hyphen fragments as anonymous text

CSS-generated hyphen fragments are not eligible for resolving caret
positions. Therefore, this patch sets them as anonymous text.

This patch fixes a crasher with bidi caret affinity enabled.

Bug: 894651
Change-Id: Ica88604de97dd415fbb92f29e094c0347887a7c3
Reviewed-on: https://chromium-review.googlesource.com/c/1406136
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621806}
[modify] https://crrev.com/c669cdeb14de70937832bfadf5ce6b40b764f4ee/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.cc
[modify] https://crrev.com/c669cdeb14de70937832bfadf5ce6b40b764f4ee/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG

Project Member

Comment 24 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d7d46e615e305e3c3cc927539c553e9c711abf7a

commit d7d46e615e305e3c3cc927539c553e9c711abf7a
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Thu Jan 10 23:58:39 2019

Implement basic Left/Right visual caret movement with bidi caret affinity

Design doc: http://bit.ly/2QVAwGq

This patch:

1. Introduces a new structure NGCaretNavigator to index the bidi
   information of the text_content of a block. The structure is
   built together with NGOffsetMapping.

2. With NGCaretNavigator, we can test bidi boundary in VisiblePosition
   canonicalization more directly.

3. With NGCaretNavigator, left/right visual movements on text_content
   are implemented in a straightforward manner. This patch implements
   only the basics: one line of plain text. However, the most complicated
   part of the legacy implementation, namely *bidi and whitespace
   collapsing*, have already been naturally handled.

4. SelectionModifierCharacter adds a new branch where bidi caret
   affinity is enabled, and uses NGOffsetMapping to convert input/output
   between DOM and NGCaretNavigator.

Note that the implementation works on both legacy and NG layout.

Bug: 894651
Change-Id: I806ce23a97b2dfd977d6eecfd224c812319e6a7e
Reviewed-on: https://chromium-review.googlesource.com/c/1377618
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Yoichi Osato <yoichio@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621807}
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/BUILD.gn
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/editing/selection_modifier_character.cc
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/editing/visible_position.cc
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/BUILD.gn
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/ng/inline/README.md
[add] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.cc
[add] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.h
[add] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator_test.cc
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.h
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.cc
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/TestExpectations
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_01_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_02_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_01_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_02_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_13_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_rtl.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_ltr.html
[modify] https://crrev.com/d7d46e615e305e3c3cc927539c553e9c711abf7a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_rtl.html

Project Member

Comment 25 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9d7f9214e689a910456435fd46b01f6731ad190c

commit 9d7f9214e689a910456435fd46b01f6731ad190c
Author: Patti <patricialor@chromium.org>
Date: Fri Jan 11 02:56:30 2019

Revert "Implement basic Left/Right visual caret movement with bidi caret affinity"

This reverts commit d7d46e615e305e3c3cc927539c553e9c711abf7a.

Reason for revert: This patch may be the cause of failing tests:
* virtual/bidi-caret-affinity/editing/selection/modify_move/move_left_word_04_rtl_multi_line.html
* virtual/bidi-caret-affinity/editing/selection/modify_move/move_right_word_02_ltr_multi_line.html
* virtual/bidi-caret-affinity/editing/selection/move-bidi-isolate.html
on Mac 10.11. See bug for more details.

Bug:  920878 

Original change's description:
> Implement basic Left/Right visual caret movement with bidi caret affinity
> 
> Design doc: http://bit.ly/2QVAwGq
> 
> This patch:
> 
> 1. Introduces a new structure NGCaretNavigator to index the bidi
>    information of the text_content of a block. The structure is
>    built together with NGOffsetMapping.
> 
> 2. With NGCaretNavigator, we can test bidi boundary in VisiblePosition
>    canonicalization more directly.
> 
> 3. With NGCaretNavigator, left/right visual movements on text_content
>    are implemented in a straightforward manner. This patch implements
>    only the basics: one line of plain text. However, the most complicated
>    part of the legacy implementation, namely *bidi and whitespace
>    collapsing*, have already been naturally handled.
> 
> 4. SelectionModifierCharacter adds a new branch where bidi caret
>    affinity is enabled, and uses NGOffsetMapping to convert input/output
>    between DOM and NGCaretNavigator.
> 
> Note that the implementation works on both legacy and NG layout.
> 
> Bug: 894651
> Change-Id: I806ce23a97b2dfd977d6eecfd224c812319e6a7e
> Reviewed-on: https://chromium-review.googlesource.com/c/1377618
> Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
> Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
> Reviewed-by: Yoichi Osato <yoichio@chromium.org>
> Reviewed-by: Emil A Eklund <eae@chromium.org>
> Reviewed-by: Koji Ishii <kojii@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#621807}

TBR=yosin@chromium.org,eae@chromium.org,yoichio@chromium.org,kojii@chromium.org,xiaochengh@chromium.org

Change-Id: I7146445c16b13d3cdaf12e2f88b78353b7f0d10a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 894651
Reviewed-on: https://chromium-review.googlesource.com/c/1405116
Reviewed-by: Patti <patricialor@chromium.org>
Commit-Queue: Patti <patricialor@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621881}
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/BUILD.gn
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/editing/selection_modifier_character.cc
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/editing/visible_position.cc
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/layout/BUILD.gn
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/layout/ng/inline/README.md
[delete] https://crrev.com/ec997a35cf9aae0a66fc95f58c8b3a13d791a5ca/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.cc
[delete] https://crrev.com/ec997a35cf9aae0a66fc95f58c8b3a13d791a5ca/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.h
[delete] https://crrev.com/ec997a35cf9aae0a66fc95f58c8b3a13d791a5ca/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator_test.cc
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.h
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.cc
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/TestExpectations
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_01_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_02_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_01_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_02_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_13_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_rtl.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_ltr.html
[modify] https://crrev.com/9d7f9214e689a910456435fd46b01f6731ad190c/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_rtl.html

Project Member

Comment 26 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4476bd69d1c8e4e1cde8633d3b33c992f7d3a6d0

commit 4476bd69d1c8e4e1cde8633d3b33c992f7d3a6d0
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Fri Jan 11 13:54:45 2019

[LayoutNG] Handle upstream-after-line-break input in caret resolution

When the input is upstream after a line break, LayoutNG caret resolution
algorithm should resolve at the downstream position instead. This patch
does that and fixes 4 crashes when bidi caret affinity is enabled.

Bug: 894651
Change-Id: I178f1c0b209b907bd6ccad88b3e82d2df60f2907
Reviewed-on: https://chromium-review.googlesource.com/c/1404565
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Yoichi Osato <yoichio@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621990}
[modify] https://crrev.com/4476bd69d1c8e4e1cde8633d3b33c992f7d3a6d0/third_party/blink/renderer/core/layout/ng/inline/ng_caret_position.cc
[modify] https://crrev.com/4476bd69d1c8e4e1cde8633d3b33c992f7d3a6d0/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG

Project Member

Comment 27 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8ef0c47c310598505b39d623a5468122f8393565

commit 8ef0c47c310598505b39d623a5468122f8393565
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Fri Jan 11 15:14:42 2019

Reland "Implement basic Left/Right visual caret movement with bidi caret affinity"

This reverts commit 9d7f9214e689a910456435fd46b01f6731ad190c.

Reason for revert: Missing test expectations added

Original change's description:
> Revert "Implement basic Left/Right visual caret movement with bidi caret affinity"
>
> This reverts commit d7d46e615e305e3c3cc927539c553e9c711abf7a.
>
> Reason for revert: This patch may be the cause of failing tests:
> * virtual/bidi-caret-affinity/editing/selection/modify_move/move_left_word_04_rtl_multi_line.html
> * virtual/bidi-caret-affinity/editing/selection/modify_move/move_right_word_02_ltr_multi_line.html
> * virtual/bidi-caret-affinity/editing/selection/move-bidi-isolate.html
> on Mac 10.11. See bug for more details.
>
> Bug:  920878 
>
> Original change's description:
> > Implement basic Left/Right visual caret movement with bidi caret affinity
> >
> > Design doc: http://bit.ly/2QVAwGq
> >
> > This patch:
> >
> > 1. Introduces a new structure NGCaretNavigator to index the bidi
> >    information of the text_content of a block. The structure is
> >    built together with NGOffsetMapping.
> >
> > 2. With NGCaretNavigator, we can test bidi boundary in VisiblePosition
> >    canonicalization more directly.
> >
> > 3. With NGCaretNavigator, left/right visual movements on text_content
> >    are implemented in a straightforward manner. This patch implements
> >    only the basics: one line of plain text. However, the most complicated
> >    part of the legacy implementation, namely *bidi and whitespace
> >    collapsing*, have already been naturally handled.
> >
> > 4. SelectionModifierCharacter adds a new branch where bidi caret
> >    affinity is enabled, and uses NGOffsetMapping to convert input/output
> >    between DOM and NGCaretNavigator.
> >
> > Note that the implementation works on both legacy and NG layout.
> >
> > Bug: 894651
> > Change-Id: I806ce23a97b2dfd977d6eecfd224c812319e6a7e
> > Reviewed-on: https://chromium-review.googlesource.com/c/1377618
> > Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
> > Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
> > Reviewed-by: Yoichi Osato <yoichio@chromium.org>
> > Reviewed-by: Emil A Eklund <eae@chromium.org>
> > Reviewed-by: Koji Ishii <kojii@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#621807}
>
> TBR=yosin@chromium.org,eae@chromium.org,yoichio@chromium.org,kojii@chromium.org,xiaochengh@chromium.org
>
> Change-Id: I7146445c16b13d3cdaf12e2f88b78353b7f0d10a
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 894651
> Reviewed-on: https://chromium-review.googlesource.com/c/1405116
> Reviewed-by: Patti <patricialor@chromium.org>
> Commit-Queue: Patti <patricialor@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#621881}

TBR=yosin@chromium.org,eae@chromium.org,yoichio@chromium.org,kojii@chromium.org,xiaochengh@chromium.org,patricialor@chromium.org

Change-Id: I1cd674cf836d057bf8188b3a7c051e2c51a78bb8
Bug:  920878 , 894651
Reviewed-on: https://chromium-review.googlesource.com/c/1406930
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622008}
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/BUILD.gn
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/editing/selection_modifier_character.cc
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/editing/visible_position.cc
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/BUILD.gn
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/ng/inline/README.md
[add] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.cc
[add] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.h
[add] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator_test.cc
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.h
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.cc
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/TestExpectations
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_01_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_02_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_01_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_02_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_13_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_rtl.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_ltr.html
[modify] https://crrev.com/8ef0c47c310598505b39d623a5468122f8393565/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_rtl.html

Project Member

Comment 28 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/32f7091391f457d8315821a0329239d319324a35

commit 32f7091391f457d8315821a0329239d319324a35
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Fri Jan 11 23:09:07 2019

[BidiCaretAffinity] Unify "offset" and "index" for NGCaretNagivator

As discussed with yosin@, this patch unifies these two concepts in most
of NGCaretNavigator to avoid confusion.

Bug: 894651
Change-Id: I3321b97e1641aaed57b65959e7344e9e5d0aca80
Reviewed-on: https://chromium-review.googlesource.com/c/1406298
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Yoichi Osato <yoichio@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622199}
[modify] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/third_party/blink/renderer/core/editing/selection_modifier_character.cc
[modify] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.cc
[modify] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.h
[modify] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator_test.cc
[modify] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc
[modify] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h

Project Member

Comment 29 by bugdroid1@chromium.org, Jan 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e7ec34625844aa9cf12b3dad7c94ae899bcb51cb

commit e7ec34625844aa9cf12b3dad7c94ae899bcb51cb
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Tue Jan 15 02:31:35 2019

[BidiCaretAffinity] Deduplicate NGCaretNavigator left and right handling

Since left and right handling is symmetric, this patch collapses them to
reduce code duplicacy. It also makes it easier to implement more
complicated cases in NGCaretNavigator.

Bug: 894651
Change-Id: I8cdc94c32bfa3fb6646c40750167e69561548797
Reviewed-on: https://chromium-review.googlesource.com/c/1407502
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622687}
[modify] https://crrev.com/e7ec34625844aa9cf12b3dad7c94ae899bcb51cb/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.cc
[modify] https://crrev.com/e7ec34625844aa9cf12b3dad7c94ae899bcb51cb/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.h

This fails on MSAN bots https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/WebKit%20Linux%20Trusty%20MSAN/12167

https://isolateserver.appspot.com/browse?namespace=default-gzip&digest=332c7f9802028d02297379701d2f045d4e59ab18&as=move_left_word_06_ltr_multi_line-stderr.txt
DevTools listening on ws://127.0.0.1:39686/devtools/browser/1b4d94fd-4644-4c69-8c41-726617a0a161
==1==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x55f19ca18095 in blink::NGCaretNavigator::MoveCaretInternal(blink::NGCaretNavigator::Position const&, blink::NGCaretNavigator::MoveDirection) const ./../../third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.cc:193:7
    #1 0x55f19abe119d in ForwardPositionOf ./../../third_party/blink/renderer/core/editing/selection_modifier_character.cc:159:28
    #2 0x55f19abe119d in TraverseWithBidiCaretAffinity<blink::EditingAlgorithm<blink::NodeTraversal>, blink::(anonymous namespace)::TraversalLeft<blink::EditingAlgorithm<blink::NodeTraversal> > > ./../../third_party/blink/renderer/core/editing/selection_modifier_character.cc:546:0
    #3 0x55f19abe119d in TraverseAlgorithm<blink::EditingAlgorithm<blink::NodeTraversal>, blink::(anonymous namespace)::TraversalLeft<blink::EditingAlgorithm<blink::NodeTraversal> > > ./../../third_party/blink/renderer/core/editing/selection_modifier_character.cc:580:0
    #4 0x55f19abe119d in blink::LeftPositionOf(blink::VisiblePositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> > const&) ./../../third_party/blink/renderer/core/editing/selection_modifier_character.cc:598:0
    #5 0x55f19abe8a35 in blink::(anonymous namespace)::VisualWordPosition(blink::VisiblePositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> > const&, blink::(anonymous namespace)::CursorMovementDirection, bool) ./../../third_party/blink/renderer/core/editing/selection_modifier_word.cc:325:57
    #6 0x55f19abe80e8 in blink::SelectionModifier::LeftWordPosition(blink::VisiblePositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> > const&, bool) ./../../third_party/blink/renderer/core/editing/selection_modifier_word.cc:410:44
    #7 0x55f19abd86c1 in blink::SelectionModifier::ModifyMovingLeft(blink::TextGranularity) ./../../third_party/blink/renderer/core/editing/selection_modifier.cc:567:14
    #8 0x55f19abdb905 in blink::SelectionModifier::ComputeModifyPosition(blink::SelectionModifyAlteration, blink::SelectionModifyDirection, blink::TextGranularity) ./../../third_party/blink/renderer/core/editing/selection_modifier.cc:656:16
    #9 0x55f19abdc2ee in blink::SelectionModifier::Modify(blink::SelectionModifyAlteration, blink::SelectionModifyDirection, blink::TextGranularity) ./../../third_party/blink/renderer/core/editing/selection_modifier.cc:681:7
    #10 0x55f19aa9b7e3 in blink::FrameSelection::Modify(blink::SelectionModifyAlteration, blink::SelectionModifyDirection, blink::TextGranularity, blink::SetSelectionBy) ./../../third_party/blink/renderer/core/editing/frame_selection.cc:368:26
    #11 0x55f19aa1ecb5 in blink::DOMSelection::modify(WTF::String const&, WTF::String const&, WTF::String const&) ./../../third_party/blink/renderer/core/editing/dom_selection.cc:455:27
    #12 0x55f1986febe9 in ModifyMethod ./gen/third_party/blink/renderer/bindings/core/v8/v8_selection.cc:467:9
    #13 0x55f1986febe9 in blink::V8Selection::ModifyMethodCallback(v8::FunctionCallbackInfo<v8::Value> const&) ./gen/third_party/blink/renderer/bindings/core/v8/v8_selection.cc:692:0
    #14 0x55f18a4dc723 in v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) ./../../v8/src/api-arguments-inl.h:146:3
    #15 0x55f18a4d896d in v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) ./../../v8/src/builtins/builtins-api.cc:109:36
    #16 0x55f18a4d484e in v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) ./../../v8/src/builtins/builtins-api.cc:139:5
    #17 0x55f18cc1a5f5 in v8::internal::Simulator::DoRuntimeCall(v8::internal::Instruction*) ./../../v8/src/arm64/simulator-arm64.cc:537:11
    #18 0x55f18cc19bf7 in v8::internal::Simulator::ExecuteInstruction() ./../../v8/src/arm64/simulator-arm64.h:781:5
    #19 0x55f18cc199be in v8::internal::Simulator::Run() ./../../v8/src/arm64/simulator-arm64.cc:388:5
    #20 0x55f18cc16b5b in CheckPCSComplianceAndRun ./../../v8/src/arm64/simulator-arm64.cc:186:3
    #21 0x55f18cc16b5b in v8::internal::Simulator::CallImpl(unsigned long, v8::internal::Simulator::CallArgument*) ./../../v8/src/arm64/simulator-arm64.cc:155:0
    #22 0x55f18b4e6820 in Call<unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, long, unsigned long **> ./../../v8/src/arm64/simulator-arm64.h:727:5
    #23 0x55f18b4e6820 in Call ./../../v8/src/simulator.h:118:0
    #24 0x55f18b4e6820 in v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) ./../../v8/src/execution.cc:293:0
    #25 0x55f18b4e4f50 in v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) ./../../v8/src/execution.cc:369:10
    #26 0x55f18a2643e8 in v8::Script::Run(v8::Local<v8::Context>) ./../../v8/src/api.cc:2135:7
    #27 0x55f198092ac8 in blink::V8ScriptRunner::RunCompiledScript(v8::Isolate*, v8::Local<v8::Script>, blink::ExecutionContext*) ./../../third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc:288:22
    #28 0x55f19a4aee66 in blink::ScriptController::ExecuteScriptAndReturnValue(v8::Local<v8::Context>, blink::ScriptSourceCode const&, blink::KURL const&, blink::SanitizeScriptErrors, blink::ScriptFetchOptions const&) ./../../third_party/blink/renderer/bindings/core/v8/script_controller.cc:131:20
    #29 0x55f19a4b2d59 in blink::ScriptController::EvaluateScriptInMainWorld(blink::ScriptSourceCode const&, blink::KURL const&, blink::SanitizeScriptErrors, blink::ScriptFetchOptions const&, blink::ScriptController::ExecuteScriptPolicy) ./../../third_party/blink/renderer/bindings/core/v8/script_controller.cc:343:33
    #30 0x55f19a4b3b6e in blink::ScriptController::ExecuteScriptInMainWorld(blink::ScriptSourceCode const&, blink::KURL const&, blink::SanitizeScriptErrors, blink::ScriptFetchOptions const&) ./../../third_party/blink/renderer/bindings/core/v8/script_controller.cc:307:3
    #31 0x55f19d578dad in blink::PendingScript::ExecuteScriptBlockInternal(blink::Script*, blink::ScriptElementBase*, bool, bool, bool, base::TimeTicks, bool) ./../../third_party/blink/renderer/core/script/pending_script.cc:275:13
    #32 0x55f19d577f53 in blink::PendingScript::ExecuteScriptBlock(blink::KURL const&) ./../../third_party/blink/renderer/core/script/pending_script.cc:186:3
    #33 0x55f19d57fb43 in blink::ScriptLoader::PrepareScript(WTF::TextPosition const&, blink::ScriptLoader::LegacyTypeSupport) ./../../third_party/blink/renderer/core/script/script_loader.cc:738:9
    #34 0x55f19d51daac in blink::HTMLParserScriptRunner::ProcessScriptElementInternal(blink::Element*, WTF::TextPosition const&) ./../../third_party/blink/renderer/core/script/html_parser_script_runner.cc:541:20
    #35 0x55f19d51d1e4 in blink::HTMLParserScriptRunner::ProcessScriptElement(blink::Element*, WTF::TextPosition const&) ./../../third_party/blink/renderer/core/script/html_parser_script_runner.cc:320:3
    #36 0x55f19bba7bc8 in RunScriptsForPausedTreeBuilder ./../../third_party/blink/renderer/core/html/parser/html_document_parser.cc:278:21
    #37 0x55f19bba7bc8 in blink::HTMLDocumentParser::ProcessTokenizedChunkFromBackgroundParser(std::__1::unique_ptr<blink::HTMLDocumentParser::TokenizedChunk, std::__1::default_delete<blink::HTMLDocumentParser::TokenizedChunk> >) ./../../third_party/blink/renderer/core/html/parser/html_document_parser.cc:535:0
    #38 0x55f19bba128a in blink::HTMLDocumentParser::PumpPendingSpeculations() ./../../third_party/blink/renderer/core/html/parser/html_document_parser.cc:593:9
    #39 0x55f19bbb6c15 in blink::HTMLDocumentParser::ResumeParsingAfterPause() ./../../third_party/blink/renderer/core/html/parser/html_document_parser.cc:1036:7
    #40 0x55f19d58deed in blink::ClassicPendingScript::AdvanceReadyState(blink::ClassicPendingScript::ReadyState) ./../../third_party/blink/renderer/core/script/classic_pending_script.cc:403:5
    #41 0x55f19d58d9b1 in blink::ClassicPendingScript::NotifyFinished(blink::Resource*) ./../../third_party/blink/renderer/core/script/classic_pending_script.cc:268:3
    #42 0x55f18d3ff65b in blink::Resource::NotifyFinished() ./../../third_party/blink/renderer/platform/loader/fetch/resource.cc:215:8
    #43 0x55f190dcd31b in Run ./../../base/callback.h:99:12
    #44 0x55f190dcd31b in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) ./../../base/debug/task_annotator.cc:99:0
    #45 0x55f190f33dd4 in base::sequence_manager::internal::ThreadControllerImpl::DoWork(base::sequence_manager::internal::ThreadControllerImpl::WorkType) ./../../base/task/sequence_manager/thread_controller_impl.cc:209:23
    #46 0x55f190dcd31b in Run ./../../base/callback.h:99:12
    #47 0x55f190dcd31b in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) ./../../base/debug/task_annotator.cc:99:0
    #48 0x55f190dc8c23 in base::MessageLoopImpl::RunTask(base::PendingTask*) ./../../base/message_loop/message_loop_impl.cc:353:46
    #49 0x55f190dcab02 in DeferOrRunPendingTask ./../../base/message_loop/message_loop_impl.cc:364:5
    #50 0x55f190dcab02 in base::MessageLoopImpl::DoWork() ./../../base/message_loop/message_loop_impl.cc:472:0
    #51 0x55f190dd4e93 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) ./../../base/message_loop/message_pump_default.cc:39:31
    #52 0x55f190e74072 in base::RunLoop::Run() ./../../base/run_loop.cc:150:14
    #53 0x55f1a2eb164c in content::RendererMain(content::MainFunctionParams const&) ./../../content/renderer/renderer_main.cc:233:16
    #54 0x55f18db0a8d6 in content::RunZygote(content::ContentMainDelegate*) ./../../content/app/content_main_runner_impl.cc:503:14
    #55 0x55f18db0d34a in content::RunOtherNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) ./../../content/app/content_main_runner_impl.cc:580:12
    #56 0x55f18db109ac in content::ContentMainRunnerImpl::Run(bool) ./../../content/app/content_main_runner_impl.cc:871:10
    #57 0x55f197d9b5da in service_manager::Main(service_manager::MainParams const&) ./../../services/service_manager/embedder/main.cc:461:29
    #58 0x55f189f1705b in content::ContentMain(content::ContentMainParams const&) ./../../content/app/content_main.cc:19:10
    #59 0x55f186fae865 in main ./../../content/shell/app/shell_main.cc:39:10
    #60 0x7fb1227ccf44 in __libc_start_main ??:0:0
    #61 0x55f186f39029 in _start ??:0:0

  Uninitialized value was stored to memory at
    #0 0x55f19ca1585b in blink::NGCaretNavigator::NGCaretNavigator(blink::NGInlineNodeData const&) ./../../third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.cc:25:7
    #1 0x55f19ca2e574 in make_unique<blink::NGCaretNavigator, blink::NGInlineNodeData &> ./../../buildtools/third_party/libc++/trunk/include/memory:3118:32
    #2 0x55f19ca2e574 in blink::NGInlineNode::ComputeOffsetMapping(blink::LayoutBlockFlow*, blink::NGInlineNodeData*) ./../../third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc:466:0
    #3 0x55f19ca310ff in blink::NGInlineNode::GetOffsetMapping(blink::LayoutBlockFlow*, std::__1::unique_ptr<blink::NGOffsetMapping, std::__1::default_delete<blink::NGOffsetMapping> >*) ./../../third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc:497:3
    #4 0x55f19abe0fb3 in TraverseWithBidiCaretAffinity<blink::EditingAlgorithm<blink::NodeTraversal>, blink::(anonymous namespace)::TraversalLeft<blink::EditingAlgorithm<blink::NodeTraversal> > > ./../../third_party/blink/renderer/core/editing/selection_modifier_character.cc:533:7
    #5 0x55f19abe0fb3 in TraverseAlgorithm<blink::EditingAlgorithm<blink::NodeTraversal>, blink::(anonymous namespace)::TraversalLeft<blink::EditingAlgorithm<blink::NodeTraversal> > > ./../../third_party/blink/renderer/core/editing/selection_modifier_character.cc:580:0
    #6 0x55f19abe0fb3 in blink::LeftPositionOf(blink::VisiblePositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> > const&) ./../../third_party/blink/renderer/core/editing/selection_modifier_character.cc:598:0
    #7 0x55f19abe8a35 in blink::(anonymous namespace)::VisualWordPosition(blink::VisiblePositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> > const&, blink::(anonymous namespace)::CursorMovementDirection, bool) ./../../third_party/blink/renderer/core/editing/selection_modifier_word.cc:325:57
    #8 0x55f19abe80e8 in blink::SelectionModifier::LeftWordPosition(blink::VisiblePositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> > const&, bool) ./../../third_party/blink/renderer/core/editing/selection_modifier_word.cc:410:44
    #9 0x55f19abd86c1 in blink::SelectionModifier::ModifyMovingLeft(blink::TextGranularity) ./../../third_party/blink/renderer/core/editing/selection_modifier.cc:567:14
    #10 0x55f19abdb905 in blink::SelectionModifier::ComputeModifyPosition(blink::SelectionModifyAlteration, blink::SelectionModifyDirection, blink::TextGranularity) ./../../third_party/blink/renderer/core/editing/selection_modifier.cc:656:16
    #11 0x55f19abdc2ee in blink::SelectionModifier::Modify(blink::SelectionModifyAlteration, blink::SelectionModifyDirection, blink::TextGranularity) ./../../third_party/blink/renderer/core/editing/selection_modifier.cc:681:7
    #12 0x55f19aa9b7e3 in blink::FrameSelection::Modify(blink::SelectionModifyAlteration, blink::SelectionModifyDirection, blink::TextGranularity, blink::SetSelectionBy) ./../../third_party/blink/renderer/core/editing/frame_selection.cc:368:26
    #13 0x55f19aa1ecb5 in blink::DOMSelection::modify(WTF::String const&, WTF::String const&, WTF::String const&) ./../../third_party/blink/renderer/core/editing/dom_selection.cc:455:27
    #14 0x55f1986febe9 in ModifyMethod ./gen/third_party/blink/renderer/bindings/core/v8/v8_selection.cc:467:9
    #15 0x55f1986febe9 in blink::V8Selection::ModifyMethodCallback(v8::FunctionCallbackInfo<v8::Value> const&) ./gen/third_party/blink/renderer/bindings/core/v8/v8_selection.cc:692:0
    #16 0x55f18a4dc723 in v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) ./../../v8/src/api-arguments-inl.h:146:3
    #17 0x55f18a4d896d in v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) ./../../v8/src/builtins/builtins-api.cc:109:36
    #18 0x55f18a4d484e in v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) ./../../v8/src/builtins/builtins-api.cc:139:5
    #19 0x55f18cc1a5f5 in v8::internal::Simulator::DoRuntimeCall(v8::internal::Instruction*) ./../../v8/src/arm64/simulator-arm64.cc:537:11
    #20 0x55f18cc19bf7 in v8::internal::Simulator::ExecuteInstruction() ./../../v8/src/arm64/simulator-arm64.h:781:5
    #21 0x55f18cc199be in v8::internal::Simulator::Run() ./../../v8/src/arm64/simulator-arm64.cc:388:5
    #22 0x55f18cc16b5b in CheckPCSComplianceAndRun ./../../v8/src/arm64/simulator-arm64.cc:186:3
    #23 0x55f18cc16b5b in v8::internal::Simulator::CallImpl(unsigned long, v8::internal::Simulator::CallArgument*) ./../../v8/src/arm64/simulator-arm64.cc:155:0
    #24 0x55f18b4e6820 in Call<unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, long, unsigned long **> ./../../v8/src/arm64/simulator-arm64.h:727:5
    #25 0x55f18b4e6820 in Call ./../../v8/src/simulator.h:118:0
    #26 0x55f18b4e6820 in v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) ./../../v8/src/execution.cc:293:0

  Uninitialized value was stored to memory at
    #0 0x55f19ca2eeac in blink::NGInlineNode::ComputeOffsetMapping(blink::LayoutBlockFlow*, blink::NGInlineNodeData*) ./../../third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc:450:30
    #1 0x55f19ca310ff in blink::NGInlineNode::GetOffsetMapping(blink::LayoutBlockFlow*, std::__1::unique_ptr<blink::NGOffsetMapping, std::__1::default_delete<blink::NGOffsetMapping> >*) ./../../third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc:497:3
    #2 0x55f19abe0fb3 in TraverseWithBidiCaretAffinity<blink::EditingAlgorithm<blink::NodeTraversal>, blink::(anonymous namespace)::TraversalLeft<blink::EditingAlgorithm<blink::NodeTraversal> > > ./../../third_party/blink/renderer/core/editing/selection_modifier_character.cc:533:7
    #3 0x55f19abe0fb3 in TraverseAlgorithm<blink::EditingAlgorithm<blink::NodeTraversal>, blink::(anonymous namespace)::TraversalLeft<blink::EditingAlgorithm<blink::NodeTraversal> > > ./../../third_party/blink/renderer/core/editing/selection_modifier_character.cc:580:0
    #4 0x55f19abe0fb3 in blink::LeftPositionOf(blink::VisiblePositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> > const&) ./../../third_party/blink/renderer/core/editing/selection_modifier_character.cc:598:0
    #5 0x55f19abe8a35 in blink::(anonymous namespace)::VisualWordPosition(blink::VisiblePositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> > const&, blink::(anonymous namespace)::CursorMovementDirection, bool) ./../../third_party/blink/renderer/core/editing/selection_modifier_word.cc:325:57
    #6 0x55f19abe80e8 in blink::SelectionModifier::LeftWordPosition(blink::VisiblePositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> > const&, bool) ./../../third_party/blink/renderer/core/editing/selection_modifier_word.cc:410:44
    #7 0x55f19abd86c1 in blink::SelectionModifier::ModifyMovingLeft(blink::TextGranularity) ./../../third_party/blink/renderer/core/editing/selection_modifier.cc:567:14
    #8 0x55f19abdb905 in blink::SelectionModifier::ComputeModifyPosition(blink::SelectionModifyAlteration, blink::SelectionModifyDirection, blink::TextGranularity) ./../../third_party/blink/renderer/core/editing/selection_modifier.cc:656:16
    #9 0x55f19abdc2ee in blink::SelectionModifier::Modify(blink::SelectionModifyAlteration, blink::SelectionModifyDirection, blink::TextGranularity) ./../../third_party/blink/renderer/core/editing/selection_modifier.cc:681:7
    #10 0x55f19aa9b7e3 in blink::FrameSelection::Modify(blink::SelectionModifyAlteration, blink::SelectionModifyDirection, blink::TextGranularity, blink::SetSelectionBy) ./../../third_party/blink/renderer/core/editing/frame_selection.cc:368:26
    #11 0x55f19aa1ecb5 in blink::DOMSelection::modify(WTF::String const&, WTF::String const&, WTF::String const&) ./../../third_party/blink/renderer/core/editing/dom_selection.cc:455:27
    #12 0x55f1986febe9 in ModifyMethod ./gen/third_party/blink/renderer/bindings/core/v8/v8_selection.cc:467:9
    #13 0x55f1986febe9 in blink::V8Selection::ModifyMethodCallback(v8::FunctionCallbackInfo<v8::Value> const&) ./gen/third_party/blink/renderer/bindings/core/v8/v8_selection.cc:692:0
    #14 0x55f18a4dc723 in v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) ./../../v8/src/api-arguments-inl.h:146:3
    #15 0x55f18a4d896d in v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) ./../../v8/src/builtins/builtins-api.cc:109:36
    #16 0x55f18a4d484e in v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) ./../../v8/src/builtins/builtins-api.cc:139:5
    #17 0x55f18cc1a5f5 in v8::internal::Simulator::DoRuntimeCall(v8::internal::Instruction*) ./../../v8/src/arm64/simulator-arm64.cc:537:11
    #18 0x55f18cc19bf7 in v8::internal::Simulator::ExecuteInstruction() ./../../v8/src/arm64/simulator-arm64.h:781:5
    #19 0x55f18cc199be in v8::internal::Simulator::Run() ./../../v8/src/arm64/simulator-arm64.cc:388:5
    #20 0x55f18cc16b5b in CheckPCSComplianceAndRun ./../../v8/src/arm64/simulator-arm64.cc:186:3
    #21 0x55f18cc16b5b in v8::internal::Simulator::CallImpl(unsigned long, v8::internal::Simulator::CallArgument*) ./../../v8/src/arm64/simulator-arm64.cc:155:0
    #22 0x55f18b4e6820 in Call<unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, long, unsigned long **> ./../../v8/src/arm64/simulator-arm64.h:727:5
    #23 0x55f18b4e6820 in Call ./../../v8/src/simulator.h:118:0
    #24 0x55f18b4e6820 in v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) ./../../v8/src/execution.cc:293:0
    #25 0x55f18b4e4f50 in v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) ./../../v8/src/execution.cc:369:10

  Uninitialized value was created by an allocation of 'data' in the stack frame of function '_ZN5blink12NGInlineNode16GetOffsetMappingEPNS_15LayoutBlockFlowEPNSt3__110unique_ptrINS_15NGOffsetMappingENS3_14default_deleteIS5_EEEE'
    #0 0x55f19ca30dc0 in blink::NGInlineNode::GetOffsetMapping(blink::LayoutBlockFlow*, std::__1::unique_ptr<blink::NGOffsetMapping, std::__1::default_delete<blink::NGOffsetMapping> >*) ./../../third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc:479:0

SUMMARY: MemorySanitizer: use-of-uninitialized-value (/b/s/w/ir/out/Release/content_shell+0x17ba4095)
Exiting
Project Member

Comment 31 by bugdroid1@chromium.org, Jan 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/656da9a4695553f32e1609a508822de1c8d3cf3d

commit 656da9a4695553f32e1609a508822de1c8d3cf3d
Author: Dominic Battré <battre@chromium.org>
Date: Tue Jan 15 10:50:48 2019

Revert "[BidiCaretAffinity] Deduplicate NGCaretNavigator left and right handling"

This reverts commit e7ec34625844aa9cf12b3dad7c94ae899bcb51cb.

Reason for revert: Use of uninitialized memory: crbug.com/894651

Original change's description:
> [BidiCaretAffinity] Deduplicate NGCaretNavigator left and right handling
> 
> Since left and right handling is symmetric, this patch collapses them to
> reduce code duplicacy. It also makes it easier to implement more
> complicated cases in NGCaretNavigator.
> 
> Bug: 894651
> Change-Id: I8cdc94c32bfa3fb6646c40750167e69561548797
> Reviewed-on: https://chromium-review.googlesource.com/c/1407502
> Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
> Reviewed-by: Emil A Eklund <eae@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#622687}

TBR=yosin@chromium.org,eae@chromium.org,yoichio@chromium.org,kojii@chromium.org,xiaochengh@chromium.org

Change-Id: I9a5c3fb1bd3c95c9411c1a3247f8c4e367461283
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 894651
Reviewed-on: https://chromium-review.googlesource.com/c/1411917
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622807}
[modify] https://crrev.com/656da9a4695553f32e1609a508822de1c8d3cf3d/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.cc
[modify] https://crrev.com/656da9a4695553f32e1609a508822de1c8d3cf3d/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.h

Project Member

Comment 32 by bugdroid1@chromium.org, Jan 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0cc739b1bacbc38cd669e773fe130fa3f67954cd

commit 0cc739b1bacbc38cd669e773fe130fa3f67954cd
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Wed Jan 16 01:02:11 2019

Reland "[BidiCaretAffinity] Deduplicate NGCaretNavigator left and right handling"

This reverts commit 656da9a4695553f32e1609a508822de1c8d3cf3d.

Reason for revert: The use-of-unitialized-memory issue is fixed.

Original change's description:
> Revert "[BidiCaretAffinity] Deduplicate NGCaretNavigator left and right handling"
> 
> This reverts commit e7ec34625844aa9cf12b3dad7c94ae899bcb51cb.
> 
> Reason for revert: Use of uninitialized memory: crbug.com/894651
> 
> Original change's description:
> > [BidiCaretAffinity] Deduplicate NGCaretNavigator left and right handling
> > 
> > Since left and right handling is symmetric, this patch collapses them to
> > reduce code duplicacy. It also makes it easier to implement more
> > complicated cases in NGCaretNavigator.
> > 
> > Bug: 894651
> > Change-Id: I8cdc94c32bfa3fb6646c40750167e69561548797
> > Reviewed-on: https://chromium-review.googlesource.com/c/1407502
> > Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
> > Reviewed-by: Emil A Eklund <eae@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#622687}
> 
> TBR=yosin@chromium.org,eae@chromium.org,yoichio@chromium.org,kojii@chromium.org,xiaochengh@chromium.org
> 
> Change-Id: I9a5c3fb1bd3c95c9411c1a3247f8c4e367461283
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 894651
> Reviewed-on: https://chromium-review.googlesource.com/c/1411917
> Reviewed-by: Dominic Battré <battre@chromium.org>
> Commit-Queue: Dominic Battré <battre@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#622807}

TBR=yosin@chromium.org,battre@chromium.org,eae@chromium.org,yoichio@chromium.org,kojii@chromium.org,xiaochengh@chromium.org

Change-Id: I39066019319bf27f7b4c08125692ad5abb48de1f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 894651
Reviewed-on: https://chromium-review.googlesource.com/c/1413272
Reviewed-by: Xiaocheng Hu <xiaochengh@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622957}
[modify] https://crrev.com/0cc739b1bacbc38cd669e773fe130fa3f67954cd/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.cc
[modify] https://crrev.com/0cc739b1bacbc38cd669e773fe130fa3f67954cd/third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.h
[modify] https://crrev.com/0cc739b1bacbc38cd669e773fe130fa3f67954cd/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc

Comment 33 by xiaoche...@chromium.org, Jan 16 (6 days ago)

Blocking: 922409

Comment 34 by xiaoche...@chromium.org, Jan 17 (5 days ago)

Blockedon: 923087
Project Member

Comment 35 by bugdroid1@chromium.org, Jan 21 (2 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/016a1c0c5f54cf06e3ab7c5d11430868a0f18828

commit 016a1c0c5f54cf06e3ab7c5d11430868a0f18828
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Mon Jan 21 05:24:34 2019

Convert editing/inserting/5510537.html with selection_test()

This patch converts the web test with selection_test() to promote the
usage of W3C test harness. It also avoid a minor 1px image diff with
bidi caret affinity in crrev.com/c/1419249.

Bug: 894651
Change-Id: If6757de2c7b6b8edc97b7222783bf5a999c9db47
Reviewed-on: https://chromium-review.googlesource.com/c/1422670
Auto-Submit: Xiaocheng Hu <xiaochengh@chromium.org>
Commit-Queue: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624521}
[modify] https://crrev.com/016a1c0c5f54cf06e3ab7c5d11430868a0f18828/third_party/blink/web_tests/editing/inserting/5510537.html
[delete] https://crrev.com/8997ab92e68fa91597c7034783abacbb19af64f6/third_party/blink/web_tests/platform/linux/editing/inserting/5510537-expected.png
[delete] https://crrev.com/8997ab92e68fa91597c7034783abacbb19af64f6/third_party/blink/web_tests/platform/mac/editing/inserting/5510537-expected.png
[delete] https://crrev.com/8997ab92e68fa91597c7034783abacbb19af64f6/third_party/blink/web_tests/platform/win/editing/inserting/5510537-expected.png

Project Member

Comment 36 by bugdroid1@chromium.org, Jan 21 (2 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5db9d997e77100c7cc6c72b751046db43339f3dc

commit 5db9d997e77100c7cc6c72b751046db43339f3dc
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Mon Jan 21 05:25:19 2019

Convert editing/inserting/5156401-2.html with selection_test()

This patch converts the web test with selection_test() to promote the
usage of W3C test harness. It also avoid a minor 1px image diff with
bidi caret affinity in crrev.com/c/1419249.

Bug: 894651
Change-Id: Iee531e6f3f6bc939b9459768cffd213edaebeb5e
Reviewed-on: https://chromium-review.googlesource.com/c/1423220
Auto-Submit: Xiaocheng Hu <xiaochengh@chromium.org>
Commit-Queue: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624522}
[modify] https://crrev.com/5db9d997e77100c7cc6c72b751046db43339f3dc/third_party/blink/web_tests/editing/inserting/5156401-2.html
[delete] https://crrev.com/016a1c0c5f54cf06e3ab7c5d11430868a0f18828/third_party/blink/web_tests/platform/android/editing/inserting/5156401-2-expected.png
[delete] https://crrev.com/016a1c0c5f54cf06e3ab7c5d11430868a0f18828/third_party/blink/web_tests/platform/linux/editing/inserting/5156401-2-expected.png
[delete] https://crrev.com/016a1c0c5f54cf06e3ab7c5d11430868a0f18828/third_party/blink/web_tests/platform/mac/editing/inserting/5156401-2-expected.png
[delete] https://crrev.com/016a1c0c5f54cf06e3ab7c5d11430868a0f18828/third_party/blink/web_tests/platform/win/editing/inserting/5156401-2-expected.png

Project Member

Comment 37 by bugdroid1@chromium.org, Jan 21 (2 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6fbed91d36439a6a5306c32d2c999bdeacba09d1

commit 6fbed91d36439a6a5306c32d2c999bdeacba09d1
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Mon Jan 21 06:00:08 2019

Convert editing/pasteboard/5006779.html with selection_test()

This patch converts the web test with selection_test() to promote the
usage of W3C test harness. It also avoid a minor 1px image diff with
bidi caret affinity in crrev.com/c/1419249.

Bug: 894651
Change-Id: I9a7243e2819f1636aaf1ce137039f2ec67b5c18a
Reviewed-on: https://chromium-review.googlesource.com/c/1422386
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Auto-Submit: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624524}
[modify] https://crrev.com/6fbed91d36439a6a5306c32d2c999bdeacba09d1/third_party/blink/web_tests/editing/pasteboard/5006779.html
[delete] https://crrev.com/792dfe5ee0c0390a87f9e69a771569e925c83709/third_party/blink/web_tests/platform/linux/editing/pasteboard/5006779-expected.png
[delete] https://crrev.com/792dfe5ee0c0390a87f9e69a771569e925c83709/third_party/blink/web_tests/platform/mac/editing/pasteboard/5006779-expected.png
[delete] https://crrev.com/792dfe5ee0c0390a87f9e69a771569e925c83709/third_party/blink/web_tests/platform/win/editing/pasteboard/5006779-expected.png

Project Member

Comment 38 by bugdroid1@chromium.org, Yesterday (37 hours ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/58db3f4abe63721b8508ae2668457fd0afb18d7c

commit 58db3f4abe63721b8508ae2668457fd0afb18d7c
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Mon Jan 21 19:11:02 2019

Convert editing/inserting/6703873.html with selection_test()

This patch converts the web test with selection_test() to promote the
usage of W3C test harness. It also avoid a minor 1px image diff with
bidi caret affinity in crrev.com/c/1419249.

Bug: 894651
Change-Id: I9420bc23ceba16b2441a9659d15a9e738b5afef3
Reviewed-on: https://chromium-review.googlesource.com/c/1423420
Auto-Submit: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624644}
[modify] https://crrev.com/58db3f4abe63721b8508ae2668457fd0afb18d7c/third_party/blink/web_tests/editing/inserting/6703873.html
[delete] https://crrev.com/0d97abe82fb0f4bfaf9ca4c21231add9c358344f/third_party/blink/web_tests/platform/linux/editing/inserting/6703873-expected.png
[delete] https://crrev.com/0d97abe82fb0f4bfaf9ca4c21231add9c358344f/third_party/blink/web_tests/platform/mac/editing/inserting/6703873-expected.png
[delete] https://crrev.com/0d97abe82fb0f4bfaf9ca4c21231add9c358344f/third_party/blink/web_tests/platform/win/editing/inserting/6703873-expected.png

Project Member

Comment 39 by bugdroid1@chromium.org, Yesterday (35 hours ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/596d3a3bd75385f29b2458e26d2966e541ae7c97

commit 596d3a3bd75385f29b2458e26d2966e541ae7c97
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Mon Jan 21 20:52:42 2019

Convert editing/inserting/break-blockquote-after-delete.html with selection_test()

This patch converts the web test with selection_test() to promote the
usage of W3C test harness. It also avoid a minor 1px image diff with
bidi caret affinity in crrev.com/c/1419249.

Bug: 894651
Change-Id: I7a4aedc790750ecf83928c1c87b1b68babdf09d9
Reviewed-on: https://chromium-review.googlesource.com/c/1423458
Auto-Submit: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624647}
[modify] https://crrev.com/596d3a3bd75385f29b2458e26d2966e541ae7c97/third_party/blink/web_tests/editing/inserting/break-blockquote-after-delete.html
[delete] https://crrev.com/9eca44242f7b0f42a4af33e1dbda178785ca91af/third_party/blink/web_tests/platform/linux/editing/inserting/break-blockquote-after-delete-expected.png
[delete] https://crrev.com/9eca44242f7b0f42a4af33e1dbda178785ca91af/third_party/blink/web_tests/platform/mac/editing/inserting/break-blockquote-after-delete-expected.png
[delete] https://crrev.com/9eca44242f7b0f42a4af33e1dbda178785ca91af/third_party/blink/web_tests/platform/win/editing/inserting/break-blockquote-after-delete-expected.png

Project Member

Comment 40 by bugdroid1@chromium.org, Yesterday (35 hours ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9373669213b5b05a28ebf31358763997b3a1b75d

commit 9373669213b5b05a28ebf31358763997b3a1b75d
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Mon Jan 21 21:02:28 2019

Convert editing/selection/selection-3748164-fix.html with selection_test()

This patch converts the web test with selection_test() to promote the
usage of W3C test harness. It also avoid a minor 1px image diff with
bidi caret affinity in crrev.com/c/1419249.

Bug: 894651
Change-Id: I3cca3b080315334ca316c9a24f7313d69236c061
Reviewed-on: https://chromium-review.googlesource.com/c/1422960
Auto-Submit: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624663}
[modify] https://crrev.com/9373669213b5b05a28ebf31358763997b3a1b75d/third_party/blink/web_tests/editing/selection/selection-3748164-fix.html
[delete] https://crrev.com/aac4cd1c2037eb0d2285e15e5c9ab7bc1d2bd0b5/third_party/blink/web_tests/platform/linux/editing/selection/selection-3748164-fix-expected.png
[delete] https://crrev.com/aac4cd1c2037eb0d2285e15e5c9ab7bc1d2bd0b5/third_party/blink/web_tests/platform/mac/editing/selection/selection-3748164-fix-expected.png
[delete] https://crrev.com/aac4cd1c2037eb0d2285e15e5c9ab7bc1d2bd0b5/third_party/blink/web_tests/platform/mac/editing/selection/selection-3748164-fix-expected.txt
[delete] https://crrev.com/aac4cd1c2037eb0d2285e15e5c9ab7bc1d2bd0b5/third_party/blink/web_tests/platform/win/editing/selection/selection-3748164-fix-expected.png
[delete] https://crrev.com/aac4cd1c2037eb0d2285e15e5c9ab7bc1d2bd0b5/third_party/blink/web_tests/platform/win/editing/selection/selection-3748164-fix-expected.txt

Project Member

Comment 41 by bugdroid1@chromium.org, Yesterday (28 hours ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4452cec511b7d11d7a09e6a5a7ceed6b29e958b4

commit 4452cec511b7d11d7a09e6a5a7ceed6b29e958b4
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Tue Jan 22 04:02:49 2019

[BidiCaretAffinity] Handle downstream-before-br caret positions

With bidi caret affinity, if the last text node before a BR has a
different direction than line direction, e.g.,

<div>ABC<br>def</div>

Then the downstream caret position at the end of the node should be
resolved at the <br> instead. For example,

"ABC"@3/Downstream should be resolved at the right edge of the line.

This patch implements that.

Bug: 894651
Change-Id: I4c940373032d78a8529383320ddc767afa228da9
Reviewed-on: https://chromium-review.googlesource.com/c/1419249
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624721}
[modify] https://crrev.com/4452cec511b7d11d7a09e6a5a7ceed6b29e958b4/third_party/blink/renderer/core/editing/inline_box_position.cc
[modify] https://crrev.com/4452cec511b7d11d7a09e6a5a7ceed6b29e958b4/third_party/blink/renderer/core/editing/inline_box_position_test.cc

Sign in to add a comment