<?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>228541</bug_id>
          
          <creation_ts>2021-07-28 00:47:47 -0700</creation_ts>
          <short_desc>ListAttributeTargetObserver is needlessly created even when there is no list attribute</short_desc>
          <delta_ts>2021-07-31 20:18:37 -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>New Bugs</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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mifenton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1779978</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2021-07-28 00:47:47 -0700</bug_when>
    <thetext>ListAttributeTargetObserver is needlessly created even when there is no list attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779979</commentid>
    <comment_count>1</comment_count>
      <attachid>434410</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2021-07-28 00:51:55 -0700</bug_when>
    <thetext>Created attachment 434410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779980</commentid>
    <comment_count>2</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2021-07-28 00:52:38 -0700</bug_when>
    <thetext>Patch is for EWS only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780095</commentid>
    <comment_count>3</comment_count>
      <attachid>434410</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-07-28 10:20:39 -0700</bug_when>
    <thetext>Comment on attachment 434410
Patch

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

&gt; Source/WebCore/html/HTMLInputElement.cpp:1686
&gt; +    const AtomString&amp; listAttrValue = attributeWithoutSynchronization(listAttr);
&gt; +    if (!listAttrValue.isNull() &amp;&amp; isConnected())

Could put this all inside the if and use auto:

    if (auto&amp; value = attributeWithoutSynchronization(listAttr); !value.isNull() &amp;&amp; isConnected())

But also, if the element is not connected, why fetch the attribute at all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780115</commentid>
    <comment_count>4</comment_count>
      <attachid>434410</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2021-07-28 10:34:51 -0700</bug_when>
    <thetext>Comment on attachment 434410
Patch

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

&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:1686
&gt;&gt; +    if (!listAttrValue.isNull() &amp;&amp; isConnected())
&gt; 
&gt; Could put this all inside the if and use auto:
&gt; 
&gt;     if (auto&amp; value = attributeWithoutSynchronization(listAttr); !value.isNull() &amp;&amp; isConnected())
&gt; 
&gt; But also, if the element is not connected, why fetch the attribute at all?

If that&apos;s the currently more preferred style, I can make those first two changes.

Checkin isConnected seems like it could be faster than an attribute fetch, but I think I&apos;d have to use nested ifs to both avoid the attribute fetch for disconnected elements and avoid double hash lookup when the list attribute is actually present. Worth it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780137</commentid>
    <comment_count>5</comment_count>
      <attachid>434410</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-07-28 11:42:01 -0700</bug_when>
    <thetext>Comment on attachment 434410
Patch

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

&gt;&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:1686
&gt;&gt;&gt; +    if (!listAttrValue.isNull() &amp;&amp; isConnected())
&gt;&gt; 
&gt;&gt; Could put this all inside the if and use auto:
&gt;&gt; 
&gt;&gt;     if (auto&amp; value = attributeWithoutSynchronization(listAttr); !value.isNull() &amp;&amp; isConnected())
&gt;&gt; 
&gt;&gt; But also, if the element is not connected, why fetch the attribute at all?
&gt; 
&gt; If that&apos;s the currently more preferred style, I can make those first two changes.
&gt; 
&gt; Checkin isConnected seems like it could be faster than an attribute fetch, but I think I&apos;d have to use nested ifs to both avoid the attribute fetch for disconnected elements and avoid double hash lookup when the list attribute is actually present. Worth it?

Yes, I think we’re getting good results from scoping things using this new style.

I personally think it would be worth the nested if, but it’s a close call. Not a real performance tradeoff I guess because one more hash table lookup isn’t huge given how rarely this function would be called. Sadly when the attribute itself changes, the attributeWithoutSynchronization(listAttr) call isn’t needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780162</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-07-28 12:42:15 -0700</bug_when>
    <thetext>To be clear on that last point, there are really three callers here, one where the attribute value changed, and two where the connectedness changed. Could save a hash table lookup in the case where the attribute value changed, because the caller already has the attribute value. But not sure that’s worth doing for such a micro-optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780250</commentid>
    <comment_count>7</comment_count>
      <attachid>434410</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-28 16:27:39 -0700</bug_when>
    <thetext>Comment on attachment 434410
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:1686
&gt;&gt;&gt;&gt; +    if (!listAttrValue.isNull() &amp;&amp; isConnected())
&gt;&gt;&gt; 
&gt;&gt;&gt; Could put this all inside the if and use auto:
&gt;&gt;&gt; 
&gt;&gt;&gt;     if (auto&amp; value = attributeWithoutSynchronization(listAttr); !value.isNull() &amp;&amp; isConnected())
&gt;&gt;&gt; 
&gt;&gt;&gt; But also, if the element is not connected, why fetch the attribute at all?
&gt;&gt; 
&gt;&gt; If that&apos;s the currently more preferred style, I can make those first two changes.
&gt;&gt; 
&gt;&gt; Checkin isConnected seems like it could be faster than an attribute fetch, but I think I&apos;d have to use nested ifs to both avoid the attribute fetch for disconnected elements and avoid double hash lookup when the list attribute is actually present. Worth it?
&gt; 
&gt; Yes, I think we’re getting good results from scoping things using this new style.
&gt; 
&gt; I personally think it would be worth the nested if, but it’s a close call. Not a real performance tradeoff I guess because one more hash table lookup isn’t huge given how rarely this function would be called. Sadly when the attribute itself changes, the attributeWithoutSynchronization(listAttr) call isn’t needed.

I think hashtable lookup is not free, so if we can avoid, then we should. :)
In this case, isConnected() is just a bit check, so the following looks better to me.

if (isConnected()) {
    if (const AtomString&amp; listAttrValue = attributeWithoutSynchronization(listAttr); !listAttrValue.isNull())
        m_listAttributeTargetObserver = makeUnique&lt;ListAttributeTargetObserver&gt;(listAttrValue, this);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781100</commentid>
    <comment_count>8</comment_count>
      <attachid>434706</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2021-07-31 14:13:41 -0700</bug_when>
    <thetext>Created attachment 434706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781103</commentid>
    <comment_count>9</comment_count>
      <attachid>434707</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2021-07-31 14:17:13 -0700</bug_when>
    <thetext>Created attachment 434707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781104</commentid>
    <comment_count>10</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2021-07-31 14:19:39 -0700</bug_when>
    <thetext>I made the changes suggested by Darin and Yusuke. I&apos;m not sure it&apos;s more readable to have the declaration inside the if. 

This first version seems harder to follow:

if (isConnected()) {
    if (auto&amp; listAttrValue = attributeWithoutSynchronization(listAttr); !listAttrValue.isNull())
        m_listAttributeTargetObserver = makeUnique&lt;ListAttributeTargetObserver&gt;(listAttrValue, this);
}

This seems easier; one extra line, but it&apos;s easier to see wha the actual if condition is. 

if (isConnected()) {
    auto&amp; listAttrValue = attributeWithoutSynchronization(listAttr);
    if (!listAttrValue.isNull())
        m_listAttributeTargetObserver = makeUnique&lt;ListAttributeTargetObserver&gt;(listAttrValue, this);
}


I&apos;m happy to commit either way though. I posted the first version for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781107</commentid>
    <comment_count>11</comment_count>
      <attachid>434707</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-31 15:13:58 -0700</bug_when>
    <thetext>Comment on attachment 434707
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781108</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-31 15:48:26 -0700</bug_when>
    <thetext>Committed r280521 (240153@main): &lt;https://commits.webkit.org/240153@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434707.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781109</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-31 15:49:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/81370699&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434410</attachid>
            <date>2021-07-28 00:51:55 -0700</date>
            <delta_ts>2021-07-31 14:13:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228541-20210728005154.patch</filename>
            <type>text/plain</type>
            <size>1811</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIzYmM5ZTgwYWM1MzAw
M2E1OTdkODIzZjdiNGVjYjFlMGFlYzY3OC4uNDRiODRmNDM4ZjU2YmE5YjdiYTY0MzA1Y2VmYTEx
MGRmOTc0OGI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA3LTI4ICBNYWNp
ZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgTGlzdEF0dHJpYnV0ZVRh
cmdldE9ic2VydmVyIGlzIG5lZWRsZXNzbHkgY3JlYXRlZCBldmVuIHdoZW4gdGhlcmUgaXMgbm8g
bGlzdCBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyODU0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAg
ICBQb3J0ZWQgZnJvbSBhIENocm9taXVtIGNoYW5nZSBieSBBZGl0aHlhIFNyaW5pdmFzYW4KKwor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50OjpyZXNldExpc3RBdHRyaWJ1dGVUYXJnZXRPYnNlcnZlcik6IGNoZWNr
IGlmIHRoZXJlJ3MgYSBsaXN0IGF0dHJpYnV0ZSBiZWZvcmUgbWFraW5nIGFuIG9ic2VydmVyLgor
CiAyMDIxLTA3LTI3ICBKb29uZ2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLiBSZW1vdmUgdGhlIGJ1aWxkIHdhcm5pbmcgYmVsb3cgc2luY2Ug
cjI4MDMzMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGY1
MmY5MmYwYzAzMGMxYjczZjY3MDIyOWY2YzJiZmY3ZmNiNmVkYjYuLjVmNmY3MDEyMWUwOTQzOWM5
M2U5OGQwMDllYTlmNGZhZWZjMGUyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcApAQCAtMTY4Miw4ICsxNjgyLDkgQEAgUmVmUHRyPEhUTUxEYXRhTGlzdEVsZW1l
bnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmRhdGFMaXN0KCkgY29uc3QKIAogdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjpyZXNldExpc3RBdHRyaWJ1dGVUYXJnZXRPYnNlcnZlcigpCiB7Ci0gICAgaWYgKGlz
Q29ubmVjdGVkKCkpCi0gICAgICAgIG1fbGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVyID0gbWFr
ZVVuaXF1ZTxMaXN0QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXI+KGF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24obGlzdEF0dHIpLCB0aGlzKTsKKyAgICBjb25zdCBBdG9tU3RyaW5nJiBsaXN0
QXR0clZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihsaXN0QXR0cik7Cisg
ICAgaWYgKCFsaXN0QXR0clZhbHVlLmlzTnVsbCgpICYmIGlzQ29ubmVjdGVkKCkpCisgICAgICAg
IG1fbGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVyID0gbWFrZVVuaXF1ZTxMaXN0QXR0cmlidXRl
VGFyZ2V0T2JzZXJ2ZXI+KGxpc3RBdHRyVmFsdWUsIHRoaXMpOwogICAgIGVsc2UKICAgICAgICAg
bV9saXN0QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIgPSBudWxscHRyOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434706</attachid>
            <date>2021-07-31 14:13:41 -0700</date>
            <delta_ts>2021-07-31 14:17:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228541-20210731141340.patch</filename>
            <type>text/plain</type>
            <size>2086</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIzYmM5ZTgwYWM1MzAw
M2E1OTdkODIzZjdiNGVjYjFlMGFlYzY3OC4uNDAyZWFlODdlNDE3OGMyZmMzNjc4NWZjYzU5ZmI0
NDcwNjM1NDhkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA3LTI4ICBNYWNp
ZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgTGlzdEF0dHJpYnV0ZVRh
cmdldE9ic2VydmVyIGlzIG5lZWRsZXNzbHkgY3JlYXRlZCBldmVuIHdoZW4gdGhlcmUgaXMgbm8g
bGlzdCBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyODU0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAg
ICBUaGlzIGlzIHBvc3NpYmx5IGEgc21hbGwgaW1wcm92ZW1lbnQgKH4wLjUlKSBvbiBTcGVlZG9t
ZXRlciBzdWJ0ZXN0cyB0aGF0IGRvIGlubmVySFRNTCwgYnV0IG5vdCBzdGF0aXN0aWNhbGx5IHNp
Z25pZmljYW50LgorCisgICAgICAgIFBvcnRlZCBmcm9tIGEgQ2hyb21pdW0gY2hhbmdlIGJ5IEFk
aXRoeWEgU3Jpbml2YXNhbgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJlc2V0TGlzdEF0dHJpYnV0ZVRh
cmdldE9ic2VydmVyKTogY2hlY2sgaWYgdGhlcmUncyBhIGxpc3QgYXR0cmlidXRlIGJlZm9yZSBt
YWtpbmcgYW4gb2JzZXJ2ZXIuCisKIDIwMjEtMDctMjcgIEpvb25naHVuIFBhcmsgIDxqaDcxOC5w
YXJrQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJlbW92ZSB0aGUgYnVpbGQg
d2FybmluZyBiZWxvdyBzaW5jZSByMjgwMzMyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKaW5kZXggZjUyZjkyZjBjMDMwYzFiNzNmNjcwMjI5ZjZjMmJmZjdmY2I2ZWRi
Ni4uNzcwOGJmMzMyZDZkMjFlYWQ4NmRiOGRhNjQ0YzMxMjllM2YzNWUxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xNjgyLDEwICsxNjgyLDE0IEBAIFJl
ZlB0cjxIVE1MRGF0YUxpc3RFbGVtZW50PiBIVE1MSW5wdXRFbGVtZW50OjpkYXRhTGlzdCgpIGNv
bnN0CiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cmVzZXRMaXN0QXR0cmlidXRlVGFyZ2V0T2Jz
ZXJ2ZXIoKQogewotICAgIGlmIChpc0Nvbm5lY3RlZCgpKQotICAgICAgICBtX2xpc3RBdHRyaWJ1
dGVUYXJnZXRPYnNlcnZlciA9IG1ha2VVbmlxdWU8TGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVy
PihhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGxpc3RBdHRyKSwgdGhpcyk7Ci0gICAg
ZWxzZQotICAgICAgICBtX2xpc3RBdHRyaWJ1dGVUYXJnZXRPYnNlcnZlciA9IG51bGxwdHI7Cisg
ICAgaWYgKGlzQ29ubmVjdGVkKCkpIHsKKyAgICAgICAgaWYgKGF1dG8mIGxpc3RBdHRyVmFsdWUg
PSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGxpc3RBdHRyKTsgbGlzdEF0dHJWYWx1
ZS5pc051bGwoKSkgeworICAgICAgICAgICAgbV9saXN0QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIg
PSBtYWtlVW5pcXVlPExpc3RBdHRyaWJ1dGVUYXJnZXRPYnNlcnZlcj4obGlzdEF0dHJWYWx1ZSwg
dGhpcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2xp
c3RBdHRyaWJ1dGVUYXJnZXRPYnNlcnZlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgSFRNTElucHV0
RWxlbWVudDo6ZGF0YUxpc3RNYXlIYXZlQ2hhbmdlZCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434707</attachid>
            <date>2021-07-31 14:17:13 -0700</date>
            <delta_ts>2021-07-31 20:18:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228541-20210731141712.patch</filename>
            <type>text/plain</type>
            <size>2087</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIzYmM5ZTgwYWM1MzAw
M2E1OTdkODIzZjdiNGVjYjFlMGFlYzY3OC4uNDAyZWFlODdlNDE3OGMyZmMzNjc4NWZjYzU5ZmI0
NDcwNjM1NDhkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA3LTI4ICBNYWNp
ZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgTGlzdEF0dHJpYnV0ZVRh
cmdldE9ic2VydmVyIGlzIG5lZWRsZXNzbHkgY3JlYXRlZCBldmVuIHdoZW4gdGhlcmUgaXMgbm8g
bGlzdCBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyODU0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAg
ICBUaGlzIGlzIHBvc3NpYmx5IGEgc21hbGwgaW1wcm92ZW1lbnQgKH4wLjUlKSBvbiBTcGVlZG9t
ZXRlciBzdWJ0ZXN0cyB0aGF0IGRvIGlubmVySFRNTCwgYnV0IG5vdCBzdGF0aXN0aWNhbGx5IHNp
Z25pZmljYW50LgorCisgICAgICAgIFBvcnRlZCBmcm9tIGEgQ2hyb21pdW0gY2hhbmdlIGJ5IEFk
aXRoeWEgU3Jpbml2YXNhbgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJlc2V0TGlzdEF0dHJpYnV0ZVRh
cmdldE9ic2VydmVyKTogY2hlY2sgaWYgdGhlcmUncyBhIGxpc3QgYXR0cmlidXRlIGJlZm9yZSBt
YWtpbmcgYW4gb2JzZXJ2ZXIuCisKIDIwMjEtMDctMjcgIEpvb25naHVuIFBhcmsgIDxqaDcxOC5w
YXJrQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJlbW92ZSB0aGUgYnVpbGQg
d2FybmluZyBiZWxvdyBzaW5jZSByMjgwMzMyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKaW5kZXggZjUyZjkyZjBjMDMwYzFiNzNmNjcwMjI5ZjZjMmJmZjdmY2I2ZWRi
Ni4uOTMxMmQ5Yjc2YjlmZDJlNmE5YmI5NzdjNzNkY2JmYWI2YTZhMTNjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xNjgyLDEwICsxNjgyLDE0IEBAIFJl
ZlB0cjxIVE1MRGF0YUxpc3RFbGVtZW50PiBIVE1MSW5wdXRFbGVtZW50OjpkYXRhTGlzdCgpIGNv
bnN0CiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cmVzZXRMaXN0QXR0cmlidXRlVGFyZ2V0T2Jz
ZXJ2ZXIoKQogewotICAgIGlmIChpc0Nvbm5lY3RlZCgpKQotICAgICAgICBtX2xpc3RBdHRyaWJ1
dGVUYXJnZXRPYnNlcnZlciA9IG1ha2VVbmlxdWU8TGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVy
PihhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGxpc3RBdHRyKSwgdGhpcyk7Ci0gICAg
ZWxzZQotICAgICAgICBtX2xpc3RBdHRyaWJ1dGVUYXJnZXRPYnNlcnZlciA9IG51bGxwdHI7Cisg
ICAgaWYgKGlzQ29ubmVjdGVkKCkpIHsKKyAgICAgICAgaWYgKGF1dG8mIGxpc3RBdHRyVmFsdWUg
PSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGxpc3RBdHRyKTsgIWxpc3RBdHRyVmFs
dWUuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIG1fbGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVy
ID0gbWFrZVVuaXF1ZTxMaXN0QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXI+KGxpc3RBdHRyVmFsdWUs
IHRoaXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9s
aXN0QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIgPSBudWxscHRyOwogfQogCiB2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OmRhdGFMaXN0TWF5SGF2ZUNoYW5nZWQoKQo=
</data>
<flag name="commit-queue"
          id="457274"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>