<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>193416</bug_id>
          
          <creation_ts>2019-01-14 16:19:35 -0800</creation_ts>
          <short_desc>Only run the node comparison code in FrameSelection::respondToNodeModification() for range selections</short_desc>
          <delta_ts>2019-01-15 14:49:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1494378</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-14 16:19:35 -0800</bug_when>
    <thetext>Only run the node comparison code in FrameSelection::respondToNodeModification() for range selections</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494382</commentid>
    <comment_count>1</comment_count>
      <attachid>359095</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-14 16:22:42 -0800</bug_when>
    <thetext>Created attachment 359095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494384</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-14 16:23:59 -0800</bug_when>
    <thetext>I measured this as a ~1.5% improvement on Speedometer2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494405</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-14 16:52:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/47270794&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494416</commentid>
    <comment_count>4</comment_count>
      <attachid>359095</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-14 17:16:22 -0800</bug_when>
    <thetext>Comment on attachment 359095
Patch

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494417</commentid>
    <comment_count>5</comment_count>
      <attachid>359095</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-14 17:25:03 -0800</bug_when>
    <thetext>Comment on attachment 359095
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=359095&amp;action=review

&gt; Source/WebCore/editing/FrameSelection.cpp:545
&gt; +                if (compareResult == Range::NODE_BEFORE_AND_AFTER || compareResult == Range::NODE_INSIDE) {

Doesn&apos;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&apos;t need to clear the render tree selection in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494471</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-14 19:09:02 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #5)
&gt; Comment on attachment 359095 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=359095&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/FrameSelection.cpp:545
&gt; &gt; +                if (compareResult == Range::NODE_BEFORE_AND_AFTER || compareResult == Range::NODE_INSIDE) {
&gt; 
&gt; Doesn&apos;t this mean that we set clearRenderTreeSelection to true if either the
&gt; selection completely encompasses node, or node completely encompasses the
&gt; selection? It seems like in the latter case, we can enter this if statement
&gt; even with a caret selection.
&gt; 
&gt; We should double check that we either never get here with a caret selection,
&gt; or that if we get here with a caret selection, we didn&apos;t need to clear the
&gt; render tree selection in the first place.

From a hallway conversation with Ryosuke, it looks like we don&apos;t need to clear the render tree selection here because the node that encompasses the selection is going away anyways, so it doesn&apos;t look like this change should break anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494483</commentid>
    <comment_count>7</comment_count>
      <attachid>359095</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-14 19:31:47 -0800</bug_when>
    <thetext>Comment on attachment 359095
Patch

Clearing flags on attachment: 359095

Committed r239971: &lt;https://trac.webkit.org/changeset/239971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494484</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-14 19:31:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494828</commentid>
    <comment_count>9</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-01-15 14:48:52 -0800</bug_when>
    <thetext>Looks like a 1% speedometer2 progression!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494829</commentid>
    <comment_count>10</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-01-15 14:49:20 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #2)
&gt; I measured this as a ~1.5% improvement on Speedometer2.

I see you&apos;ve already measured this :)

The bots agree</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359095</attachid>
            <date>2019-01-14 16:22:42 -0800</date>
            <delta_ts>2019-01-14 19:31:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193416-20190114162242.patch</filename>
            <type>text/plain</type>
            <size>3110</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5OTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDk0NjgxMzE3YTI0MWIw
ZDU3ODgyNWNkNjQyMzU2ZTZhYjc1NDA3Zi4uN2E2ZGE0MjI5ZTE3NGNiZjNkNmJjYzE4MmQyNjg5
Mzg5OTAyNjQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAxLTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgcnVuIHRo
ZSBub2RlIGNvbXBhcmlzb24gY29kZSBpbiBGcmFtZVNlbGVjdGlvbjo6cmVzcG9uZFRvTm9kZU1v
ZGlmaWNhdGlvbigpIGZvciByYW5nZSBzZWxlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM0MTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY29kZSBpbnNpZGUgdGhlIG1fc2VsZWN0aW9u
LmZpcnN0UmFuZ2UoKSBjbGF1c2UgbmVlZHMgdG8gb25seSBydW4gZm9yIG5vbi1jb2xsYXBzZWQg
c2VsZWN0aW9ucywgYW5kCisgICAgICAgIGl0IHNob3dzIHVwIG9uIFNwZWVkb21ldGVyIHByb2Zp
bGVzIHNvIG9wdGltaXplIHRvIG9ubHkgcnVuIHRoaXMgY29kZSBpZiB3ZSBoYXZlIGEgc2VsZWN0
aW9uIHJhbmdlLgorCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmVzcG9uZFRvTm9kZU1vZGlmaWNhdGlvbik6
CisKIDIwMTktMDEtMTQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0hMU0xdIEFzc29ydGVkIGNsZWFudXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggODA3M2FkN2ZjN2UwZjc1N2QyYzdjMzMzZGY4YmE4
ZGYxYTVkZTNlNy4uMTQxNmEyNTlkZTJmYzUxMTk1ZGYyYzRjNzkxOWMyOGQ2Zjk5MjdlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTUzNywxNiArNTM3
LDE4IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJlc3BvbmRUb05vZGVNb2RpZmljYXRpb24oTm9k
ZSYgbm9kZSwgYm9vbCBiYXNlUmVtb3ZlZCwgYm9vCiAgICAgICAgICAgICBtX3NlbGVjdGlvbi5z
ZXRXaXRob3V0VmFsaWRhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLCBtX3NlbGVjdGlvbi5lbmQo
KSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fc2VsZWN0aW9uLnNldFdpdGhvdXRWYWxp
ZGF0aW9uKG1fc2VsZWN0aW9uLmVuZCgpLCBtX3NlbGVjdGlvbi5zdGFydCgpKTsKLSAgICB9IGVs
c2UgaWYgKFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBtX3NlbGVjdGlvbi5maXJzdFJhbmdlKCkpIHsK
LSAgICAgICAgYXV0byBjb21wYXJlTm9kZVJlc3VsdCA9IHJhbmdlLT5jb21wYXJlTm9kZShub2Rl
KTsKLSAgICAgICAgaWYgKCFjb21wYXJlTm9kZVJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAg
ICAgICAgICAgYXV0byBjb21wYXJlUmVzdWx0ID0gY29tcGFyZU5vZGVSZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCk7Ci0gICAgICAgICAgICBpZiAoY29tcGFyZVJlc3VsdCA9PSBSYW5nZTo6Tk9E
RV9CRUZPUkVfQU5EX0FGVEVSIHx8IGNvbXBhcmVSZXN1bHQgPT0gUmFuZ2U6Ok5PREVfSU5TSURF
KSB7Ci0gICAgICAgICAgICAgICAgLy8gSWYgd2UgZGlkIG5vdGhpbmcgaGVyZSwgd2hlbiB0aGlz
IG5vZGUncyByZW5kZXJlciB3YXMgZGVzdHJveWVkLCB0aGUgcmVjdCB0aGF0IGl0IAotICAgICAg
ICAgICAgICAgIC8vIG9jY3VwaWVkIHdvdWxkIGJlIGludmFsaWRhdGVkLCBidXQsIHNlbGVjdGlv
biBnYXBzIHRoYXQgY2hhbmdlIGFzIGEgcmVzdWx0IG9mIAotICAgICAgICAgICAgICAgIC8vIHRo
ZSByZW1vdmFsIHdvdWxkbid0IGJlIGludmFsaWRhdGVkLgotICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBEb24ndCBkbyBzbyBtdWNoIHVubmVjZXNzYXJ5IGludmFsaWRhdGlvbi4KLSAgICAgICAg
ICAgICAgICBjbGVhclJlbmRlclRyZWVTZWxlY3Rpb24gPSB0cnVlOworICAgIH0gZWxzZSBpZiAo
aXNSYW5nZSgpKSB7CisgICAgICAgIGlmIChSZWZQdHI8UmFuZ2U+IHJhbmdlID0gbV9zZWxlY3Rp
b24uZmlyc3RSYW5nZSgpKSB7CisgICAgICAgICAgICBhdXRvIGNvbXBhcmVOb2RlUmVzdWx0ID0g
cmFuZ2UtPmNvbXBhcmVOb2RlKG5vZGUpOworICAgICAgICAgICAgaWYgKCFjb21wYXJlTm9kZVJl
c3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAgICAgIGF1dG8gY29tcGFyZVJlc3Vs
dCA9IGNvbXBhcmVOb2RlUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICAgICAg
ICAgIGlmIChjb21wYXJlUmVzdWx0ID09IFJhbmdlOjpOT0RFX0JFRk9SRV9BTkRfQUZURVIgfHwg
Y29tcGFyZVJlc3VsdCA9PSBSYW5nZTo6Tk9ERV9JTlNJREUpIHsKKyAgICAgICAgICAgICAgICAg
ICAgLy8gSWYgd2UgZGlkIG5vdGhpbmcgaGVyZSwgd2hlbiB0aGlzIG5vZGUncyByZW5kZXJlciB3
YXMgZGVzdHJveWVkLCB0aGUgcmVjdCB0aGF0IGl0CisgICAgICAgICAgICAgICAgICAgIC8vIG9j
Y3VwaWVkIHdvdWxkIGJlIGludmFsaWRhdGVkLCBidXQsIHNlbGVjdGlvbiBnYXBzIHRoYXQgY2hh
bmdlIGFzIGEgcmVzdWx0IG9mCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZW1vdmFsIHdv
dWxkbid0IGJlIGludmFsaWRhdGVkLgorICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogRG9u
J3QgZG8gc28gbXVjaCB1bm5lY2Vzc2FyeSBpbnZhbGlkYXRpb24uCisgICAgICAgICAgICAgICAg
ICAgIGNsZWFyUmVuZGVyVHJlZVNlbGVjdGlvbiA9IHRydWU7CisgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>