We should get rid of VisibleSelection::RootEditableElement() |
|||||
Issue descriptionTo reduce update layout, we should replace usage of VS::RootEditableElement() by RootEditableElementOf(SelectionInDOMTree::Base()). Basically, visible position canonicalization doesn't return a position crossing editing boundary of specified position. However, some circumstance CanonicalPosition() returns a position crossing editing boundary. Example: <html><head></head><body contenteditable>...</body></html> CanonicalPosition(HTML@1) = BODY@0
,
Apr 24 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f0600844152acd9e12e486ecfd49ae492f67517c commit f0600844152acd9e12e486ecfd49ae492f67517c Author: yosin <yosin@chromium.org> Date: Mon Apr 24 09:38:45 2017 Make InputMethodController::TextInputType() to use canonicalized position Make InputMethodController::TextInputType() to use canonicalized position This patch changes |RootEditableElementOfSelection()| to use canonicalized position as workaround for applications depend buggy behavior of Blink. Before patch[1], |InputMethodController| to check editability of selection by using |VisibleSelection::Start()|. After patch[1], |InputMethodController| to use |SelectionInDOMTree::Base()|. The buggy behavior of Blink caused by using |VisibleSelection::Start()| which returns inside of editable even if scripts specified before editable. For example, simpler version of Google Docs/Presentations: <html> <head>...</head> <body contenteditable>...</body> </html> Google Docs/Presentations set selection to a position HTML@1 where before BODY element. In this case, |VisibleSelection::Start()| == BODY@0 due by visible position canonicalization. [1] http://crrev.com/2782413002 Get rid of computeVisibleSelectionInDOMTreeDeprecated() in InputMethodController BUG=711396, 712761 , 714507 TEST=run_webkit_unit_tests --gtest_filter=InputMethodControllerTest.TextInputTypeAtBeforeEditable Review-Url: https://codereview.chromium.org/2834343002 Cr-Commit-Position: refs/heads/master@{#466612} [modify] https://crrev.com/f0600844152acd9e12e486ecfd49ae492f67517c/third_party/WebKit/Source/core/editing/InputMethodController.cpp [modify] https://crrev.com/f0600844152acd9e12e486ecfd49ae492f67517c/third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp
,
Apr 24 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/60cfc544d6a46df2a54cb222f12fdf12a48d73f0 commit 60cfc544d6a46df2a54cb222f12fdf12a48d73f0 Author: Alex Mineer <amineer@chromium.org> Date: Mon Apr 24 17:48:28 2017 Make InputMethodController::TextInputType() to use canonicalized position Make InputMethodController::TextInputType() to use canonicalized position This patch changes |RootEditableElementOfSelection()| to use canonicalized position as workaround for applications depend buggy behavior of Blink. Before patch[1], |InputMethodController| to check editability of selection by using |VisibleSelection::Start()|. After patch[1], |InputMethodController| to use |SelectionInDOMTree::Base()|. The buggy behavior of Blink caused by using |VisibleSelection::Start()| which returns inside of editable even if scripts specified before editable. For example, simpler version of Google Docs/Presentations: <html> <head>...</head> <body contenteditable>...</body> </html> Google Docs/Presentations set selection to a position HTML@1 where before BODY element. In this case, |VisibleSelection::Start()| == BODY@0 due by visible position canonicalization. [1] http://crrev.com/2782413002 Get rid of computeVisibleSelectionInDOMTreeDeprecated() in InputMethodController BUG=711396, 712761 , 714507 TEST=run_webkit_unit_tests --gtest_filter=InputMethodControllerTest.TextInputTypeAtBeforeEditable (cherry picked from commit f0600844152acd9e12e486ecfd49ae492f67517c) Review-Url: https://codereview.chromium.org/2834343002 Cr-Original-Commit-Position: refs/heads/master@{#466612} Cr-Commit-Position: refs/branch-heads/3071@{#169} Cr-Branched-From: a106f0abbf69dad349d4aaf4bcc4f5d376dd2377-refs/heads/master@{#464641} [modify] https://crrev.com/60cfc544d6a46df2a54cb222f12fdf12a48d73f0/third_party/WebKit/Source/core/editing/InputMethodController.cpp [modify] https://crrev.com/60cfc544d6a46df2a54cb222f12fdf12a48d73f0/third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp
,
Nov 13 2017
,
Nov 14
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Nov 19
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by yosin@chromium.org
, Apr 24 2017Components: Blink>Editing>Selection