<?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>215406</bug_id>
          
          <creation_ts>2020-08-11 21:03:58 -0700</creation_ts>
          <short_desc>Text manipulation should not manipulate nodes out of paragraph range</short_desc>
          <delta_ts>2020-08-24 11:06:06 -0700</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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1679696</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-08-11 21:03:58 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679697</commentid>
    <comment_count>1</comment_count>
      <attachid>406445</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-08-11 21:15:30 -0700</bug_when>
    <thetext>Created attachment 406445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679745</commentid>
    <comment_count>2</comment_count>
      <attachid>406445</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-12 09:31:49 -0700</bug_when>
    <thetext>Comment on attachment 406445
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Text manipulationshould not manipulate nodes out of paragraph range

Nit - space before “should”

&gt; Source/WebCore/ChangeLog:9
&gt; +        the nodes on the start path but out ouf range correctly, and may change position of those nodes by mistake. For 

Nit - “out of”

&gt; Source/WebCore/editing/TextManipulationController.cpp:840
&gt; +    while (!startTopDownPath.isEmpty()) {
&gt; +        auto lastNode = startTopDownPath.last();
&gt; +        ASSERT(is&lt;ContainerNode&gt;(lastNode.get()));
&gt; +        if (!downcast&lt;ContainerNode&gt;(lastNode.get()).hasOneChild())
&gt; +            break;
&gt; +        nodesToRemove.add(startTopDownPath.takeLast());
&gt; +    }

Perhaps getPath() should just return `Vector&lt;Ref&lt;ContainerNode&gt;&gt;` instead, and change this into something along the lines of:
```
while (!startTopDownPath.isEmpty() &amp;&amp; startTopDownPath.last()-&gt;hasOneChild())
    nodesToRemove.add(startTopDownPath.takeLast());
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681292</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-18 21:04:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/67375376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681886</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-08-20 17:42:47 -0700</bug_when>
    <thetext>Is this patch getting landed??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682345</commentid>
    <comment_count>5</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-08-24 09:19:50 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #4)
&gt; Is this patch getting landed??

Yes, will land soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682390</commentid>
    <comment_count>6</comment_count>
      <attachid>406445</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-08-24 10:36:42 -0700</bug_when>
    <thetext>Comment on attachment 406445
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        Text manipulationshould not manipulate nodes out of paragraph range
&gt; 
&gt; Nit - space before “should”

Okay.

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        the nodes on the start path but out ouf range correctly, and may change position of those nodes by mistake. For 
&gt; 
&gt; Nit - “out of”

Okay.

&gt;&gt; Source/WebCore/editing/TextManipulationController.cpp:840
&gt;&gt; +    }
&gt; 
&gt; Perhaps getPath() should just return `Vector&lt;Ref&lt;ContainerNode&gt;&gt;` instead, and change this into something along the lines of:
&gt; ```
&gt; while (!startTopDownPath.isEmpty() &amp;&amp; startTopDownPath.last()-&gt;hasOneChild())
&gt;     nodesToRemove.add(startTopDownPath.takeLast());
&gt; ```

I tried this and found we need to make changes to updateInsertions(), which seems unnecessary for fixing the bug. I can do this in a follow-up patch, as getPath should only return ContainerNodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682391</commentid>
    <comment_count>7</comment_count>
      <attachid>407109</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-08-24 10:39:16 -0700</bug_when>
    <thetext>Created attachment 407109
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682399</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-24 11:06:05 -0700</bug_when>
    <thetext>Committed r266075: &lt;https://trac.webkit.org/changeset/266075&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407109.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406445</attachid>
            <date>2020-08-11 21:15:30 -0700</date>
            <delta_ts>2020-08-24 10:39:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215406-20200811211529.patch</filename>
            <type>text/plain</type>
            <size>5867</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjA2OTRmMzU5NWUwZGQ5
NTgyNzRmZGNjMmU2MzY0YjM3M2U2MjM0OS4uYWQ2MjljZDQ2MGIxM2Y1YzQzMDU0MTM0YzMyNzgx
NzQ5YjcxYzRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA4LTExICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1bGF0aW9u
c2hvdWxkIG5vdCBtYW5pcHVsYXRlIG5vZGVzIG91dCBvZiBwYXJhZ3JhcGggcmFuZ2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTQwNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyIGN1cnJlbnRseSBkb2VzIG5vdCBzZXQgY29ycmVjdCBzdGFydCBwYXRoIGZv
ciBpbnNlcnRpb24uIFRoZXJlZm9yZSwgaXQgZG9lcyBub3QgbWFyayAKKyAgICAgICAgdGhlIG5v
ZGVzIG9uIHRoZSBzdGFydCBwYXRoIGJ1dCBvdXQgb3VmIHJhbmdlIGNvcnJlY3RseSwgYW5kIG1h
eSBjaGFuZ2UgcG9zaXRpb24gb2YgdGhvc2Ugbm9kZXMgYnkgbWlzdGFrZS4gRm9yIAorICAgICAg
ICBleGFtcGxlLCBpbiB0aGUgbmV3bHkgYWRkZWQgdGVzdCwgdGV4dCBub2RlIHdpdGggInplcm8i
IGNhbiBiZSBtb3ZlZCBhcm91bmQuCisKKyAgICAgICAgQVBJIHRlc3Q6IFRleHRNYW5pcHVsYXRp
b24uQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uU2hvdWxkT25seUNoYW5nZU5vZGVzSW5QYXJhZ3Jh
cGhSYW5nZQorCisgICAgICAgICogZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6cmVwbGFj
ZSk6CisKIDIwMjAtMDgtMTEgIEphbWVzIERhcnBpbmlhbiAgPGpkYXJwaW5pYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtXZWJHTDJdIERlcHRoIGZvcm1hdHMgY2FuIGhhdmUgbWlwbWFwcyBp
biBXZWJHTCAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGY1YjMwOWI4ZWE1ZmJhODRjYTVhMDI3NDFmNGMxMmQ2
NTk3OTMyNWQuLmI1NTRiYjM4ZjQ5ZDNmZWQzNjdhZjVhZGFiMWNiMTQ4YTQyMTQ0YzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXIuY3BwCkBAIC04MjksOCArODI5LDIwIEBAIGF1dG8gVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXI6OnJlcGxhY2UoY29uc3QgTWFuaXB1bGF0aW9uSXRlbURhdGEmIGl0ZW0sIGNvbnN0CiAgICAg
ICAgIG5vZGVzVG9SZW1vdmUucmVtb3ZlKCpub2RlKTsKIAogICAgIEhhc2hTZXQ8UmVmPE5vZGU+
PiByZXVzZWRPcmlnaW5hbE5vZGVzOwotICAgIFZlY3RvcjxOb2RlRW50cnk+IGxhc3RUb3BEb3du
UGF0aDsKICAgICBWZWN0b3I8Tm9kZUluc2VydGlvbj4gaW5zZXJ0aW9uczsKKyAgICBhdXRvIHN0
YXJ0VG9wRG93blBhdGggPSBnZXRQYXRoKGNvbW1vbkFuY2VzdG9yLmdldCgpLCBmaXJzdENvbnRl
bnROb2RlLmdldCgpKTsKKyAgICB3aGlsZSAoIXN0YXJ0VG9wRG93blBhdGguaXNFbXB0eSgpKSB7
CisgICAgICAgIGF1dG8gbGFzdE5vZGUgPSBzdGFydFRvcERvd25QYXRoLmxhc3QoKTsKKyAgICAg
ICAgQVNTRVJUKGlzPENvbnRhaW5lck5vZGU+KGxhc3ROb2RlLmdldCgpKSk7CisgICAgICAgIGlm
ICghZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4obGFzdE5vZGUuZ2V0KCkpLmhhc09uZUNoaWxkKCkp
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgbm9kZXNUb1JlbW92ZS5hZGQoc3RhcnRUb3BE
b3duUGF0aC50YWtlTGFzdCgpKTsKKyAgICB9CisgICAgYXV0byBsYXN0VG9wRG93blBhdGggPSBz
dGFydFRvcERvd25QYXRoLm1hcChbJl0oYXV0byBub2RlKSAtPiBOb2RlRW50cnkgeworICAgICAg
ICByZXVzZWRPcmlnaW5hbE5vZGVzLmFkZChub2RlLmNvcHlSZWYoKSk7CisgICAgICAgIHJldHVy
biB7IG5vZGUsIG5vZGUgfTsKKyAgICB9KTsKKwogICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsg
aW5kZXggPCByZXBsYWNlbWVudFRva2Vucy5zaXplKCk7ICsraW5kZXgpIHsKICAgICAgICAgYXV0
byYgcmVwbGFjZW1lbnRUb2tlbiA9IHJlcGxhY2VtZW50VG9rZW5zW2luZGV4XTsKICAgICAgICAg
YXV0byBpdCA9IHRva2VuRXhjaGFuZ2VNYXAuZmluZChyZXBsYWNlbWVudFRva2VuLmlkZW50aWZp
ZXIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGY3ZTY2YjlhODYyOThlZjk3NzUzZWE0MzdmMGRiZTVlNGJhMzZhMjYuLjhlNGM0MDkxOGYyZmU0
Nzg4MDllNDgwNTIzYjk5NTdjNGFhY2FhYmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wOC0xMSAgU2lodWkg
TGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBUZXh0IG1hbmlwdWxhdGlvbnNo
b3VsZCBub3QgbWFuaXB1bGF0ZSBub2RlcyBvdXQgb2YgcGFyYWdyYXBoIHJhbmdlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU0MDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorCiAyMDIwLTA4LTExICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRW5hYmxlIEhUVFAvMiBwaW5nIEFQSSB0ZXN0cwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFu
aXB1bGF0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0
TWFuaXB1bGF0aW9uLm1tCmluZGV4IGQ0ZTIxNWQ0OTVkNzc1ODBmZTQ2ZDEyM2JiYjdjNThjYjNk
Yzg0ZmYuLjdlZDg0ZDVkZGE1NzBhYTg1ODAxMzhlNmU2YzViZjFkNzlhNzU5YTAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlv
bi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5p
cHVsYXRpb24ubW0KQEAgLTMxMjQsNiArMzEyNCw1NCBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24s
IENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvblNob3VsZFJlcGxhY2VDb250ZW50SWdub3JlZEJ5RWRp
dAogICAgIEVYUEVDVF9XS19TVFJFUSgiPGRpdiByb2xlPVwiaW1nXCI+SW1hZ2VzPGE+TGluazwv
YT48aW1nIHNyYz1cImhlbGxvLnBuZ1wiPjxpbWcgc3JjPVwid2Via2l0LnBuZ1wiPjwvZGl2PiIs
IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5Lmlu
bmVySFRNTCJdKTsKIH0KIAorVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5p
cHVsYXRpb25TaG91bGRPbmx5Q2hhbmdlTm9kZXNJblBhcmFncmFwaFJhbmdlKQoreworICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsKKyAgICBbd2ViVmll
dyBfc2V0VGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8IURPQ1RZUEUgaHRtbD4iCisgICAg
ICAgICI8aGVhZD4iCisgICAgICAgICAgICAiPHN0eWxlPiIKKyAgICAgICAgICAgICAgICAic3Bh
biB7IHdoaXRlLXNwYWNlOnByZTsgfSIKKyAgICAgICAgICAgICI8L3N0eWxlPiIKKyAgICAgICAg
IjwvaGVhZD4iCisgICAgICAgICI8Ym9keT4iCisgICAgICAgICAgICAiPHNwYW4+emVybyAmIzEw
OzxiPnR3byBmb3VyPC9iPjwvc3Bhbj4iCisgICAgICAgICAgICAib25lIgorICAgICAgICAgICAg
IjxpPnRocmVlPC9pPiIKKyAgICAgICAgIjwvYm9keT4iXTsKKworICAgIGRvbmUgPSBmYWxzZTsK
KyAgICBbd2ViVmlldyBfc3RhcnRUZXh0TWFuaXB1bGF0aW9uc1dpdGhDb25maWd1cmF0aW9uOm5p
bCBjb21wbGV0aW9uOl57CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBhdXRvICppdGVtcyA9IFtkZWxlZ2F0
ZSBpdGVtc107CisgICAgRVhQRUNUX0VRKGl0ZW1zLmNvdW50LCAyVUwpOworICAgIEVYUEVDVF9F
UShpdGVtc1swXS50b2tlbnMuY291bnQsIDJVTCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ6ZXJv
IiwgaXRlbXNbMF0udG9rZW5zWzBdLmNvbnRlbnQpOworICAgIEVYUEVDVF9XS19TVFJFUSgiIFxu
IiwgaXRlbXNbMF0udG9rZW5zWzFdLmNvbnRlbnQpOworICAgIEVYUEVDVF9FUShpdGVtc1sxXS50
b2tlbnMuY291bnQsIDNVTCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ0d28gZm91ciIsIGl0ZW1z
WzFdLnRva2Vuc1swXS5jb250ZW50KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIm9uZSIsIGl0ZW1z
WzFdLnRva2Vuc1sxXS5jb250ZW50KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoInRocmVlIiwgaXRl
bXNbMV0udG9rZW5zWzJdLmNvbnRlbnQpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJW
aWV3IF9jb21wbGV0ZVRleHRNYW5pcHVsYXRpb25Gb3JJdGVtczpAWyhfV0tUZXh0TWFuaXB1bGF0
aW9uSXRlbSAqKWNyZWF0ZUl0ZW0oaXRlbXNbMV0uaWRlbnRpZmllciwgeworICAgICAgICB7IGl0
ZW1zWzFdLnRva2Vuc1sxXS5pZGVudGlmaWVyLCBAIm9uZSIgfSwKKyAgICAgICAgeyBpdGVtc1sx
XS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJ0d28iIH0sCisgICAgICAgIHsgaXRlbXNbMV0udG9r
ZW5zWzJdLmlkZW50aWZpZXIsIEAidGhyZWUiIH0sCisgICAgICAgIHsgaXRlbXNbMV0udG9rZW5z
WzBdLmlkZW50aWZpZXIsIEAiZm91ciIgfQorICAgIH0pLmdldCgpXSBjb21wbGV0aW9uOl4oTlNB
cnJheTxOU0Vycm9yICo+ICplcnJvcnMpIHsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9ycywgbmls
KTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIjxzcGFuPnplcm8gXG48L3NwYW4+
b25lPHNwYW4+PGI+dHdvPC9iPjwvc3Bhbj48aT50aHJlZTwvaT48c3Bhbj48Yj5mb3VyPC9iPjwv
c3Bhbj4iLAorICAgICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
ZG9jdW1lbnQuYm9keS5pbm5lckhUTUwiXSk7Cit9CisKIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwg
VGV4dE1hbmlwdWxhdGlvblRva2VuRGVidWdEZXNjcmlwdGlvbikKIHsKICAgICBhdXRvIHRva2Vu
ID0gYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25Ub2tlbiBhbGxvY10gaW5pdF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407109</attachid>
            <date>2020-08-24 10:39:16 -0700</date>
            <delta_ts>2020-08-24 11:06:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215406-20200824103915.patch</filename>
            <type>text/plain</type>
            <size>5886</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzIyOWRhM2RiNGY0OWM3
MDZlOWVhOTMyZWM3N2Q1ZGQ1Y2NlMmYwNS4uNGMwODBhYzVhOGE4MWJjMTkzMGY5MDVmMDg3MGU4
MTg2ODk0ODBiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA4LTI0ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1bGF0aW9u
IHNob3VsZCBub3QgbWFuaXB1bGF0ZSBub2RlcyBvdXQgb2YgcGFyYWdyYXBoIHJhbmdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU0MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXIgY3VycmVudGx5IGRvZXMgbm90IHNldCBjb3JyZWN0IHN0YXJ0IHBhdGggZm9y
IGluc2VydGlvbi4gVGhlcmVmb3JlLCBpdCBkb2VzIG5vdCBtYXJrIAorICAgICAgICB0aGUgbm9k
ZXMgb24gdGhlIHN0YXJ0IHBhdGggYnV0IG91dCBvZiByYW5nZSBjb3JyZWN0bHksIGFuZCBtYXkg
Y2hhbmdlIHBvc2l0aW9uIG9mIHRob3NlIG5vZGVzIGJ5IG1pc3Rha2UuIEZvciAKKyAgICAgICAg
ZXhhbXBsZSwgaW4gdGhlIG5ld2x5IGFkZGVkIHRlc3QsIHRleHQgbm9kZSAiemVybyIgY2FuIGJl
IG1vdmVkIGFyb3VuZCBldmVuIHRob3VnaCBpdCBpcyBub3QgaW4gcmFuZ2UuCisKKyAgICAgICAg
QVBJIHRlc3Q6IFRleHRNYW5pcHVsYXRpb24uQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uU2hvdWxk
T25seUNoYW5nZU5vZGVzSW5QYXJhZ3JhcGhSYW5nZQorCisgICAgICAgICogZWRpdGluZy9UZXh0
TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlcjo6cmVwbGFjZSk6CisKIDIwMjAtMDgtMjQgIEFkcmlhbiBQZXJleiBk
ZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBOb24tdW5pZmllZCBidWls
ZCBmaXhlcywgbGF0ZSBBdWd1c3QgMjAyMCBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGJhY2U3YzNk
ZWFkODUzMTRhZDhjMDJkMDhlYzRjMjQ4MjJkYTE3NTIuLmFkNDM4NzA3OWU2NjdhZGE1YmQxZDIx
ZWQyYjg4NDY4ZTFlN2ExM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC04MjksOCArODI5LDIwIEBAIGF1dG8g
VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OnJlcGxhY2UoY29uc3QgTWFuaXB1bGF0aW9uSXRl
bURhdGEmIGl0ZW0sIGNvbnN0CiAgICAgICAgIG5vZGVzVG9SZW1vdmUucmVtb3ZlKCpub2RlKTsK
IAogICAgIEhhc2hTZXQ8UmVmPE5vZGU+PiByZXVzZWRPcmlnaW5hbE5vZGVzOwotICAgIFZlY3Rv
cjxOb2RlRW50cnk+IGxhc3RUb3BEb3duUGF0aDsKICAgICBWZWN0b3I8Tm9kZUluc2VydGlvbj4g
aW5zZXJ0aW9uczsKKyAgICBhdXRvIHN0YXJ0VG9wRG93blBhdGggPSBnZXRQYXRoKGNvbW1vbkFu
Y2VzdG9yLmdldCgpLCBmaXJzdENvbnRlbnROb2RlLmdldCgpKTsKKyAgICB3aGlsZSAoIXN0YXJ0
VG9wRG93blBhdGguaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gbGFzdE5vZGUgPSBzdGFydFRv
cERvd25QYXRoLmxhc3QoKTsKKyAgICAgICAgQVNTRVJUKGlzPENvbnRhaW5lck5vZGU+KGxhc3RO
b2RlLmdldCgpKSk7CisgICAgICAgIGlmICghZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4obGFzdE5v
ZGUuZ2V0KCkpLmhhc09uZUNoaWxkKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgbm9k
ZXNUb1JlbW92ZS5hZGQoc3RhcnRUb3BEb3duUGF0aC50YWtlTGFzdCgpKTsKKyAgICB9CisgICAg
YXV0byBsYXN0VG9wRG93blBhdGggPSBzdGFydFRvcERvd25QYXRoLm1hcChbJl0oYXV0byBub2Rl
KSAtPiBOb2RlRW50cnkgeworICAgICAgICByZXVzZWRPcmlnaW5hbE5vZGVzLmFkZChub2RlLmNv
cHlSZWYoKSk7CisgICAgICAgIHJldHVybiB7IG5vZGUsIG5vZGUgfTsKKyAgICB9KTsKKwogICAg
IGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCByZXBsYWNlbWVudFRva2Vucy5zaXplKCk7
ICsraW5kZXgpIHsKICAgICAgICAgYXV0byYgcmVwbGFjZW1lbnRUb2tlbiA9IHJlcGxhY2VtZW50
VG9rZW5zW2luZGV4XTsKICAgICAgICAgYXV0byBpdCA9IHRva2VuRXhjaGFuZ2VNYXAuZmluZChy
ZXBsYWNlbWVudFRva2VuLmlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFmYzNkN2EzYTE1ZGI4MTkxMGMxYWZlZWMyZThkNWE1
ODFjYjMxMjkuLjMzMWE0ZjMyOWZiNTAyMjZkMDE3NmNlNDY4OGMxM2Q1MGFiNWY4MzcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMC0wOC0yNCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAg
ICAgICBUZXh0IG1hbmlwdWxhdGlvbnNob3VsZCBub3QgbWFuaXB1bGF0ZSBub2RlcyBvdXQgb2Yg
cGFyYWdyYXBoIHJhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTU0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24u
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wOC0yNCAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZC4gRml4IEdUSzQgYnVpbGQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQppbmRleCA3MDczODVkYzZlOGRiZWZm
YjE1NTlkY2I0YWIzYTkxNDIxNWI2YjdjLi5jODhmMjllZDBkZTFiMDRmMWM0ZDRlZGZiODhlYmU5
NjJkODg3NDFlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1RleHRNYW5pcHVsYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCkBAIC0zMTMxLDYgKzMxMzEsNTQgQEAgVEVT
VChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb25TaG91bGRSZXBsYWNl
Q29udGVudElnbm9yZWRCeUVkaXQKICAgICBFWFBFQ1RfV0tfU1RSRVEoIjxkaXYgcm9sZT1cImlt
Z1wiPkltYWdlczxhPkxpbms8L2E+PGltZyBzcmM9XCJoZWxsby5wbmdcIj48aW1nIHNyYz1cIndl
YmtpdC5wbmdcIj48L2Rpdj4iLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiZG9jdW1lbnQuYm9keS5pbm5lckhUTUwiXSk7CiB9CiAKK1RFU1QoVGV4dE1hbmlwdWxhdGlv
biwgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uU2hvdWxkT25seUNoYW5nZU5vZGVzSW5QYXJhZ3Jh
cGhSYW5nZSkKK3sKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1RleHRNYW5pcHVsYXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0
MDApXSk7CisgICAgW3dlYlZpZXcgX3NldFRleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPCFE
T0NUWVBFIGh0bWw+IgorICAgICAgICAiPGhlYWQ+IgorICAgICAgICAgICAgIjxzdHlsZT4iCisg
ICAgICAgICAgICAgICAgInNwYW4geyB3aGl0ZS1zcGFjZTpwcmU7IH0iCisgICAgICAgICAgICAi
PC9zdHlsZT4iCisgICAgICAgICI8L2hlYWQ+IgorICAgICAgICAiPGJvZHk+IgorICAgICAgICAg
ICAgIjxzcGFuPnplcm8gJiMxMDs8Yj50d28gZm91cjwvYj48L3NwYW4+IgorICAgICAgICAgICAg
Im9uZSIKKyAgICAgICAgICAgICI8aT50aHJlZTwvaT4iCisgICAgICAgICI8L2JvZHk+Il07CisK
KyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgX3N0YXJ0VGV4dE1hbmlwdWxhdGlvbnNX
aXRoQ29uZmlndXJhdGlvbjpuaWwgY29tcGxldGlvbjpeeworICAgICAgICBkb25lID0gdHJ1ZTsK
KyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0
byAqaXRlbXMgPSBbZGVsZWdhdGUgaXRlbXNdOworICAgIEVYUEVDVF9FUShpdGVtcy5jb3VudCwg
MlVMKTsKKyAgICBFWFBFQ1RfRVEoaXRlbXNbMF0udG9rZW5zLmNvdW50LCAyVUwpOworICAgIEVY
UEVDVF9XS19TVFJFUSgiemVybyIsIGl0ZW1zWzBdLnRva2Vuc1swXS5jb250ZW50KTsKKyAgICBF
WFBFQ1RfV0tfU1RSRVEoIiBcbiIsIGl0ZW1zWzBdLnRva2Vuc1sxXS5jb250ZW50KTsKKyAgICBF
WFBFQ1RfRVEoaXRlbXNbMV0udG9rZW5zLmNvdW50LCAzVUwpOworICAgIEVYUEVDVF9XS19TVFJF
USgidHdvIGZvdXIiLCBpdGVtc1sxXS50b2tlbnNbMF0uY29udGVudCk7CisgICAgRVhQRUNUX1dL
X1NUUkVRKCJvbmUiLCBpdGVtc1sxXS50b2tlbnNbMV0uY29udGVudCk7CisgICAgRVhQRUNUX1dL
X1NUUkVRKCJ0aHJlZSIsIGl0ZW1zWzFdLnRva2Vuc1syXS5jb250ZW50KTsKKworICAgIGRvbmUg
PSBmYWxzZTsKKyAgICBbd2ViVmlldyBfY29tcGxldGVUZXh0TWFuaXB1bGF0aW9uRm9ySXRlbXM6
QFsoX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0gKiljcmVhdGVJdGVtKGl0ZW1zWzFdLmlkZW50aWZp
ZXIsIHsKKyAgICAgICAgeyBpdGVtc1sxXS50b2tlbnNbMV0uaWRlbnRpZmllciwgQCJvbmUiIH0s
CisgICAgICAgIHsgaXRlbXNbMV0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAidHdvIiB9LAorICAg
ICAgICB7IGl0ZW1zWzFdLnRva2Vuc1syXS5pZGVudGlmaWVyLCBAInRocmVlIiB9LAorICAgICAg
ICB7IGl0ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAImZvdXIiIH0KKyAgICB9KS5nZXQo
KV0gY29tcGxldGlvbjpeKE5TQXJyYXk8TlNFcnJvciAqPiAqZXJyb3JzKSB7CisgICAgICAgIEVY
UEVDVF9FUShlcnJvcnMsIG5pbCk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCI8
c3Bhbj56ZXJvIFxuPC9zcGFuPm9uZTxzcGFuPjxiPnR3bzwvYj48L3NwYW4+PGk+dGhyZWU8L2k+
PHNwYW4+PGI+Zm91cjwvYj48L3NwYW4+IiwKKyAgICAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJIVE1MIl0pOworfQorCiBURVNU
KFRleHRNYW5pcHVsYXRpb24sIFRleHRNYW5pcHVsYXRpb25Ub2tlbkRlYnVnRGVzY3JpcHRpb24p
CiB7CiAgICAgYXV0byB0b2tlbiA9IGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4g
YWxsb2NdIGluaXRdKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>