New issue
Advanced search Search tips

Issue 625533 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug


Sign in to add a comment

Postpone visible selection canonicaliazation

Project Member Reported by yosin@chromium.org, Jul 4 2016

Issue description

To make editing pipeline aware, we should postpone visible position canaonicalization on demand.
 

Comment 1 by yosin@chromium.org, Jul 4 2016

Blocking: 606535

Comment 2 by yosin@chromium.org, Jul 4 2016

Blocking: 605499

Comment 3 by yosin@chromium.org, Jul 6 2016

Blocking: 619131
Project Member

Comment 4 by bugdroid1@chromium.org, Sep 2 2016

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

commit 0c98c82a51910a35f9b407e429f924d1c36726a7
Author: yosin <yosin@chromium.org>
Date: Fri Sep 02 07:48:41 2016

Make editing/inserting/typing-at-end-of-line.html not to use "editing.js"

This patch makes "editing/inserting/typing-at-end-of-line.html" not to use
"editing.js" to avoid logging selection changes as a preparation of postpone
visual position canonicalization, since this test verifies "layout" instead
of editing functionality.

BUG= 625533 
TEST=n/a; no behavior changes

Review-Url: https://codereview.chromium.org/2301373002
Cr-Commit-Position: refs/heads/master@{#416209}

[modify] https://crrev.com/0c98c82a51910a35f9b407e429f924d1c36726a7/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/0c98c82a51910a35f9b407e429f924d1c36726a7/third_party/WebKit/LayoutTests/editing/inserting/typing-at-end-of-line.html

Project Member

Comment 6 by bugdroid1@chromium.org, Sep 6 2016

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

commit 45c6af0b16f54d6fedb822703b587af3f6c97363
Author: Rebaseline Bot <blink-rebaseline-bot@chromium.org>
Date: Tue Sep 06 01:49:58 2016

Auto-rebaseline for r416569

https://chromium.googlesource.com/chromium/src/+/18e8c6637

BUG= 625533 
TBR=yosin@chromium.org

Review URL: https://codereview.chromium.org/2317523002 .

Cr-Commit-Position: refs/heads/master@{#416574}

[modify] https://crrev.com/45c6af0b16f54d6fedb822703b587af3f6c97363/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/45c6af0b16f54d6fedb822703b587af3f6c97363/third_party/WebKit/LayoutTests/platform/android/editing/spelling/spelling-expected.png
[add] https://crrev.com/45c6af0b16f54d6fedb822703b587af3f6c97363/third_party/WebKit/LayoutTests/platform/android/editing/spelling/spelling-expected.txt
[modify] https://crrev.com/45c6af0b16f54d6fedb822703b587af3f6c97363/third_party/WebKit/LayoutTests/platform/linux/editing/spelling/spelling-expected.png
[modify] https://crrev.com/45c6af0b16f54d6fedb822703b587af3f6c97363/third_party/WebKit/LayoutTests/platform/linux/editing/spelling/spelling-expected.txt
[modify] https://crrev.com/45c6af0b16f54d6fedb822703b587af3f6c97363/third_party/WebKit/LayoutTests/platform/mac/editing/spelling/spelling-expected.png
[modify] https://crrev.com/45c6af0b16f54d6fedb822703b587af3f6c97363/third_party/WebKit/LayoutTests/platform/mac/editing/spelling/spelling-expected.txt
[modify] https://crrev.com/45c6af0b16f54d6fedb822703b587af3f6c97363/third_party/WebKit/LayoutTests/platform/win/editing/spelling/spelling-expected.png
[modify] https://crrev.com/45c6af0b16f54d6fedb822703b587af3f6c97363/third_party/WebKit/LayoutTests/platform/win/editing/spelling/spelling-expected.txt

Comment 7 by tkent@chromium.org, Oct 12 2016

Components: -Blink>TextSelection Blink>Editing>Selection
Project Member

Comment 8 by bugdroid1@chromium.org, Oct 13 2016

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

commit e7a92d5235ce35ad2f7127ebbefbcd357e569379
Author: yosin <yosin@chromium.org>
Date: Thu Oct 13 03:49:44 2016

Introduce Selection class

This patch introduces |Selection| class which is exclude visible position
canonicalization from |VisibleSelection|. The relation between |Selection| and
|VisibleSelection| is similar to |Position| and |VisiblePosition|.

This patch is a preparation of implementing lazy visible position
canonicalization on |FrameSelection|, http://crrev.com/1958093002

BUG= 139552 ,  603684 ,  606499 ,  625533 ,  644648 
TEST=run_webkit_unittests --gtest_filler=SelectionTest.*

Review-Url: https://codereview.chromium.org/2393403002
Cr-Commit-Position: refs/heads/master@{#424950}

[modify] https://crrev.com/e7a92d5235ce35ad2f7127ebbefbcd357e569379/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/e7a92d5235ce35ad2f7127ebbefbcd357e569379/third_party/WebKit/Source/core/editing/BUILD.gn
[add] https://crrev.com/e7a92d5235ce35ad2f7127ebbefbcd357e569379/third_party/WebKit/Source/core/editing/SelectionTemplate.cpp
[add] https://crrev.com/e7a92d5235ce35ad2f7127ebbefbcd357e569379/third_party/WebKit/Source/core/editing/SelectionTemplate.h
[add] https://crrev.com/e7a92d5235ce35ad2f7127ebbefbcd357e569379/third_party/WebKit/Source/core/editing/SelectionTemplateTest.cpp

Comment 9 by yosin@chromium.org, Oct 19 2016

Summary: Postpone visible selection canonicaliazation (was: Postpone visible position canonicaliazation)
Project Member

Comment 10 by bugdroid1@chromium.org, Oct 20 2016

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

commit 53fdf8113ed9a3998e3f7472d9cb5c5a7b71f3d2
Author: yosin <yosin@chromium.org>
Date: Thu Oct 20 03:26:43 2016

Make SpellChecker::respondToChangedSelection() to take Position instead of VisibleSelection

This patch changes |SpellChecker::respondToChangedSelection()| to take start
|Position| of selection instead of |VisibleSelection| for
 - reduce usage of |VisibleSelection|
 - a preparation of http://crrev.com/1958093002, Postpone visible selection
 canonicalization

BUG= 625533 , 657237
TEST=n/a; no behavior changes

Review-Url: https://chromiumcodereview.appspot.com/2424383002
Cr-Commit-Position: refs/heads/master@{#426382}

[modify] https://crrev.com/53fdf8113ed9a3998e3f7472d9cb5c5a7b71f3d2/third_party/WebKit/Source/core/editing/Editor.cpp
[modify] https://crrev.com/53fdf8113ed9a3998e3f7472d9cb5c5a7b71f3d2/third_party/WebKit/Source/core/editing/Editor.h
[modify] https://crrev.com/53fdf8113ed9a3998e3f7472d9cb5c5a7b71f3d2/third_party/WebKit/Source/core/editing/FrameSelection.cpp
[modify] https://crrev.com/53fdf8113ed9a3998e3f7472d9cb5c5a7b71f3d2/third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp
[modify] https://crrev.com/53fdf8113ed9a3998e3f7472d9cb5c5a7b71f3d2/third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.h
[modify] https://crrev.com/53fdf8113ed9a3998e3f7472d9cb5c5a7b71f3d2/third_party/WebKit/Source/core/editing/spellcheck/SpellCheckerTest.cpp

Project Member

Comment 11 by bugdroid1@chromium.org, Oct 26 2016

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

commit 704b6ce74f9e2d5316c27ffb3f7b29c151c4be43
Author: yosin <yosin@chromium.org>
Date: Wed Oct 26 07:46:27 2016

Convert editing/deleting/merge-into-empty-block-[12].html to utilize w3c test harness

This patch converts "merge-into-empty-block-[12].html" to utilize w3c test
harness with |assert_selection()| to simplify test case and consolidate into
"merge_into_block.html" since these test files uses similar sample for improving
code health.

This patch is a preparation of http://crrev.com/1958093002

BUG= 625533 
TEST=n/a; no behavior chagnes

Review-Url: https://codereview.chromium.org/2451983002
Cr-Commit-Position: refs/heads/master@{#427630}

[delete] https://crrev.com/6ffd879eb8bcc2d15521ec42293811f3d78b5527/third_party/WebKit/LayoutTests/editing/deleting/merge-into-empty-block-1-expected.txt
[delete] https://crrev.com/6ffd879eb8bcc2d15521ec42293811f3d78b5527/third_party/WebKit/LayoutTests/editing/deleting/merge-into-empty-block-1.html
[delete] https://crrev.com/6ffd879eb8bcc2d15521ec42293811f3d78b5527/third_party/WebKit/LayoutTests/editing/deleting/merge-into-empty-block-2-expected.txt
[delete] https://crrev.com/6ffd879eb8bcc2d15521ec42293811f3d78b5527/third_party/WebKit/LayoutTests/editing/deleting/merge-into-empty-block-2.html
[add] https://crrev.com/704b6ce74f9e2d5316c27ffb3f7b29c151c4be43/third_party/WebKit/LayoutTests/editing/deleting/merge_into_empty_block.html

Project Member

Comment 12 by bugdroid1@chromium.org, Oct 26 2016

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

commit 76e037622f8f4c308e584a530da0af572a962b61
Author: yosin <yosin@chromium.org>
Date: Wed Oct 26 09:07:53 2016

Convert editing/deleting/nsresponder-indent.html to utilize w3c test harness

This patch converts "nsresponder-indent.html" to utilize w3c test harness with
|assert_selection()| to simplify test case for improving code health.

This patch is a preparation of http://crrev.com/1958093002

BUG= 625533 
TEST=n/a; no behavior changes

Review-Url: https://codereview.chromium.org/2454573002
Cr-Commit-Position: refs/heads/master@{#427645}

[modify] https://crrev.com/76e037622f8f4c308e584a530da0af572a962b61/third_party/WebKit/LayoutTests/editing/execCommand/nsresponder-indent.html
[delete] https://crrev.com/634bf88f3eb252bde4418e119ecc660bf08d2296/third_party/WebKit/LayoutTests/platform/linux/editing/execCommand/nsresponder-indent-expected.png
[delete] https://crrev.com/634bf88f3eb252bde4418e119ecc660bf08d2296/third_party/WebKit/LayoutTests/platform/linux/editing/execCommand/nsresponder-indent-expected.txt
[delete] https://crrev.com/634bf88f3eb252bde4418e119ecc660bf08d2296/third_party/WebKit/LayoutTests/platform/mac/editing/execCommand/nsresponder-indent-expected.png
[delete] https://crrev.com/634bf88f3eb252bde4418e119ecc660bf08d2296/third_party/WebKit/LayoutTests/platform/mac/editing/execCommand/nsresponder-indent-expected.txt
[delete] https://crrev.com/634bf88f3eb252bde4418e119ecc660bf08d2296/third_party/WebKit/LayoutTests/platform/win/editing/execCommand/nsresponder-indent-expected.png
[delete] https://crrev.com/634bf88f3eb252bde4418e119ecc660bf08d2296/third_party/WebKit/LayoutTests/platform/win/editing/execCommand/nsresponder-indent-expected.txt

Project Member

Comment 13 by bugdroid1@chromium.org, Oct 26 2016

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

commit 9bb574d303c5d83a913f752a8c6b7e0b45ee07a4
Author: yosin <yosin@chromium.org>
Date: Wed Oct 26 09:42:52 2016

Convert editing/deleting/format-block.html to utilize w3c test harness

This patch converts "format-block.html" to utilize w3c test harness with
|assert_selection()| to simplify test case for improving code health.

This patch is a preparation of http://crrev.com/1958093002

BUG= 625533 
TEST=n/a; no behavior changes

Review-Url: https://codereview.chromium.org/2448373003
Cr-Commit-Position: refs/heads/master@{#427651}

[delete] https://crrev.com/980a85e4e0dd7504cd00cb9dacf7d2b06347a24f/third_party/WebKit/LayoutTests/editing/execCommand/format-block-expected.txt
[modify] https://crrev.com/9bb574d303c5d83a913f752a8c6b7e0b45ee07a4/third_party/WebKit/LayoutTests/editing/execCommand/format-block.html

Project Member

Comment 14 by bugdroid1@chromium.org, Oct 26 2016

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

commit cb7f34f1ddb79c7271d36a9a15a9ab295b41ee4d
Author: yosin <yosin@chromium.org>
Date: Wed Oct 26 09:53:55 2016

Convert editing/pasteboard/copy-text-with-backgroundcolor.html .html to utilize w3c test harness

This patch converts "copy-text-with-backgroundcolor.html" to utilize w3c test
harness with |assert_selection()| to simplify test case for improving code
health.

This patch is a preparation of http://crrev.com/1958093002

BUG= 625533 
TEST=n/a; no behavior changes

Review-Url: https://codereview.chromium.org/2452553004
Cr-Commit-Position: refs/heads/master@{#427653}

[delete] https://crrev.com/917ba56f9257e406d4d0afd816ca8ad527ae1753/third_party/WebKit/LayoutTests/editing/pasteboard/copy-text-with-backgroundcolor-expected.txt
[modify] https://crrev.com/cb7f34f1ddb79c7271d36a9a15a9ab295b41ee4d/third_party/WebKit/LayoutTests/editing/pasteboard/copy-text-with-backgroundcolor.html

Project Member

Comment 15 by bugdroid1@chromium.org, Oct 26 2016

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

commit 8d1fbfc272fe547c7206d5c8c1538bcdbcb7507f
Author: yosin <yosin@chromium.org>
Date: Wed Oct 26 10:44:37 2016

Convert editing/deleting/remove-formatting.html to utilize w3c test harness

This patch converts "remove-formatting.html" to utilize w3c test harness with
|assert_selection()| to simplify test case for improving code health.

This patch is a preparation of http://crrev.com/1958093002

BUG= 625533 
TEST=n/a; no behavior changes

Review-Url: https://codereview.chromium.org/2452003002
Cr-Commit-Position: refs/heads/master@{#427663}

[delete] https://crrev.com/04209ec5b08095a9b207905c6d6090478892345a/third_party/WebKit/LayoutTests/editing/execCommand/remove-formatting-expected.txt
[modify] https://crrev.com/8d1fbfc272fe547c7206d5c8c1538bcdbcb7507f/third_party/WebKit/LayoutTests/editing/execCommand/remove-formatting.html

Project Member

Comment 16 by bugdroid1@chromium.org, Oct 27 2016

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

commit 7282895adefdb62c5724b4e76e65db701ddc532f
Author: yosin <yosin@chromium.org>
Date: Thu Oct 27 04:05:25 2016

Convert editing/style/toggle-style-bold-italic-mixed-editability.html to utilize w3c test harness

This patch converts "toggle-style-bold-italic-mixed-editability.html" to utilize
w3c test harness with |assert_selection()| to simplify test case for improving
code health.

This patch is a preparation of http://crrev.com/1958093002

BUG= 625533 
TEST=n/a; no behavior chagnes

Review-Url: https://codereview.chromium.org/2453723002
Cr-Commit-Position: refs/heads/master@{#427931}

[delete] https://crrev.com/8ab4e6840a53000878aaee4e4c9405bf1d8d58a4/third_party/WebKit/LayoutTests/editing/style/toggle-style-bold-italic-mixed-editability-expected.txt
[modify] https://crrev.com/7282895adefdb62c5724b4e76e65db701ddc532f/third_party/WebKit/LayoutTests/editing/style/toggle-style-bold-italic-mixed-editability.html

Project Member

Comment 17 by bugdroid1@chromium.org, Oct 27 2016

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

commit 95918a5127cdaec64c020ec43766c2dbc5033fff
Author: yosin <yosin@chromium.org>
Date: Thu Oct 27 04:06:53 2016

Convert editing/style/apple-style-editable-mix.html to utilize w3c test harness

This patch converts "apple-style-editable-mix.html" to utilize w3c test harness
with |assert_selection()| to simplify test case for improving code health.

This patch is a preparation of http://crrev.com/1958093002

BUG= 625533 
TEST=n/a; no behavior chagnes

Review-Url: https://codereview.chromium.org/2454613002
Cr-Commit-Position: refs/heads/master@{#427932}

[modify] https://crrev.com/95918a5127cdaec64c020ec43766c2dbc5033fff/third_party/WebKit/LayoutTests/editing/style/apple-style-editable-mix.html
[delete] https://crrev.com/7282895adefdb62c5724b4e76e65db701ddc532f/third_party/WebKit/LayoutTests/platform/linux/editing/style/apple-style-editable-mix-expected.png
[delete] https://crrev.com/7282895adefdb62c5724b4e76e65db701ddc532f/third_party/WebKit/LayoutTests/platform/linux/editing/style/apple-style-editable-mix-expected.txt
[delete] https://crrev.com/7282895adefdb62c5724b4e76e65db701ddc532f/third_party/WebKit/LayoutTests/platform/mac/editing/style/apple-style-editable-mix-expected.png
[delete] https://crrev.com/7282895adefdb62c5724b4e76e65db701ddc532f/third_party/WebKit/LayoutTests/platform/mac/editing/style/apple-style-editable-mix-expected.txt
[delete] https://crrev.com/7282895adefdb62c5724b4e76e65db701ddc532f/third_party/WebKit/LayoutTests/platform/win/editing/style/apple-style-editable-mix-expected.png
[delete] https://crrev.com/7282895adefdb62c5724b4e76e65db701ddc532f/third_party/WebKit/LayoutTests/platform/win/editing/style/apple-style-editable-mix-expected.txt

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 27 2016

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

commit b3dad5b30e4e8e9387d00732ad1f8f57b0a4070c
Author: yosin <yosin@chromium.org>
Date: Thu Oct 27 09:15:57 2016

Convert editing/style/toggle-style-bold-italic.html to utilize w3c test harness

This patch converts "toggle-style-bold-italic.html" to utilize w3c test harness
with |assert_selection()| to simplify test case for improving code health.

This patch is a preparation of http://crrev.com/1958093002

BUG= 625533 
TEST=n/a; no behavior chagnes

Review-Url: https://codereview.chromium.org/2453463007
Cr-Commit-Position: refs/heads/master@{#427976}

[delete] https://crrev.com/c3c75e5901c178ae6cc3ad8cad76556db7345a82/third_party/WebKit/LayoutTests/editing/style/toggle-style-bold-italic-expected.txt
[modify] https://crrev.com/b3dad5b30e4e8e9387d00732ad1f8f57b0a4070c/third_party/WebKit/LayoutTests/editing/style/toggle-style-bold-italic.html

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 28 2016

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

commit 4426277e20a694987c4a324b385d07e79279ff2c
Author: yosin <yosin@chromium.org>
Date: Fri Oct 28 05:16:15 2016

Convert editing/selection/4932260-[123].html to utilize w3c test harness

This patch converts "4932260-[123].html" to utilize w3c test harness with
|assert_selection()| to simplify test case and consolidate into
"move_around_image.html" since these test files were committed in same patch for
improving code health.

This patch is a preparation of http://crrev.com/1958093002

BUG= 625533 
TEST=n/a; no behavior chagnes

Review-Url: https://codereview.chromium.org/2446893006
Cr-Commit-Position: refs/heads/master@{#428290}

[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/editing/selection/4932260-1.html
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/editing/selection/4932260-2.html
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/editing/selection/4932260-3.html
[add] https://crrev.com/4426277e20a694987c4a324b385d07e79279ff2c/third_party/WebKit/LayoutTests/editing/selection/modify_move/move_around_image.html
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/linux/editing/selection/4932260-1-expected.png
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/linux/editing/selection/4932260-1-expected.txt
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/linux/editing/selection/4932260-2-expected.png
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/linux/editing/selection/4932260-2-expected.txt
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/linux/editing/selection/4932260-3-expected.png
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/linux/editing/selection/4932260-3-expected.txt
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/mac/editing/selection/4932260-1-expected.png
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/mac/editing/selection/4932260-1-expected.txt
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/mac/editing/selection/4932260-2-expected.png
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/mac/editing/selection/4932260-2-expected.txt
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/mac/editing/selection/4932260-3-expected.png
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/mac/editing/selection/4932260-3-expected.txt
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/win/editing/selection/4932260-1-expected.png
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/win/editing/selection/4932260-1-expected.txt
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/win/editing/selection/4932260-2-expected.png
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/win/editing/selection/4932260-2-expected.txt
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/win/editing/selection/4932260-3-expected.png
[delete] https://crrev.com/42b5e1d1eeea0b30d8332a919596ff39eae676d3/third_party/WebKit/LayoutTests/platform/win/editing/selection/4932260-3-expected.txt

Comment 20 by yosin@chromium.org, Nov 28 2016

Blocking: 139552

Comment 21 by yosin@chromium.org, Nov 28 2016

Blocking: 603684

Comment 22 by yosin@chromium.org, Nov 28 2016

Blocking: 606499

Comment 23 by yosin@chromium.org, Nov 28 2016

Blocking: 644648

Comment 24 by yosin@chromium.org, Nov 30 2016

Blocking: 669811

Comment 25 by yosin@chromium.org, Jan 12 2017

Blockedon: 680384
Blocking: 345935

Comment 27 by yosin@chromium.org, Jan 30 2017

Blocking: 685089
Project Member

Comment 28 by bugdroid1@chromium.org, Feb 13 2017

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

commit 157413286770a7ac5a24c446a30c08f749738276
Author: yosin <yosin@chromium.org>
Date: Mon Feb 13 10:55:13 2017

Make FrameSelection to hold non-canonicalized DOM positions

This patch makes |FrameSelection| to hold non-canonicalized DOM positions in
|SelectionEditor| to align Selection API specification[1] for improving
interoperatbility[2].

Before this patch we holds selection as |VisibleSelection| as canonicalized
DOM positions. This behavior is not align with Selection API specification[1]
then the most complained issue of Blink from editing-tf@w3c.

The heart of this patch is holding selection as |SelectionInDOMTree| and
compute |VisibleSelection| on-demand with cache of computed |VisibleSelection|.

|VisibleSelection| cache is invalidate each DOM tree change and style change
since canonicalization referes CSS style properties, e.g display, visibility,
-webkit-user-modify, etc, and layout dimension.

|SelectionEditor| utilizes |SynchronousMutationObserver| to relocate
|m_selectionInDOMTree| instead of |FrameSelection|. Before this patch
|FrameSelection| relocates |VisibleSelection| with dirty layout tree then
sets |FrameSelection::setSelection()|. To void cyclic reference between
|FrameSelection| and |SelectionEditor|, we could not move relocation part to
|SelectionEditor|.

This patch also updates
|FrameSelection::updatePostionAfterAdoptingTextNodesMerged()| to handle
|PositonAnchorType|.

# Highlight of changes
## FrameCaret
- Compute caret position after "layout clean" rather than each selection change
to align rendering pipeline.

## CharacterData
Changes timing of notifying character data update for ease of relocation of
positions.

## FrameSelection
- Move |m_isHandleVisible| to |SelectionInDOMTree| as follow-up of [5].
- Move selection relocation to |SelectionEditor|; following patch will move
implementations to "SelectionEditor.cpp"

## SelecitonEdtior
- Make it to hold |SelectionInDOMTree| with relocation at DOM mutation.
- Caching |VisibleSelection|

# Brief description of test expectation changes:
## ImeTest.java:
This patch gets rid of redundant selection change event from
 - |testImePaste|,
 - |testContentEditableEvents_DeleteSurroundingText|
 - |testInputTextEvents_DeleteSurroundingText|

## LayoutTests
Before this patch, Blink uses |VisibleSelection| when it sets even if style and
layout changed. This is wrong and unexpected behavior since positions in
|VisibleSelection| can no longer be canonicalized positions. This patch changes
this behavior to return "sane" canonicalized positions with clean style and
layout tree.

This patch is the result of many attempts. Previous changes can be found in
[3][4].

[1] https://www.w3.org/TR/selection-api/ W3C Selection API
[2] https://goo.gl/9v1zOK Improving Interoperatbility of Selection
[3] http://crrev.com/1958093002
[4] http://crrev.com/2637013002
[5] http://crrev.com/2651803007 Added isHandleVisible to |SelectionTemplate|

BUG= 139552 ,  603684 ,  605499 ,  606499 ,  625533 ,  644648 ,  679991 
TEST=See changes in this patch
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2680943004
Cr-Commit-Position: refs/heads/master@{#449928}

[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/editing/execCommand/crash-indenting-list-item.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/editing/execCommand/crash-inserting-list.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/editing/execCommand/format-block-multiple-paragraphs-in-pre.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/editing/execCommand/remove_format_and_extract_contents.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/editing/selection/character-data-mutation.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/editing/selection/document-mutation.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/editing/selection/select_all/select_all_details_crash.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/editing/selection/select_all/select_all_iframe_crash.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/editing/selection/selection_remove_children.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/editing/style/justify-left-crash.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/editing/undo/redo-selection-modify-crash.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/fast/dom/delete-contents.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/fast/dom/shadow/selection-in-nested-shadow.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/fast/dynamic/move-node-with-selection.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/fast/events/drag_and_drop_into_removed_on_focus.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/images/element-gcd-while-generating-alt-content-expected.txt
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/platform/mac/fast/css/first-letter-rtc-crash-expected.txt
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/platform/win/fast/css/first-letter-rtc-crash-expected.txt
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/LayoutTests/svg/foreignObject/viewport-foreignobject-crash-expected.html
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/Source/core/editing/FrameCaret.cpp
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/Source/core/editing/FrameCaret.h
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/Source/core/editing/FrameSelection.cpp
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/Source/core/editing/FrameSelection.h
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/Source/core/editing/SelectionEditor.cpp
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/Source/core/editing/SelectionEditor.h
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/Source/core/editing/VisibleSelection.cpp
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/157413286770a7ac5a24c446a30c08f749738276/third_party/WebKit/Source/core/page/FocusController.cpp

Project Member

Comment 30 by bugdroid1@chromium.org, Feb 13 2017

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

commit 47591962f15392d4af5eb1f69f3b79a8e2990947
Author: gcasto <gcasto@chromium.org>
Date: Mon Feb 13 18:25:57 2017

Revert of Make FrameSelection to hold non-canonicalized positions (patchset #9 id:180001 of https://codereview.chromium.org/2680943004/ )

Reason for revert:
This patch looks like it is causing failures in editing/execCommand/move-up-down-should-skip-hidden-elements.html on Windows 7 (https://uberchromegw.corp.google.com/i/chromium.webkit/builders/WebKit%20Win7%20%28dbg%29).

Original issue's description:
> Make FrameSelection to hold non-canonicalized DOM positions
>
> This patch makes |FrameSelection| to hold non-canonicalized DOM positions in
> |SelectionEditor| to align Selection API specification[1] for improving
> interoperatbility[2].
>
> Before this patch we holds selection as |VisibleSelection| as canonicalized
> DOM positions. This behavior is not align with Selection API specification[1]
> then the most complained issue of Blink from editing-tf@w3c.
>
> The heart of this patch is holding selection as |SelectionInDOMTree| and
> compute |VisibleSelection| on-demand with cache of computed |VisibleSelection|.
>
> |VisibleSelection| cache is invalidate each DOM tree change and style change
> since canonicalization referes CSS style properties, e.g display, visibility,
> -webkit-user-modify, etc, and layout dimension.
>
> |SelectionEditor| utilizes |SynchronousMutationObserver| to relocate
> |m_selectionInDOMTree| instead of |FrameSelection|. Before this patch
> |FrameSelection| relocates |VisibleSelection| with dirty layout tree then
> sets |FrameSelection::setSelection()|. To void cyclic reference between
> |FrameSelection| and |SelectionEditor|, we could not move relocation part to
> |SelectionEditor|.
>
> This patch also updates
> |FrameSelection::updatePostionAfterAdoptingTextNodesMerged()| to handle
> |PositonAnchorType|.
>
> # Highlight of changes
> ## FrameCaret
> - Compute caret position after "layout clean" rather than each selection change
> to align rendering pipeline.
>
> ## CharacterData
> Changes timing of notifying character data update for ease of relocation of
> positions.
>
> ## FrameSelection
> - Move |m_isHandleVisible| to |SelectionInDOMTree| as follow-up of [5].
> - Move selection relocation to |SelectionEditor|; following patch will move
> implementations to "SelectionEditor.cpp"
>
> ## SelecitonEdtior
> - Make it to hold |SelectionInDOMTree| with relocation at DOM mutation.
> - Caching |VisibleSelection|
>
> # Brief description of test expectation changes:
> ## ImeTest.java:
> This patch gets rid of redundant selection change event from
>  - |testImePaste|,
>  - |testContentEditableEvents_DeleteSurroundingText|
>  - |testInputTextEvents_DeleteSurroundingText|
>
> ## LayoutTests
> Before this patch, Blink uses |VisibleSelection| when it sets even if style and
> layout changed. This is wrong and unexpected behavior since positions in
> |VisibleSelection| can no longer be canonicalized positions. This patch changes
> this behavior to return "sane" canonicalized positions with clean style and
> layout tree.
>
> This patch is the result of many attempts. Previous changes can be found in
> [3][4].
>
> [1] https://www.w3.org/TR/selection-api/ W3C Selection API
> [2] https://goo.gl/9v1zOK Improving Interoperatbility of Selection
> [3] http://crrev.com/1958093002
> [4] http://crrev.com/2637013002
> [5] http://crrev.com/2651803007 Added isHandleVisible to |SelectionTemplate|
>
> BUG= 139552 ,  603684 ,  605499 ,  606499 ,  625533 ,  644648 ,  679991 
> TEST=See changes in this patch
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
>
> Review-Url: https://codereview.chromium.org/2680943004
> Cr-Commit-Position: refs/heads/master@{#449928}
> Committed: https://chromium.googlesource.com/chromium/src/+/157413286770a7ac5a24c446a30c08f749738276

TBR=tkent@chromium.org,changwan@chromium.org,xiaochengh@chromium.org,yoichio@chromium.org,yosin@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 139552 ,  603684 ,  605499 ,  606499 ,  625533 ,  644648 ,  679991 

Review-Url: https://codereview.chromium.org/2694823002
Cr-Commit-Position: refs/heads/master@{#450018}

[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/editing/execCommand/crash-indenting-list-item.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/editing/execCommand/crash-inserting-list.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/editing/execCommand/format-block-multiple-paragraphs-in-pre.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/editing/execCommand/remove_format_and_extract_contents.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/editing/selection/character-data-mutation.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/editing/selection/document-mutation.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/editing/selection/select_all/select_all_details_crash.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/editing/selection/select_all/select_all_iframe_crash.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/editing/selection/selection_remove_children.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/editing/style/justify-left-crash.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/editing/undo/redo-selection-modify-crash.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/fast/dom/delete-contents.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/fast/dom/shadow/selection-in-nested-shadow.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/fast/dynamic/move-node-with-selection.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/fast/events/drag_and_drop_into_removed_on_focus.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/images/element-gcd-while-generating-alt-content-expected.txt
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/platform/mac/fast/css/first-letter-rtc-crash-expected.txt
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/platform/win/fast/css/first-letter-rtc-crash-expected.txt
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/LayoutTests/svg/foreignObject/viewport-foreignobject-crash-expected.html
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/Source/core/editing/FrameCaret.cpp
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/Source/core/editing/FrameCaret.h
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/Source/core/editing/FrameSelection.cpp
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/Source/core/editing/FrameSelection.h
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/Source/core/editing/SelectionEditor.cpp
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/Source/core/editing/SelectionEditor.h
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/Source/core/editing/VisibleSelection.cpp
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/47591962f15392d4af5eb1f69f3b79a8e2990947/third_party/WebKit/Source/core/page/FocusController.cpp

Project Member

Comment 31 by bugdroid1@chromium.org, Feb 14 2017

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

commit 17c84b2b6519c821dc319e79f2a7a4508508e20f
Author: yosin <yosin@chromium.org>
Date: Tue Feb 14 06:34:37 2017

Make FrameSelection to hold non-canonicalized DOM positions

This patch makes |FrameSelection| to hold non-canonicalized DOM positions in
|SelectionEditor| to align Selection API specification[1] for improving
interoperatbility[2].

Before this patch we holds selection as |VisibleSelection| as canonicalized
DOM positions. This behavior is not align with Selection API specification[1]
then the most complained issue of Blink from editing-tf@w3c.

The heart of this patch is holding selection as |SelectionInDOMTree| and
compute |VisibleSelection| on-demand with cache of computed |VisibleSelection|.

|VisibleSelection| cache is invalidate each DOM tree change and style change
since canonicalization referes CSS style properties, e.g display, visibility,
-webkit-user-modify, etc, and layout dimension.

|SelectionEditor| utilizes |SynchronousMutationObserver| to relocate
|m_selectionInDOMTree| instead of |FrameSelection|. Before this patch
|FrameSelection| relocates |VisibleSelection| with dirty layout tree then
sets |FrameSelection::setSelection()|. To void cyclic reference between
|FrameSelection| and |SelectionEditor|, we could not move relocation part to
|SelectionEditor|.

This patch also updates
|FrameSelection::updatePostionAfterAdoptingTextNodesMerged()| to handle
|PositonAnchorType|.

# Highlight of changes
## FrameCaret
- Compute caret position after "layout clean" rather than each selection change
to align rendering pipeline.

## CharacterData
Changes timing of notifying character data update for ease of relocation of
positions.

## FrameSelection
- Move |m_isHandleVisible| to |SelectionInDOMTree| as follow-up of [5].
- Move selection relocation to |SelectionEditor|; following patch will move
implementations to "SelectionEditor.cpp"

## SelecitonEdtior
- Make it to hold |SelectionInDOMTree| with relocation at DOM mutation.
- Caching |VisibleSelection|

# Brief description of test expectation changes:
## ImeTest.java:
This patch gets rid of redundant selection change event from
 - |testImePaste|,
 - |testContentEditableEvents_DeleteSurroundingText|
 - |testInputTextEvents_DeleteSurroundingText|

## LayoutTests
Before this patch, Blink uses |VisibleSelection| when it sets even if style and
layout changed. This is wrong and unexpected behavior since positions in
|VisibleSelection| can no longer be canonicalized positions. This patch changes
this behavior to return "sane" canonicalized positions with clean style and
layout tree.

This patch is the result of many attempts. Previous changes can be found in
[3][4].

[1] https://www.w3.org/TR/selection-api/ W3C Selection API
[2] https://goo.gl/9v1zOK Improving Interoperatbility of Selection
[3] http://crrev.com/1958093002
[4] http://crrev.com/2637013002
[5] http://crrev.com/2651803007 Added isHandleVisible to |SelectionTemplate|

BUG= 139552 ,  603684 ,  605499 ,  606499 ,  625533 ,  644648 ,  679991 
TEST=See changes in this patch
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2680943004
Cr-Original-Commit-Position: refs/heads/master@{#449928}
Committed: https://chromium.googlesource.com/chromium/src/+/157413286770a7ac5a24c446a30c08f749738276
Review-Url: https://codereview.chromium.org/2680943004
Cr-Commit-Position: refs/heads/master@{#450280}

[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/editing/execCommand/crash-indenting-list-item.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/editing/execCommand/crash-inserting-list.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/editing/execCommand/format-block-multiple-paragraphs-in-pre.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/editing/execCommand/remove_format_and_extract_contents.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/editing/selection/character-data-mutation.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/editing/selection/document-mutation.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/editing/selection/select_all/select_all_details_crash.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/editing/selection/select_all/select_all_iframe_crash.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/editing/selection/selection_remove_children.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/editing/style/justify-left-crash.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/editing/undo/redo-selection-modify-crash.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/fast/dom/delete-contents.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/fast/dom/shadow/selection-in-nested-shadow.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/fast/dynamic/move-node-with-selection.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/fast/events/drag_and_drop_into_removed_on_focus.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/images/element-gcd-while-generating-alt-content-expected.txt
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/platform/mac/fast/css/first-letter-rtc-crash-expected.txt
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/platform/win/fast/css/first-letter-rtc-crash-expected.txt
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/LayoutTests/svg/foreignObject/viewport-foreignobject-crash-expected.html
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/Source/core/editing/FrameCaret.cpp
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/Source/core/editing/FrameCaret.h
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/Source/core/editing/FrameSelection.cpp
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/Source/core/editing/FrameSelection.h
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/Source/core/editing/SelectionEditor.cpp
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/Source/core/editing/SelectionEditor.h
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/Source/core/editing/VisibleSelection.cpp
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/17c84b2b6519c821dc319e79f2a7a4508508e20f/third_party/WebKit/Source/core/page/FocusController.cpp

Project Member

Comment 32 by bugdroid1@chromium.org, Feb 14 2017

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

commit 8f2a1baf12aa71d59d72e24583983b8a6b78340a
Author: tyoshino <tyoshino@chromium.org>
Date: Tue Feb 14 08:18:39 2017

Revert of Make FrameSelection to hold non-canonicalized positions (patchset #9 id:180001 of https://codereview.chromium.org/2680943004/ )

Reason for revert:
See https://codereview.chromium.org/2680943004/#msg70

Original issue's description:
> Make FrameSelection to hold non-canonicalized DOM positions
>
> This patch makes |FrameSelection| to hold non-canonicalized DOM positions in
> |SelectionEditor| to align Selection API specification[1] for improving
> interoperatbility[2].
>
> Before this patch we holds selection as |VisibleSelection| as canonicalized
> DOM positions. This behavior is not align with Selection API specification[1]
> then the most complained issue of Blink from editing-tf@w3c.
>
> The heart of this patch is holding selection as |SelectionInDOMTree| and
> compute |VisibleSelection| on-demand with cache of computed |VisibleSelection|.
>
> |VisibleSelection| cache is invalidate each DOM tree change and style change
> since canonicalization referes CSS style properties, e.g display, visibility,
> -webkit-user-modify, etc, and layout dimension.
>
> |SelectionEditor| utilizes |SynchronousMutationObserver| to relocate
> |m_selectionInDOMTree| instead of |FrameSelection|. Before this patch
> |FrameSelection| relocates |VisibleSelection| with dirty layout tree then
> sets |FrameSelection::setSelection()|. To void cyclic reference between
> |FrameSelection| and |SelectionEditor|, we could not move relocation part to
> |SelectionEditor|.
>
> This patch also updates
> |FrameSelection::updatePostionAfterAdoptingTextNodesMerged()| to handle
> |PositonAnchorType|.
>
> # Highlight of changes
> ## FrameCaret
> - Compute caret position after "layout clean" rather than each selection change
> to align rendering pipeline.
>
> ## CharacterData
> Changes timing of notifying character data update for ease of relocation of
> positions.
>
> ## FrameSelection
> - Move |m_isHandleVisible| to |SelectionInDOMTree| as follow-up of [5].
> - Move selection relocation to |SelectionEditor|; following patch will move
> implementations to "SelectionEditor.cpp"
>
> ## SelecitonEdtior
> - Make it to hold |SelectionInDOMTree| with relocation at DOM mutation.
> - Caching |VisibleSelection|
>
> # Brief description of test expectation changes:
> ## ImeTest.java:
> This patch gets rid of redundant selection change event from
>  - |testImePaste|,
>  - |testContentEditableEvents_DeleteSurroundingText|
>  - |testInputTextEvents_DeleteSurroundingText|
>
> ## LayoutTests
> Before this patch, Blink uses |VisibleSelection| when it sets even if style and
> layout changed. This is wrong and unexpected behavior since positions in
> |VisibleSelection| can no longer be canonicalized positions. This patch changes
> this behavior to return "sane" canonicalized positions with clean style and
> layout tree.
>
> This patch is the result of many attempts. Previous changes can be found in
> [3][4].
>
> [1] https://www.w3.org/TR/selection-api/ W3C Selection API
> [2] https://goo.gl/9v1zOK Improving Interoperatbility of Selection
> [3] http://crrev.com/1958093002
> [4] http://crrev.com/2637013002
> [5] http://crrev.com/2651803007 Added isHandleVisible to |SelectionTemplate|
>
> BUG= 139552 ,  603684 ,  605499 ,  606499 ,  625533 ,  644648 ,  679991 
> TEST=See changes in this patch
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
>
> Review-Url: https://codereview.chromium.org/2680943004
> Cr-Original-Commit-Position: refs/heads/master@{#449928}
> Committed: https://chromium.googlesource.com/chromium/src/+/157413286770a7ac5a24c446a30c08f749738276
> Review-Url: https://codereview.chromium.org/2680943004
> Cr-Commit-Position: refs/heads/master@{#450280}
> Committed: https://chromium.googlesource.com/chromium/src/+/17c84b2b6519c821dc319e79f2a7a4508508e20f

TBR=changwan@chromium.org,tkent@chromium.org,xiaochengh@chromium.org,yoichio@chromium.org,yosin@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 139552 ,  603684 ,  605499 ,  606499 ,  625533 ,  644648 ,  679991 

Review-Url: https://codereview.chromium.org/2691243002
Cr-Commit-Position: refs/heads/master@{#450291}

[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/editing/execCommand/crash-indenting-list-item.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/editing/execCommand/crash-inserting-list.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/editing/execCommand/format-block-multiple-paragraphs-in-pre.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/editing/execCommand/remove_format_and_extract_contents.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/editing/selection/character-data-mutation.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/editing/selection/document-mutation.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/editing/selection/select_all/select_all_details_crash.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/editing/selection/select_all/select_all_iframe_crash.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/editing/selection/selection_remove_children.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/editing/style/justify-left-crash.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/editing/undo/redo-selection-modify-crash.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/fast/dom/delete-contents.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/fast/dom/shadow/selection-in-nested-shadow.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/fast/dynamic/move-node-with-selection.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/fast/events/drag_and_drop_into_removed_on_focus.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/images/element-gcd-while-generating-alt-content-expected.txt
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/platform/mac/fast/css/first-letter-rtc-crash-expected.txt
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/platform/win/fast/css/first-letter-rtc-crash-expected.txt
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/LayoutTests/svg/foreignObject/viewport-foreignobject-crash-expected.html
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/Source/core/editing/FrameCaret.cpp
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/Source/core/editing/FrameCaret.h
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/Source/core/editing/FrameSelection.cpp
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/Source/core/editing/FrameSelection.h
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/Source/core/editing/SelectionEditor.cpp
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/Source/core/editing/SelectionEditor.h
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/Source/core/editing/VisibleSelection.cpp
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/8f2a1baf12aa71d59d72e24583983b8a6b78340a/third_party/WebKit/Source/core/page/FocusController.cpp

Project Member

Comment 33 by bugdroid1@chromium.org, Feb 14 2017

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

commit d892f9592860691ae9a782c12260c94ed6bd1a63
Author: yosin <yosin@chromium.org>
Date: Tue Feb 14 15:56:00 2017

Make FrameSelection to hold non-canonicalized DOM positions

This patch makes |FrameSelection| to hold non-canonicalized DOM positions in
|SelectionEditor| to align Selection API specification[1] for improving
interoperatbility[2].

Before this patch we holds selection as |VisibleSelection| as canonicalized
DOM positions. This behavior is not align with Selection API specification[1]
then the most complained issue of Blink from editing-tf@w3c.

The heart of this patch is holding selection as |SelectionInDOMTree| and
compute |VisibleSelection| on-demand with cache of computed |VisibleSelection|.

|VisibleSelection| cache is invalidate each DOM tree change and style change
since canonicalization referes CSS style properties, e.g display, visibility,
-webkit-user-modify, etc, and layout dimension.

|SelectionEditor| utilizes |SynchronousMutationObserver| to relocate
|m_selectionInDOMTree| instead of |FrameSelection|. Before this patch
|FrameSelection| relocates |VisibleSelection| with dirty layout tree then
sets |FrameSelection::setSelection()|. To void cyclic reference between
|FrameSelection| and |SelectionEditor|, we could not move relocation part to
|SelectionEditor|.

This patch also updates
|FrameSelection::updatePostionAfterAdoptingTextNodesMerged()| to handle
|PositonAnchorType|.

# Highlight of changes
## FrameCaret
- Compute caret position after "layout clean" rather than each selection change
to align rendering pipeline.

## CharacterData
Changes timing of notifying character data update for ease of relocation of
positions.

## FrameSelection
- Move |m_isHandleVisible| to |SelectionInDOMTree| as follow-up of [5].
- Move selection relocation to |SelectionEditor|; following patch will move
implementations to "SelectionEditor.cpp"

## SelecitonEdtior
- Make it to hold |SelectionInDOMTree| with relocation at DOM mutation.
- Caching |VisibleSelection|

# Brief description of test expectation changes:
## ImeTest.java:
This patch gets rid of redundant selection change event from
 - |testImePaste|,
 - |testContentEditableEvents_DeleteSurroundingText|
 - |testInputTextEvents_DeleteSurroundingText|

## LayoutTests
Before this patch, Blink uses |VisibleSelection| when it sets even if style and
layout changed. This is wrong and unexpected behavior since positions in
|VisibleSelection| can no longer be canonicalized positions. This patch changes
this behavior to return "sane" canonicalized positions with clean style and
layout tree.

This patch is the result of many attempts. Previous changes can be found in
[3][4].

[1] https://www.w3.org/TR/selection-api/ W3C Selection API
[2] https://goo.gl/9v1zOK Improving Interoperatbility of Selection
[3] http://crrev.com/1958093002
[4] http://crrev.com/2637013002
[5] http://crrev.com/2651803007 Added isHandleVisible to |SelectionTemplate|

BUG= 139552 ,  603684 ,  605499 ,  606499 ,  625533 ,  644648 ,  679991 
TEST=See changes in this patch
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2680943004
Cr-Original-Original-Commit-Position: refs/heads/master@{#449928}
Committed: https://chromium.googlesource.com/chromium/src/+/157413286770a7ac5a24c446a30c08f749738276
Review-Url: https://codereview.chromium.org/2680943004
Cr-Original-Commit-Position: refs/heads/master@{#450280}
Committed: https://chromium.googlesource.com/chromium/src/+/17c84b2b6519c821dc319e79f2a7a4508508e20f
Review-Url: https://codereview.chromium.org/2680943004
Cr-Commit-Position: refs/heads/master@{#450370}

[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/deleting/delete-br-001-expected.txt
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/deleting/delete-br-001.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/deleting/delete-character-003-expected.txt
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/deleting/delete-character-003.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/execCommand/crash-indenting-list-item.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/execCommand/crash-inserting-list.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/execCommand/format-block-multiple-paragraphs-in-pre.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/execCommand/remove_format_and_extract_contents.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/selection/character-data-mutation.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/selection/document-mutation.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/selection/select_all/select_all_details_crash.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/selection/select_all/select_all_iframe_crash.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/selection/selection_remove_children.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/style/justify-left-crash.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/editing/undo/redo-selection-modify-crash.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/external/wpt/selection/collapse-00-expected.txt
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/external/wpt/selection/collapse-30-expected.txt
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/external/wpt/selection/collapseToStartEnd-expected.txt
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/fast/dom/delete-contents.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/fast/dom/shadow/selection-in-nested-shadow.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/fast/dynamic/move-node-with-selection.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/fast/events/drag_and_drop_into_removed_on_focus.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/images/element-gcd-while-generating-alt-content-expected.txt
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/platform/mac/fast/css/first-letter-rtc-crash-expected.txt
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/platform/win/fast/css/first-letter-rtc-crash-expected.txt
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/LayoutTests/svg/foreignObject/viewport-foreignobject-crash-expected.html
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/Source/core/editing/FrameCaret.cpp
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/Source/core/editing/FrameCaret.h
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/Source/core/editing/FrameSelection.cpp
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/Source/core/editing/FrameSelection.h
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/Source/core/editing/SelectionEditor.cpp
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/Source/core/editing/SelectionEditor.h
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/Source/core/editing/VisibleSelection.cpp
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/d892f9592860691ae9a782c12260c94ed6bd1a63/third_party/WebKit/Source/core/page/FocusController.cpp

Comment 35 by yosin@chromium.org, Mar 10 2017

Status: Fixed (was: Started)

Sign in to add a comment