DescriptionGet rid of redundant layout tree update related to selection
This patch gets rid of redundant layout tree update regarding selection getter
to recover execution speed in Speedometer performance test.
Since CL[1], |FrameSelection| getters updates layout tree on-demand rather than
invalidated values, e.g. |VisibleSelection| can hold invalid positions after
style and DOM tree modification. However, following getters in |FrameSeleciton|
don't need to clean layout tree:
- affinity()
- isNone() for |TextControl|
- isRange() for |TextControl|
- start()/end() for |TextControl|
- checking editability base on selection start position; it is enough to check
one of base or extent is ediable since selection can not cross editing
boundary.
[1] crrev.com/2680943004 Make FrameSelection to hold non-canonicalized positions
BUG=692537
TEST=Speedometer performance test
Review-Url: https://codereview.chromium.org/2698793003
Cr-Commit-Position: refs/heads/master@{#451270}
Committed: https://chromium.googlesource.com/chromium/src/+/e8a65d35c402aa21c4ce9b07a63a109d113a6066
Patch Set 1 #Patch Set 2 : 2017-02-16T14:57:02 #Patch Set 3 : 2017-02-16T16:34:45 #Patch Set 4 : 2017-02-16T17:15:58 #
Total comments: 1
Patch Set 5 : 2017-02-16T17:58:29 #Patch Set 6 : 2017-02-16T18:19:51 Use start/end for word granularity for text control #Patch Set 7 : 2017-02-16T19:48:39 #Patch Set 8 : 2017-02-16T22:09:34 #Patch Set 9 : 2017-02-17T00:37:54 FrameSelection::selectFrameElementInParentIfFullySelected() to use FS::isRange() #
Total comments: 11
Patch Set 10 : 2017-02-17T14:11:19 CANCEL DisallowTransition #Patch Set 11 : 2017-02-17T14:18:09 DisallowTransition #
Total comments: 1
Patch Set 12 : 2017-02-17T14:28:58 #
Total comments: 2
Patch Set 13 : 2017-02-17T16:13:56 selectionTypeWithLegacyGranularity() #Messages
Total messages: 64 (49 generated)
|