<?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>204332</bug_id>
          
          <creation_ts>2019-11-18 17:17:59 -0800</creation_ts>
          <short_desc>Nullptr crash in Node::setTextContent via Document::setTitle if title element is removed before setTextContent call.</short_desc>
          <delta_ts>2019-12-04 00:07:12 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>macOS 10.15</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="Sunny He">sunny_he</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>product-security</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1591342</commentid>
    <comment_count>0</comment_count>
      <attachid>383812</attachid>
    <who name="Sunny He">sunny_he</who>
    <bug_when>2019-11-18 17:17:59 -0800</bug_when>
    <thetext>Created attachment 383812
Repro input

Document::setTitle may append a new title element if none currently exists. If this triggers an event handler which deletes this new title element, the call to setTextContent will cause a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591343</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-18 17:18:09 -0800</bug_when>
    <thetext>&lt;rdar://problem/57305579&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591347</commentid>
    <comment_count>2</comment_count>
    <who name="Sunny He">sunny_he</who>
    <bug_when>2019-11-18 17:19:43 -0800</bug_when>
    <thetext>&lt;rdar://56626071&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591349</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-18 17:24:25 -0800</bug_when>
    <thetext>This is not a security bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591353</commentid>
    <comment_count>4</comment_count>
      <attachid>383816</attachid>
    <who name="Sunny He">sunny_he</who>
    <bug_when>2019-11-18 17:30:23 -0800</bug_when>
    <thetext>Created attachment 383816
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591354</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-18 17:30:55 -0800</bug_when>
    <thetext>WebKit&apos;s behavior of document.title&apos;s setter matches the current spec:
https://html.spec.whatwg.org/multipage/dom.html#document.title

which says:
&gt; Let element be the result of creating an element given the document element&apos;s node document, title, and the HTML namespace.
&gt;
&gt; Append element to the head element.

Because the spec doesn&apos;t have mutation events they don&apos;t have to deal with the situation in which appending the element to the head element results in its removal :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591359</commentid>
    <comment_count>6</comment_count>
      <attachid>383816</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-18 17:32:58 -0800</bug_when>
    <thetext>Comment on attachment 383816
Patch

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

&gt; Source/WebCore/dom/Document.cpp:1601
&gt; +        // Another null check since insertBefore may have triggered event that deletes m_titleElement

This is a bit verbose. I think we can just say: &quot;insertBefore above may have ran scripts which removed m_titleElement&quot;

&gt; Source/WebCore/dom/Document.cpp:1613
&gt; +        // Another null check since appendChild may have triggered event that deletes m_titleElement
&gt; +        if (m_titleElement)

Ditto.

&gt; LayoutTests/fast/dom/Document/title-property-set-with-dom-event.html:1
&gt; +&lt;html&gt;

Can we add another test case with a SVG document since you&apos;re also making the code change to SVG code path?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591361</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-18 17:33:40 -0800</bug_when>
    <thetext>I guess one thing we should check is what other browsers do. Do they set the value of title element despite of the fact they&apos;re no longer in the document?

What do they do if they insert the removed element into a new document (e.g. into an iframe&apos;s contentDocument).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591381</commentid>
    <comment_count>8</comment_count>
    <who name="Sunny He">sunny_he</who>
    <bug_when>2019-11-18 17:53:26 -0800</bug_when>
    <thetext>Firefox does update the text value, but Chrome does not. So this patch will align with Chrome&apos;s behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591428</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-18 21:17:35 -0800</bug_when>
    <thetext>(In reply to Sunny He from comment #8)
&gt; Firefox does update the text value, but Chrome does not. So this patch will
&gt; align with Chrome&apos;s behavior.

I don&apos;t think Firefox updates the text value per se. I think the behavior we observed is that Firefox would set the text content value of HTMLTitleElement before DOMNodeInserted event fires. In neither browsers, document&apos;s title was updated because the title element is ultimately removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591697</commentid>
    <comment_count>10</comment_count>
      <attachid>383904</attachid>
    <who name="Sunny He">sunny_he</who>
    <bug_when>2019-11-19 14:15:26 -0800</bug_when>
    <thetext>Created attachment 383904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591776</commentid>
    <comment_count>11</comment_count>
      <attachid>383904</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-19 16:52:45 -0800</bug_when>
    <thetext>Comment on attachment 383904
Patch

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

&gt; LayoutTests/fast/dom/Document/title-property-set-with-dom-event-svg.html:5
&gt; +    if (window.testRunner) {

WebKit style is to not use curly braces around a single line statement but it’s okay to keep it like this for tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591794</commentid>
    <comment_count>12</comment_count>
      <attachid>383904</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-19 17:27:42 -0800</bug_when>
    <thetext>Comment on attachment 383904
Patch

Clearing flags on attachment: 383904

Committed r252667: &lt;https://trac.webkit.org/changeset/252667&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591795</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-19 17:27:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591873</commentid>
    <comment_count>14</comment_count>
      <attachid>383904</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-11-19 21:07:44 -0800</bug_when>
    <thetext>Comment on attachment 383904
Patch

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

&gt; Source/WebCore/dom/Document.cpp:1601
&gt; +        // insertBefore above may have ran scripts which removed m_titleElement

...may have run scripts... Also period at the end (we like comments to be full sentences).

&gt; Source/WebCore/dom/Document.cpp:1612
&gt; +        // appendChild above may have ran scripts which removed m_titleElement

Same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595398</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-12-04 00:07:12 -0800</bug_when>
    <thetext>Committed r253096: &lt;https://trac.webkit.org/changeset/253096&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>383812</attachid>
            <date>2019-11-18 17:17:59 -0800</date>
            <delta_ts>2019-11-18 17:17:59 -0800</delta_ts>
            <desc>Repro input</desc>
            <filename>input_test.html</filename>
            <type>text/html</type>
            <size>440</size>
            <attacher name="Sunny He">sunny_he</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0PgpmdW5jdGlvbiB0ZXN0KCkgewogICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAg
fQoKICAgIHdpbmRvdy50b3AuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZUluc2VydGVkIiwgKCkg
PT4gewogICAgICAgIGRvY3VtZW50LmhlYWQuaW5uZXJIVE1MID0gMTIzOwogICAgfSk7CiAgICBk
b2N1bWVudC50aXRsZSA9ICJhYmMiOwp9CnRlc3QoKQo8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICAgIDxwPlRlc3QgdGhhdCBzZXR0aW5nIHRpdGxlIHdoaWxlIHRoZXJlIGlzIGEgRE9NTm9kZUlu
c2VydGVkIGV2ZW50IGhhbmRsZXIgd2hpY2ggaW5kaXJlY3RseSBkZWxldGVzIHRpdGxlIGFjdGl2
ZSBkb2Vzbid0IGNyYXNoLgogICAgPC9wPgo8L2JvZHk+CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383816</attachid>
            <date>2019-11-18 17:30:23 -0800</date>
            <delta_ts>2019-11-19 14:15:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204332-20191118173022.patch</filename>
            <type>text/plain</type>
            <size>4373</size>
            <attacher name="Sunny He">sunny_he</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTUxODg2YzhmZThmMDJi
MDBmNWEwNWQ4ZTgxYzViYWU4MDBmMTk5Yi4uMjg3NmQwZDRiMGI1YzIxNGNkM2U2YTAwYmZmYmFl
N2QwZTNlM2FmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTExLTE4ICBTdW5u
eSBIZSAgPHN1bm55X2hlQGFwcGxlLmNvbT4KKworICAgICAgICBOdWxscHRyIGNyYXNoIGluIE5v
ZGU6OnNldFRleHRDb250ZW50IHZpYSBEb2N1bWVudDo6c2V0VGl0bGUgaWYgdGl0bGUgZWxlbWVu
dCBpcyByZW1vdmVkIGJlZm9yZSBzZXRUZXh0Q29udGVudCBjYWxsLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vRG9jdW1lbnQv
dGl0bGUtcHJvcGVydHktc2V0LXdpdGgtZG9tLWV2ZW50Lmh0bWwKKworICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0VGl0bGUpOgorCiAy
MDE5LTExLTE1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xG
Q11bSW52YWxpZGF0aW9uXSBSZXVzZSBGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjptX2xheW91dFN0
YXRlIGZvciBpbmNyZW1lbnRhbCBsYXlvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGZl
MmU2YzU0YjRkYWNkMDllNzgwZDUyOTA4NGMyZTEyOTFmMTM1OWYuLjQ1OTgxYTBlZDg4MmRhM2M5
OWM0YjJiOGI4YzdhYjVjNzJjNTFkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTU5
OCw3ICsxNTk4LDkgQEAgdm9pZCBEb2N1bWVudDo6c2V0VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRs
ZSkKICAgICAgICAgICAgIG1fdGl0bGVFbGVtZW50ID0gU1ZHVGl0bGVFbGVtZW50OjpjcmVhdGUo
U1ZHTmFtZXM6OnRpdGxlVGFnLCAqdGhpcyk7CiAgICAgICAgICAgICBlbGVtZW50LT5pbnNlcnRC
ZWZvcmUoKm1fdGl0bGVFbGVtZW50LCBlbGVtZW50LT5maXJzdENoaWxkKCkpOwogICAgICAgICB9
Ci0gICAgICAgIG1fdGl0bGVFbGVtZW50LT5zZXRUZXh0Q29udGVudCh0aXRsZSk7CisgICAgICAg
IC8vIEFub3RoZXIgbnVsbCBjaGVjayBzaW5jZSBpbnNlcnRCZWZvcmUgbWF5IGhhdmUgdHJpZ2dl
cmVkIGV2ZW50IHRoYXQgZGVsZXRlcyBtX3RpdGxlRWxlbWVudAorICAgICAgICBpZiAobV90aXRs
ZUVsZW1lbnQpCisgICAgICAgICAgICBtX3RpdGxlRWxlbWVudC0+c2V0VGV4dENvbnRlbnQodGl0
bGUpOwogICAgIH0gZWxzZSBpZiAoaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpKSB7CiAgICAgICAg
IGlmICghbV90aXRsZUVsZW1lbnQpIHsKICAgICAgICAgICAgIGF1dG8qIGhlYWRFbGVtZW50ID0g
aGVhZCgpOwpAQCAtMTYwNyw3ICsxNjA5LDkgQEAgdm9pZCBEb2N1bWVudDo6c2V0VGl0bGUoY29u
c3QgU3RyaW5nJiB0aXRsZSkKICAgICAgICAgICAgIG1fdGl0bGVFbGVtZW50ID0gSFRNTFRpdGxl
RWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6dGl0bGVUYWcsICp0aGlzKTsKICAgICAgICAgICAg
IGhlYWRFbGVtZW50LT5hcHBlbmRDaGlsZCgqbV90aXRsZUVsZW1lbnQpOwogICAgICAgICB9Ci0g
ICAgICAgIG1fdGl0bGVFbGVtZW50LT5zZXRUZXh0Q29udGVudCh0aXRsZSk7CisgICAgICAgIC8v
IEFub3RoZXIgbnVsbCBjaGVjayBzaW5jZSBhcHBlbmRDaGlsZCBtYXkgaGF2ZSB0cmlnZ2VyZWQg
ZXZlbnQgdGhhdCBkZWxldGVzIG1fdGl0bGVFbGVtZW50CisgICAgICAgIGlmIChtX3RpdGxlRWxl
bWVudCkKKyAgICAgICAgICAgIG1fdGl0bGVFbGVtZW50LT5zZXRUZXh0Q29udGVudCh0aXRsZSk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGVmZGE0ZWRjM2I3MWYyMGY2MDVmYjU2ODI4MzJlNDY4ZDEw
YmQzMy4uNGQyMTIxNDdlNGQyNzZjMDY4MWM0MWMyMTQxOGYzOTZmZDIyOGVhNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDE5LTExLTE4ICBTdW5ueSBIZSAgPHN1bm55X2hlQGFwcGxlLmNvbT4K
KworICAgICAgICBOdWxscHRyIGNyYXNoIGluIE5vZGU6OnNldFRleHRDb250ZW50IHZpYSBEb2N1
bWVudDo6c2V0VGl0bGUgaWYgdGl0bGUgZWxlbWVudCBpcyByZW1vdmVkIGJlZm9yZSBzZXRUZXh0
Q29udGVudCBjYWxsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA0MzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC90aXRsZS1wcm9wZXJ0eS1zZXQtd2l0aC1kb20tZXZl
bnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC90aXRs
ZS1wcm9wZXJ0eS1zZXQtd2l0aC1kb20tZXZlbnQuaHRtbDogQWRkZWQuCisKIDIwMTktMTEtMTUg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIGlt
YWdlIGlzIGZsYXNoaW5nIGlmIGZhbGxzIG91dCBhbmQgaGFzIGFuIGFuaW1hdGlvbiB0cmFuc2Zv
cm06IHJvdGF0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvdGl0
bGUtcHJvcGVydHktc2V0LXdpdGgtZG9tLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0RvY3VtZW50L3RpdGxlLXByb3BlcnR5LXNldC13aXRoLWRvbS1ldmVudC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDhjMmIzOTg2NjUyZWY1NDJmY2Y1ZjUyN2FhOGMyNWY3ODRh
MTQ4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3Rp
dGxlLXByb3BlcnR5LXNldC13aXRoLWRvbS1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IFJhbmdlRXJyb3I6IE1heGltdW0gY2FsbCBz
dGFjayBzaXplIGV4Y2VlZGVkLgorVGVzdCB0aGF0IHNldHRpbmcgdGl0bGUgd2hpbGUgdGhlcmUg
aXMgYSByZWdpc3RyZWQgRE9NTm9kZUluc2VydGVkIGV2ZW50IGhhbmRsZXIgd2hpY2ggaW5kaXJl
Y3RseSBkZWxldGVzIHRpdGxlIGRvZXNuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Eb2N1bWVudC90aXRsZS1wcm9wZXJ0eS1zZXQtd2l0aC1kb20tZXZlbnQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3RpdGxlLXByb3BlcnR5LXNldC13aXRo
LWRvbS1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlNjlmYWY4ZTRkYWQ1N2JiZTNjNWNkOWUxZTlj
NzM0MDZjNDIzY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1
bWVudC90aXRsZS1wcm9wZXJ0eS1zZXQtd2l0aC1kb20tZXZlbnQuaHRtbApAQCAtMCwwICsxLDIx
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICB9CisKKyAgICB3aW5kb3cudG9wLmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJ
bnNlcnRlZCIsICgpID0+IHsKKyAgICAgICAgZG9jdW1lbnQuaGVhZC5pbm5lckhUTUwgPSAxMjM7
CisgICAgfSk7CisgICAgZG9jdW1lbnQudGl0bGUgPSAiYWJjIjsKK30KK3Rlc3QoKQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5UZXN0IHRoYXQgc2V0dGluZyB0aXRsZSB3aGls
ZSB0aGVyZSBpcyBhIHJlZ2lzdHJlZCBET01Ob2RlSW5zZXJ0ZWQgZXZlbnQgaGFuZGxlciB3aGlj
aCBpbmRpcmVjdGx5IGRlbGV0ZXMgdGl0bGUgZG9lc24ndCBjcmFzaC4KKyAgICA8L3A+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383904</attachid>
            <date>2019-11-19 14:15:26 -0800</date>
            <delta_ts>2019-11-19 17:27:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204332-20191119141525.patch</filename>
            <type>text/plain</type>
            <size>6047</size>
            <attacher name="Sunny He">sunny_he</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTUxODg2YzhmZThmMDJi
MDBmNWEwNWQ4ZTgxYzViYWU4MDBmMTk5Yi4uMjg3NmQwZDRiMGI1YzIxNGNkM2U2YTAwYmZmYmFl
N2QwZTNlM2FmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTExLTE4ICBTdW5u
eSBIZSAgPHN1bm55X2hlQGFwcGxlLmNvbT4KKworICAgICAgICBOdWxscHRyIGNyYXNoIGluIE5v
ZGU6OnNldFRleHRDb250ZW50IHZpYSBEb2N1bWVudDo6c2V0VGl0bGUgaWYgdGl0bGUgZWxlbWVu
dCBpcyByZW1vdmVkIGJlZm9yZSBzZXRUZXh0Q29udGVudCBjYWxsLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vRG9jdW1lbnQv
dGl0bGUtcHJvcGVydHktc2V0LXdpdGgtZG9tLWV2ZW50Lmh0bWwKKworICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0VGl0bGUpOgorCiAy
MDE5LTExLTE1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xG
Q11bSW52YWxpZGF0aW9uXSBSZXVzZSBGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjptX2xheW91dFN0
YXRlIGZvciBpbmNyZW1lbnRhbCBsYXlvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGZl
MmU2YzU0YjRkYWNkMDllNzgwZDUyOTA4NGMyZTEyOTFmMTM1OWYuLmEyYzk3ZGU4ZjQ3YWU4MGU1
MjE4YzQzN2JmMmE1ZGMwM2M3OTNjNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTU5
OCw3ICsxNTk4LDkgQEAgdm9pZCBEb2N1bWVudDo6c2V0VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRs
ZSkKICAgICAgICAgICAgIG1fdGl0bGVFbGVtZW50ID0gU1ZHVGl0bGVFbGVtZW50OjpjcmVhdGUo
U1ZHTmFtZXM6OnRpdGxlVGFnLCAqdGhpcyk7CiAgICAgICAgICAgICBlbGVtZW50LT5pbnNlcnRC
ZWZvcmUoKm1fdGl0bGVFbGVtZW50LCBlbGVtZW50LT5maXJzdENoaWxkKCkpOwogICAgICAgICB9
Ci0gICAgICAgIG1fdGl0bGVFbGVtZW50LT5zZXRUZXh0Q29udGVudCh0aXRsZSk7CisgICAgICAg
IC8vIGluc2VydEJlZm9yZSBhYm92ZSBtYXkgaGF2ZSByYW4gc2NyaXB0cyB3aGljaCByZW1vdmVk
IG1fdGl0bGVFbGVtZW50CisgICAgICAgIGlmIChtX3RpdGxlRWxlbWVudCkKKyAgICAgICAgICAg
IG1fdGl0bGVFbGVtZW50LT5zZXRUZXh0Q29udGVudCh0aXRsZSk7CiAgICAgfSBlbHNlIGlmIChp
czxIVE1MRWxlbWVudD4oZWxlbWVudCkpIHsKICAgICAgICAgaWYgKCFtX3RpdGxlRWxlbWVudCkg
ewogICAgICAgICAgICAgYXV0byogaGVhZEVsZW1lbnQgPSBoZWFkKCk7CkBAIC0xNjA3LDcgKzE2
MDksOSBAQCB2b2lkIERvY3VtZW50OjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlKQogICAg
ICAgICAgICAgbV90aXRsZUVsZW1lbnQgPSBIVE1MVGl0bGVFbGVtZW50OjpjcmVhdGUoSFRNTE5h
bWVzOjp0aXRsZVRhZywgKnRoaXMpOwogICAgICAgICAgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENo
aWxkKCptX3RpdGxlRWxlbWVudCk7CiAgICAgICAgIH0KLSAgICAgICAgbV90aXRsZUVsZW1lbnQt
PnNldFRleHRDb250ZW50KHRpdGxlKTsKKyAgICAgICAgLy8gYXBwZW5kQ2hpbGQgYWJvdmUgbWF5
IGhhdmUgcmFuIHNjcmlwdHMgd2hpY2ggcmVtb3ZlZCBtX3RpdGxlRWxlbWVudAorICAgICAgICBp
ZiAobV90aXRsZUVsZW1lbnQpCisgICAgICAgICAgICBtX3RpdGxlRWxlbWVudC0+c2V0VGV4dENv
bnRlbnQodGl0bGUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRlZmRhNGVkYzNiNzFmMjBmNjA1ZmI1
NjgyODMyZTQ2OGQxMGJkMzMuLmYxM2VhMjVkYmQ1NzQzMDk3NmFiM2ZjYmE4ODI0OGE2YmIwMDU3
MjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0xMS0xOCAgU3VubnkgSGUgIDxzdW5ueV9o
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgTnVsbHB0ciBjcmFzaCBpbiBOb2RlOjpzZXRUZXh0Q29u
dGVudCB2aWEgRG9jdW1lbnQ6OnNldFRpdGxlIGlmIHRpdGxlIGVsZW1lbnQgaXMgcmVtb3ZlZCBi
ZWZvcmUgc2V0VGV4dENvbnRlbnQgY2FsbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vRG9jdW1lbnQvdGl0bGUtcHJvcGVydHktc2V0
LXdpdGgtZG9tLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
RG9jdW1lbnQvdGl0bGUtcHJvcGVydHktc2V0LXdpdGgtZG9tLWV2ZW50Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL0RvY3VtZW50L3RpdGxlLXByb3BlcnR5LXNldC13aXRoLWRvbS1l
dmVudC1zdmctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRG9jdW1l
bnQvdGl0bGUtcHJvcGVydHktc2V0LXdpdGgtZG9tLWV2ZW50LXN2Zy5odG1sOiBBZGRlZC4KIDIw
MTktMTEtMTUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgVGhlIGltYWdlIGlzIGZsYXNoaW5nIGlmIGZhbGxzIG91dCBhbmQgaGFzIGFuIGFuaW1hdGlv
biB0cmFuc2Zvcm06IHJvdGF0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9j
dW1lbnQvdGl0bGUtcHJvcGVydHktc2V0LXdpdGgtZG9tLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3RpdGxlLXByb3BlcnR5LXNldC13aXRoLWRvbS1l
dmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAzOTcyMzZhMWZjMGNkOWIyMzBhYmVjODc4
OGJjY2MzODg3YTdiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Rv
Y3VtZW50L3RpdGxlLXByb3BlcnR5LXNldC13aXRoLWRvbS1ldmVudC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSBAQAorVGVzdCB0aGF0IHNldHRpbmcgdGl0bGUgd2hpbGUgdGhlcmUgaXMgYSByZWdp
c3RyZWQgRE9NTm9kZUluc2VydGVkIGV2ZW50IGhhbmRsZXIgd2hpY2ggaW5kaXJlY3RseSBkZWxl
dGVzIHRpdGxlIGRvZXNuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9Eb2N1bWVudC90aXRsZS1wcm9wZXJ0eS1zZXQtd2l0aC1kb20tZXZlbnQtc3ZnLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3RpdGxlLXByb3BlcnR5LXNldC13
aXRoLWRvbS1ldmVudC1zdmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1N2YxZmFiMDZkYzc5
MjY2NDQ5YzI1YWM2MjdlMTFiYzJlOTM2ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Eb2N1bWVudC90aXRsZS1wcm9wZXJ0eS1zZXQtd2l0aC1kb20tZXZlbnQtc3Zn
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUZXN0IHRoYXQgc2V0dGluZyB0aXRsZSBvZiBh
IFNWRyBkb2N1bWVudCB3aGlsZSB0aGVyZSBpcyBhIHJlZ2lzdHJlZCBET01Ob2RlSW5zZXJ0ZWQg
ZXZlbnQgaGFuZGxlciB3aGljaCBpbmRpcmVjdGx5IGRlbGV0ZXMgdGl0bGUgZG9lc24ndCBjcmFz
aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3RpdGxlLXByb3Bl
cnR5LXNldC13aXRoLWRvbS1ldmVudC1zdmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Rv
Y3VtZW50L3RpdGxlLXByb3BlcnR5LXNldC13aXRoLWRvbS1ldmVudC1zdmcuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZTMxNGNkMzQ0Y2JmNzViOGE2NTQwNDc1YzNmYzIwODEzNGYyOGIxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvdGl0bGUtcHJvcGVydHktc2V0
LXdpdGgtZG9tLWV2ZW50LXN2Zy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIH0KKyAgICB2
YXIgU1ZHX05BTUVTUEFDRSA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7CisgICAgdmFy
IHN2Z0RvY3VtZW50ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQoU1ZH
X05BTUVTUEFDRSwgInN2ZyIsIG51bGwpOworCisgICAgc3ZnRG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiRE9NTm9kZUluc2VydGVkIiwgKCkgPT4geworICAgICAgICB2YXIgYSA9IHN2Z0RvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoInRpdGxlIikucmVtb3ZlKCk7CisgICAgfSk7CisgICAgc3ZnRG9j
dW1lbnQudGl0bGUgPSAiYWJjIgorfQordGVzdCgpCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDxwPlRlc3QgdGhhdCBzZXR0aW5nIHRpdGxlIG9mIGEgU1ZHIGRvY3VtZW50IHdoaWxl
IHRoZXJlIGlzIGEgcmVnaXN0cmVkIERPTU5vZGVJbnNlcnRlZCBldmVudCBoYW5kbGVyIHdoaWNo
IGluZGlyZWN0bHkgZGVsZXRlcyB0aXRsZSBkb2Vzbid0IGNyYXNoLgorICAgIDwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC90aXRsZS1wcm9wZXJ0eS1zZXQtd2l0aC1kb20tZXZl
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3RpdGxlLXByb3BlcnR5LXNl
dC13aXRoLWRvbS1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5ODUxNDgyNDdkM2RjZWEyNzM0NmQ5
MWJmZTQ5ZmZiYTc2NGNkNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9Eb2N1bWVudC90aXRsZS1wcm9wZXJ0eS1zZXQtd2l0aC1kb20tZXZlbnQuaHRtbApAQCAtMCww
ICsxLDIxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKSB7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICB9CisKKyAgICB3aW5kb3cudG9wLmFkZEV2ZW50TGlzdGVuZXIoIkRP
TU5vZGVJbnNlcnRlZCIsICgpID0+IHsKKyAgICAgICAgZG9jdW1lbnQuaGVhZC5pbm5lckhUTUwg
PSAxMjM7CisgICAgfSwge29uY2UgOiB0cnVlfSk7CisgICAgZG9jdW1lbnQudGl0bGUgPSAiYWJj
IjsKK30KK3Rlc3QoKQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5UZXN0IHRo
YXQgc2V0dGluZyB0aXRsZSB3aGlsZSB0aGVyZSBpcyBhIHJlZ2lzdHJlZCBET01Ob2RlSW5zZXJ0
ZWQgZXZlbnQgaGFuZGxlciB3aGljaCBpbmRpcmVjdGx5IGRlbGV0ZXMgdGl0bGUgZG9lc24ndCBj
cmFzaC4KKyAgICA8L3A+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>