RESOLVED FIXED 193416
Only run the node comparison code in FrameSelection::respondToNodeModification() for range selections
https://bugs.webkit.org/show_bug.cgi?id=193416
Summary Only run the node comparison code in FrameSelection::respondToNodeModificatio...
Simon Fraser (smfr)
Reported 2019-01-14 16:19:35 PST
Only run the node comparison code in FrameSelection::respondToNodeModification() for range selections
Attachments
Patch (3.04 KB, patch)
2019-01-14 16:22 PST, Simon Fraser (smfr)
no flags
Simon Fraser (smfr)
Comment 1 2019-01-14 16:22:42 PST
Simon Fraser (smfr)
Comment 2 2019-01-14 16:23:59 PST
I measured this as a ~1.5% improvement on Speedometer2.
Radar WebKit Bug Importer
Comment 3 2019-01-14 16:52:30 PST
Wenson Hsieh
Comment 4 2019-01-14 17:16:22 PST
Comment on attachment 359095 [details] Patch Nice!
Wenson Hsieh
Comment 5 2019-01-14 17:25:03 PST
Comment on attachment 359095 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=359095&action=review > Source/WebCore/editing/FrameSelection.cpp:545 > + if (compareResult == Range::NODE_BEFORE_AND_AFTER || compareResult == Range::NODE_INSIDE) { Doesn't this mean that we set clearRenderTreeSelection to true if either the selection completely encompasses node, or node completely encompasses the selection? It seems like in the latter case, we can enter this if statement even with a caret selection. We should double check that we either never get here with a caret selection, or that if we get here with a caret selection, we didn't need to clear the render tree selection in the first place.
Wenson Hsieh
Comment 6 2019-01-14 19:09:02 PST
(In reply to Wenson Hsieh from comment #5) > Comment on attachment 359095 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=359095&action=review > > > Source/WebCore/editing/FrameSelection.cpp:545 > > + if (compareResult == Range::NODE_BEFORE_AND_AFTER || compareResult == Range::NODE_INSIDE) { > > Doesn't this mean that we set clearRenderTreeSelection to true if either the > selection completely encompasses node, or node completely encompasses the > selection? It seems like in the latter case, we can enter this if statement > even with a caret selection. > > We should double check that we either never get here with a caret selection, > or that if we get here with a caret selection, we didn't need to clear the > render tree selection in the first place. From a hallway conversation with Ryosuke, it looks like we don't need to clear the render tree selection here because the node that encompasses the selection is going away anyways, so it doesn't look like this change should break anything.
WebKit Commit Bot
Comment 7 2019-01-14 19:31:47 PST
Comment on attachment 359095 [details] Patch Clearing flags on attachment: 359095 Committed r239971: <https://trac.webkit.org/changeset/239971>
WebKit Commit Bot
Comment 8 2019-01-14 19:31:49 PST
All reviewed patches have been landed. Closing bug.
Saam Barati
Comment 9 2019-01-15 14:48:52 PST
Looks like a 1% speedometer2 progression!
Saam Barati
Comment 10 2019-01-15 14:49:20 PST
(In reply to Simon Fraser (smfr) from comment #2) > I measured this as a ~1.5% improvement on Speedometer2. I see you've already measured this :) The bots agree
Note You need to log in before you can comment on or make changes to this bug.