Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1500)

Issue 2720593005: Make PositionIterator to skip contents of INPUT/SELECT/TEXTAREA (Closed)

Created:
3 years, 9 months ago by yosin_UTC9
Modified:
3 years, 9 months ago
Reviewers:
tkent, yoichio, Xiaocheng
CC:
blink-reviews, chromium-reviews
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Make PositionIterator to skip contents of INPUT/SELECT/TEXTAREA This patch makes |PositionIterator| to skip child nodes of INPUT, SELECT and TEXTAREA and adopt |mostBackwardCaretPosition()|[1] to pass correct value to |PositionIterator| to make |canonicalizePositionOf()| not to return a position inside user agent shadow tree, e.g. a position of inner editor for INPUT to allow "SelectAll" command works correctly documents which start with INPUT, SELECT, and TEXTAREA element. Before this patch, if document starts with INPUT, "SelectAll" command selects contents in inner editor because flat tree version of |PositionIterator| returns such position for a position before INPUT. Then |VisibleSelection| shrink selection into inner editor of INPUT to avoid crossing editing boundary. This patch uses "user-select:contain"[2] idea for skipping contents of INPUT, SELECT and TEXTAREA, to align with the spec[2] rather than using internal term "selection boundary". [1] "empty-document-stylewithcss.html" is failed if we don't change |mostBackwardCaretPosition()| [2] https://drafts.csswg.org/css-ui-4/#user-interaction BUG=695317 TEST=webkit_unit_tests --gtest_filter=PositionIteratorTest.* TEST=webkit_unit_tests --gtest_filter=VisibleSelectionTest.SelectAllWithInputElement TEST=webkit_unit_tests --gtest_filter=VisibleUnitsTest.canonicalPositionOfWithInputElement Review-Url: https://codereview.chromium.org/2720593005 Cr-Commit-Position: refs/heads/master@{#454236} Committed: https://chromium.googlesource.com/chromium/src/+/2211504ac2b999a125b2215ce7f6be9e50878fea

Patch Set 1 #

Patch Set 2 : 2017-03-01T02:24:50 #

Patch Set 3 : 2017-03-01T10:47:08 #

Patch Set 4 : 2017-03-02T14:30:36 Simplify if-condition in PositionIterator::increment() #

Total comments: 4

Patch Set 5 : 2017-03-02T18:15:47 #

Patch Set 6 : 2017-03-02T19:03:48 Add FrameSelectionTest.SelectAllWithInputElement #

Unified diffs Side-by-side diffs Delta from patch set Stats (+153 lines, -180 lines) Patch
M third_party/WebKit/Source/core/editing/EditingUtilities.h View 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/editing/EditingUtilities.cpp View 1 chunk +9 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp View 1 2 3 4 5 1 chunk +22 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/editing/PositionIterator.cpp View 1 2 3 4 11 chunks +36 lines, -12 lines 0 comments Download
M third_party/WebKit/Source/core/editing/PositionIteratorTest.cpp View 1 2 3 14 chunks +25 lines, -163 lines 0 comments Download
M third_party/WebKit/Source/core/editing/VisibleSelectionTest.cpp View 1 chunk +31 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/editing/VisibleUnits.cpp View 1 2 3 2 chunks +13 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/editing/VisibleUnitsTest.cpp View 1 chunk +14 lines, -0 lines 0 comments Download

Messages

Total messages: 47 (35 generated)
yosin_UTC9
PTAL
3 years, 9 months ago (2017-03-02 06:46:39 UTC) #24
yoichio
https://codereview.chromium.org/2720593005/diff/100001/third_party/WebKit/Source/core/editing/EditingUtilities.cpp File third_party/WebKit/Source/core/editing/EditingUtilities.cpp (right): https://codereview.chromium.org/2720593005/diff/100001/third_party/WebKit/Source/core/editing/EditingUtilities.cpp#newcode298 third_party/WebKit/Source/core/editing/EditingUtilities.cpp:298: bool isUserSelectContain(const Node& node) { user-select:contain intends to let ...
3 years, 9 months ago (2017-03-02 07:31:06 UTC) #25
yosin_UTC9
https://codereview.chromium.org/2720593005/diff/100001/third_party/WebKit/Source/core/editing/EditingUtilities.cpp File third_party/WebKit/Source/core/editing/EditingUtilities.cpp (right): https://codereview.chromium.org/2720593005/diff/100001/third_party/WebKit/Source/core/editing/EditingUtilities.cpp#newcode298 third_party/WebKit/Source/core/editing/EditingUtilities.cpp:298: bool isUserSelectContain(const Node& node) { On 2017/03/02 at 07:31:06, ...
3 years, 9 months ago (2017-03-02 07:47:17 UTC) #26
yoichio
On 2017/03/02 07:47:17, yosin_UTC9 wrote: > https://codereview.chromium.org/2720593005/diff/100001/third_party/WebKit/Source/core/editing/EditingUtilities.cpp > File third_party/WebKit/Source/core/editing/EditingUtilities.cpp (right): > > https://codereview.chromium.org/2720593005/diff/100001/third_party/WebKit/Source/core/editing/EditingUtilities.cpp#newcode298 > ...
3 years, 9 months ago (2017-03-02 08:49:03 UTC) #29
yoichio
https://codereview.chromium.org/2720593005/diff/100001/third_party/WebKit/Source/core/editing/PositionIterator.cpp File third_party/WebKit/Source/core/editing/PositionIterator.cpp (right): https://codereview.chromium.org/2720593005/diff/100001/third_party/WebKit/Source/core/editing/PositionIterator.cpp#newcode187 third_party/WebKit/Source/core/editing/PositionIterator.cpp:187: isUserSelectContain(*m_anchorNode)) && This must be |!shouldTraverseChildren(*m_anchorNode)|.
3 years, 9 months ago (2017-03-02 08:49:11 UTC) #30
yosin_UTC9
PTAL Updated. https://codereview.chromium.org/2720593005/diff/100001/third_party/WebKit/Source/core/editing/PositionIterator.cpp File third_party/WebKit/Source/core/editing/PositionIterator.cpp (right): https://codereview.chromium.org/2720593005/diff/100001/third_party/WebKit/Source/core/editing/PositionIterator.cpp#newcode187 third_party/WebKit/Source/core/editing/PositionIterator.cpp:187: isUserSelectContain(*m_anchorNode)) && On 2017/03/02 at 08:49:11, yoichio ...
3 years, 9 months ago (2017-03-02 09:17:17 UTC) #33
yosin_UTC9
On 2017/03/02 at 08:49:03, yoichio wrote: > On 2017/03/02 07:47:17, yosin_UTC9 wrote: > > https://codereview.chromium.org/2720593005/diff/100001/third_party/WebKit/Source/core/editing/EditingUtilities.cpp ...
3 years, 9 months ago (2017-03-02 09:49:03 UTC) #35
yosin_UTC9
PTAL
3 years, 9 months ago (2017-03-02 10:06:47 UTC) #38
yoichio
3 years, 9 months ago (2017-03-02 10:33:08 UTC) #39
yoichio
lgtm
3 years, 9 months ago (2017-03-02 10:33:10 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2720593005/140001
3 years, 9 months ago (2017-03-02 12:23:03 UTC) #44
commit-bot: I haz the power
3 years, 9 months ago (2017-03-02 12:28:58 UTC) #47
Message was sent while issue was closed.
Committed patchset #6 (id:140001) as
https://chromium.googlesource.com/chromium/src/+/2211504ac2b999a125b2215ce7f6...

Powered by Google App Engine
This is Rietveld 408576698