<?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>237235</bug_id>
          
          <creation_ts>2022-02-26 03:38:04 -0800</creation_ts>
          <short_desc>Optimize StyleSharingResolver inert check</short_desc>
          <delta_ts>2022-02-27 07:46:41 -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>CSS</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="Tim Nguyen (:ntim)">ntim</reporter>
          <assigned_to name="Tim Nguyen (:ntim)">ntim</assigned_to>
          <cc>darin</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1846292</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-02-26 03:38:04 -0800</bug_when>
    <thetext>readonly &amp; inert are boolean attributes, the only thing that matters is the presence of the attribute, not its value. E.g. `readonly=false` behaves the same as `readonly=readonly` or `readonly=true`.

This saves getting and comparing values for those attributes, and also allows `readonly=readonly` and `readonly=true` or `readonly=false` to start using style sharing.

Same applies for inert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846293</commentid>
    <comment_count>1</comment_count>
      <attachid>453291</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-02-26 03:40:39 -0800</bug_when>
    <thetext>Created attachment 453291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846294</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-26 03:43:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/89510628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846303</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-02-26 08:13:19 -0800</bug_when>
    <thetext>Looks like we can&apos;t do this for readonly because of the special isCommonAttributeSelectorAttribute optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846331</commentid>
    <comment_count>4</comment_count>
      <attachid>453291</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-26 13:22:44 -0800</bug_when>
    <thetext>Comment on attachment 453291
Patch

Code change looks great. Need to update tests to reflect a progression, I think? I will set review+ once there’s a patch that includes the needed changes to tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846332</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-26 13:23:09 -0800</bug_when>
    <thetext>(In reply to Tim Nguyen (:ntim) from comment #3)
&gt; Looks like we can&apos;t do this for readonly because of the special
&gt; isCommonAttributeSelectorAttribute optimization.

Oh really? That seems unfortunate. Maybe we can fix that optimization too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846382</commentid>
    <comment_count>6</comment_count>
      <attachid>453327</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-02-27 00:08:18 -0800</bug_when>
    <thetext>Created attachment 453327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846383</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-02-27 00:13:03 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; (In reply to Tim Nguyen (:ntim) from comment #3)
&gt; &gt; Looks like we can&apos;t do this for readonly because of the special
&gt; &gt; isCommonAttributeSelectorAttribute optimization.
&gt; 
&gt; Oh really? That seems unfortunate. Maybe we can fix that optimization too?

The readonly/type attributes are there for different reasons than the inert attribute.

E.g. if we removed readonly/type from `isCommonAttributeSelectorAttribute`, then they wouldn&apos;t need this style sharing check.

The inert attribute is there because StyleAdjuster applies different styling based on the inert attribute&apos;s presence, and we don&apos;t want to wrongly share that styling.

I got it wrong the first time :( I added some comments in the code to avoid this confusion.

(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 453291 [details]
&gt; Patch
&gt; 
&gt; Code change looks great. Need to update tests to reflect a progression, I
&gt; think? I will set review+ once there’s a patch that includes the needed
&gt; changes to tests.

The failures were actually a regression in readonly&apos;s style sharing, the tests actually had different styling for [readonly=foo] and [readonly] and we rendered them the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846402</commentid>
    <comment_count>8</comment_count>
      <attachid>453327</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-27 03:12:12 -0800</bug_when>
    <thetext>Comment on attachment 453327
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        `inert=inert` and `inert=true` or `inert=false` to start sharing style.

This seems testable, can we add a test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846416</commentid>
    <comment_count>9</comment_count>
      <attachid>453327</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-02-27 03:58:27 -0800</bug_when>
    <thetext>Comment on attachment 453327
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:13
&gt;&gt; +        `inert=inert` and `inert=true` or `inert=false` to start sharing style.
&gt; 
&gt; This seems testable, can we add a test?

style sharing is an optimization, so behavior before/after this patch should be the same, just with different speeds.

I could add tests to make sure the optimization does not break anything though. I&apos;ll copy the ones readonly have, and add some inert specific ones too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846420</commentid>
    <comment_count>10</comment_count>
      <attachid>453335</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-02-27 06:08:15 -0800</bug_when>
    <thetext>Created attachment 453335
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846422</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-27 06:12:18 -0800</bug_when>
    <thetext>Committed r290559 (247837@main): &lt;https://commits.webkit.org/247837@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453335.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846429</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-27 07:46:41 -0800</bug_when>
    <thetext>(In reply to Tim Nguyen (:ntim) from comment #9)
&gt; style sharing is an optimization, so behavior before/after this patch should
&gt; be the same, just with different speeds.

Important optimizations can be tested too, with tests designed to have dramatically different performance without the optimization. These are valuable and can be important, almost as important as correctness tests, even though they can be more difficult to create.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453291</attachid>
            <date>2022-02-26 03:40:39 -0800</date>
            <delta_ts>2022-02-27 00:08:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237235-20220226124038.patch</filename>
            <type>text/plain</type>
            <size>2555</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI5ZTg0NDk1MWUyY2Zh
MDVkNDlhZmVmZDJjNWQyYjM4YTJiZDM4OS4uNWQ1ODFmNjI1Nzg3OTFhN2E5OGM0MGZhMmFmMjUw
MTI4MGZlNTdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAyLTI2ICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW1pemUgU3R5bGVTaGFyaW5n
UmVzb2x2ZXIgcmVhZG9ubHkgYW5kIGluZXJ0IGNoZWNrcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmVhZG9ubHkgJiBpbmVydCBhcmUgYm9vbGVhbiBh
dHRyaWJ1dGVzLCB0aGUgb25seSB0aGluZyB0aGF0IG1hdHRlcnMgaXMgdGhlIHByZXNlbmNlIG9m
IHRoZSBhdHRyaWJ1dGUsIG5vdCBpdHMgdmFsdWUuIEUuZy4gYHJlYWRvbmx5PWZhbHNlYCBiZWhh
dmVzIHRoZSBzYW1lIGFzIGByZWFkb25seT1yZWFkb25seWAgb3IgYHJlYWRvbmx5PXRydWVgLgor
CisgICAgICAgIFRoaXMgc2F2ZXMgZ2V0dGluZyBhbmQgY29tcGFyaW5nIHZhbHVlcyBmb3IgdGhv
c2UgYXR0cmlidXRlcywgYW5kIGFsc28gYWxsb3dzIGByZWFkb25seT1yZWFkb25seWAgYW5kIGBy
ZWFkb25seT10cnVlYCBvciBgcmVhZG9ubHk9ZmFsc2VgIHRvIHN0YXJ0IHNoYXJpbmcgc3R5bGUu
CisKKyAgICAgICAgU2FtZSBhcHBsaWVzIGZvciBpbmVydC4KKworICAgICAgICAqIHN0eWxlL1N0
eWxlU2hhcmluZ1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTaGFyaW5n
UmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCBjb25zdCk6CisKIDIwMjItMDItMjMg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm5pemUgLyBz
aW1wbGlmeSBTY3JvbGxpbmdTdGF0ZVRyZWUgYSBiaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAppbmRleCBjOGVkODQxYmNlZDllNWQ3MTRhZWZjZDQ4
ZTE0MWI1OGQ3ZjE2NTcwLi44NWQ1ZTBjMTBhMDYwYzdlODY3ZWJkMWEwNGU3ZmM2NzgwYmNjZTgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCkBA
IC0yODEsOSArMjgxLDkgQEAgYm9vbCBTaGFyaW5nUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRo
RWxlbWVudChjb25zdCBDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQuZWxlbWVudERhdGEoKSAhPSBlbGVt
ZW50LmVsZW1lbnREYXRhKCkpIHsKLSAgICAgICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQuYXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnJlYWRvbmx5QXR0cikgIT0gZWxl
bWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6cmVhZG9ubHlB
dHRyKSkKKyAgICAgICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQuaGFzQXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnJlYWRvbmx5QXR0cikgIT0gZWxlbWVudC5oYXNBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6cmVhZG9ubHlBdHRyKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKG1fZG9jdW1lbnQuc2V0dGluZ3Mo
KS5pbmVydEF0dHJpYnV0ZUVuYWJsZWQoKSAmJiBjYW5kaWRhdGVFbGVtZW50LmF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjppbmVydEF0dHIpICE9IGVsZW1lbnQuYXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmluZXJ0QXR0cikpCisgICAg
ICAgIGlmIChtX2RvY3VtZW50LnNldHRpbmdzKCkuaW5lcnRBdHRyaWJ1dGVFbmFibGVkKCkgJiYg
Y2FuZGlkYXRlRWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxO
YW1lczo6aW5lcnRBdHRyKSAhPSBlbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oSFRNTE5hbWVzOjppbmVydEF0dHIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICBpZiAoY2FuZGlkYXRlRWxlbWVudC5pc1NWR0VsZW1lbnQoKSkgewogICAgICAgICAg
ICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6dHlwZUF0dHIp
ICE9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6dHlwZUF0dHIpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453327</attachid>
            <date>2022-02-27 00:08:18 -0800</date>
            <delta_ts>2022-02-27 03:12:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237235-20220227090816.patch</filename>
            <type>text/plain</type>
            <size>2967</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU5OWIwMzI3Njk4ZWEz
ZjliZTBkZTkxYTk1ZmY2ODIxNmY4YTk3NC4uNDgxNmZmZGQzZTUzNDNhMGY2M2RhMDk2ODQyMGYw
MzZkNjg3ODU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTAyLTI2ICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW1pemUgU3R5bGVTaGFyaW5n
UmVzb2x2ZXIgaW5lcnQgY2hlY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzcyMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBpbmVydCBpcyBhbiBib29sZWFuIGF0dHJpYnV0ZSwgdGhlIG9ubHkgdGhp
bmcgdGhhdCBtYXR0ZXJzIGZvciB0aGUgU3R5bGVBZGp1c3RlcgorICAgICAgICBpbmVydG5lc3Mg
YWRqdXN0bWVudCBpcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIGF0dHJpYnV0ZSwgbm90IGl0cyB2YWx1
ZS4gRS5nLgorICAgICAgICBgaW5lcnQ9ZmFsc2VgIGlzIHRoZSBzYW1lIGFzIGBpbmVydD1pbmVy
dGAgb3IgYGluZXJ0PXRydWVgLgorCisgICAgICAgIFRoaXMgc2F2ZXMgZ2V0dGluZyBhbmQgY29t
cGFyaW5nIHZhbHVlcyBmb3IgdGhvc2UgYXR0cmlidXRlcywgYW5kIGFsc28gYWxsb3dzCisgICAg
ICAgIGBpbmVydD1pbmVydGAgYW5kIGBpbmVydD10cnVlYCBvciBgaW5lcnQ9ZmFsc2VgIHRvIHN0
YXJ0IHNoYXJpbmcgc3R5bGUuCisKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFy
ZVN0eWxlV2l0aEVsZW1lbnQgY29uc3QpOgorCiAyMDIyLTAyLTI2ICBUaW0gTmd1eWVuICA8bnRp
bUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIE5vZGU6OmRlcHJlY2F0ZWRJc0luZXJ0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKaW5kZXggYzhl
ZDg0MWJjZWQ5ZTVkNzE0YWVmY2Q0OGUxNDFiNThkN2YxNjU3MC4uMGEyZTRhZDE1MWEyOWE4M2Ri
OWJiMTdlMzUyYTY0NjdkZTdlZGYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
U2hhcmluZ1Jlc29sdmVyLmNwcApAQCAtMjgxLDEwICsyODEsOSBAQCBib29sIFNoYXJpbmdSZXNv
bHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KGNvbnN0IENvbnRleHQmIGNvbnRleHQsIGNv
bnN0IFN0eQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoY2FuZGlkYXRlRWxlbWVu
dC5lbGVtZW50RGF0YSgpICE9IGVsZW1lbnQuZWxlbWVudERhdGEoKSkgeworICAgICAgICAvLyBB
dHRyaWJ1dGVzIHRoYXQgYXJlIG9wdGltaXplZCBhcyAiY29tbW9uIGF0dHJpYnV0ZSBzZWxlY3Rv
cnMiLgogICAgICAgICBpZiAoY2FuZGlkYXRlRWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKEhUTUxOYW1lczo6cmVhZG9ubHlBdHRyKSAhPSBlbGVtZW50LmF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpyZWFkb25seUF0dHIpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAobV9kb2N1bWVudC5zZXR0aW5ncygpLmluZXJ0
QXR0cmlidXRlRW5hYmxlZCgpICYmIGNhbmRpZGF0ZUVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmluZXJ0QXR0cikgIT0gZWxlbWVudC5hdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6aW5lcnRBdHRyKSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQuaXNTVkdFbGVtZW50
KCkpIHsKICAgICAgICAgICAgIGlmIChjYW5kaWRhdGVFbGVtZW50LmdldEF0dHJpYnV0ZShIVE1M
TmFtZXM6OnR5cGVBdHRyKSAhPSBlbGVtZW50LmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnR5cGVB
dHRyKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yOTIsNiArMjkxLDEwIEBA
IGJvb2wgU2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoY29uc3QgQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgU3R5CiAgICAgICAgICAgICBpZiAoY2FuZGlkYXRlRWxlbWVu
dC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6dHlwZUF0dHIpICE9
IGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnR5cGVB
dHRyKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KKworICAgICAg
ICAvLyBFbGVtZW50cyB0aGF0IG1heSBnZXQgU3R5bGVBZGp1c3RlcidzIGluZXJ0IGF0dHJpYnV0
ZSBhZGp1c3RtZW50LgorICAgICAgICBpZiAobV9kb2N1bWVudC5zZXR0aW5ncygpLmluZXJ0QXR0
cmlidXRlRW5hYmxlZCgpICYmIGNhbmRpZGF0ZUVsZW1lbnQuaGFzQXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmluZXJ0QXR0cikgIT0gZWxlbWVudC5oYXNBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6aW5lcnRBdHRyKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBpZiAoY2FuZGlkYXRlRWxlbWVudC5tYXRj
aGVzVmFsaWRQc2V1ZG9DbGFzcygpICE9IGVsZW1lbnQubWF0Y2hlc1ZhbGlkUHNldWRvQ2xhc3Mo
KSkK
</data>
<flag name="review"
          id="480652"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453335</attachid>
            <date>2022-02-27 06:08:15 -0800</date>
            <delta_ts>2022-02-27 06:12:19 -0800</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-237235-20220227150814.patch</filename>
            <type>text/plain</type>
            <size>5032</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU5OWIwMzI3Njk4ZWEz
ZjliZTBkZTkxYTk1ZmY2ODIxNmY4YTk3NC4uZGY3ODgyNjI2NWYzNTExZGY0ZjA1OGUwYzIyNDBl
OGI5NjA5YzA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTAyLTI2ICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW1pemUgU3R5bGVTaGFyaW5n
UmVzb2x2ZXIgaW5lcnQgY2hlY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzcyMzUKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0
LgorCisgICAgICAgIGluZXJ0IGlzIGFuIGJvb2xlYW4gYXR0cmlidXRlLCB0aGUgb25seSB0aGlu
ZyB0aGF0IG1hdHRlcnMgZm9yIHRoZSBTdHlsZUFkanVzdGVyCisgICAgICAgIGluZXJ0bmVzcyBh
ZGp1c3RtZW50IGlzIHRoZSBwcmVzZW5jZSBvZiB0aGUgYXR0cmlidXRlLCBub3QgaXRzIHZhbHVl
LiBFLmcuCisgICAgICAgIGBpbmVydD1mYWxzZWAgaXMgdGhlIHNhbWUgYXMgYGluZXJ0PWluZXJ0
YCBvciBgaW5lcnQ9dHJ1ZWAuCisKKyAgICAgICAgVGhpcyBzYXZlcyBnZXR0aW5nIGFuZCBjb21w
YXJpbmcgdmFsdWVzIGZvciB0aG9zZSBhdHRyaWJ1dGVzLCBhbmQgYWxzbyBhbGxvd3MKKyAgICAg
ICAgYGluZXJ0PWluZXJ0YCBhbmQgYGluZXJ0PXRydWVgIG9yIGBpbmVydD1mYWxzZWAgdG8gc3Rh
cnQgc2hhcmluZyBzdHlsZS4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTaGFyaW5nUmVzb2x2ZXI6OmNhblNoYXJl
U3R5bGVXaXRoRWxlbWVudCBjb25zdCk6CisKIDIwMjItMDItMjYgIFRpbSBOZ3V5ZW4gIDxudGlt
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgTm9kZTo6ZGVwcmVjYXRlZElzSW5lcnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAppbmRleCBjOGVk
ODQxYmNlZDllNWQ3MTRhZWZjZDQ4ZTE0MWI1OGQ3ZjE2NTcwLi4wYTJlNGFkMTUxYTI5YTgzZGI5
YmIxN2UzNTJhNjQ2N2RlN2VkZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
aGFyaW5nUmVzb2x2ZXIuY3BwCkBAIC0yODEsMTAgKzI4MSw5IEBAIGJvb2wgU2hhcmluZ1Jlc29s
dmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoY29uc3QgQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3R5CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChjYW5kaWRhdGVFbGVtZW50
LmVsZW1lbnREYXRhKCkgIT0gZWxlbWVudC5lbGVtZW50RGF0YSgpKSB7CisgICAgICAgIC8vIEF0
dHJpYnV0ZXMgdGhhdCBhcmUgb3B0aW1pemVkIGFzICJjb21tb24gYXR0cmlidXRlIHNlbGVjdG9y
cyIuCiAgICAgICAgIGlmIChjYW5kaWRhdGVFbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oSFRNTE5hbWVzOjpyZWFkb25seUF0dHIpICE9IGVsZW1lbnQuYXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnJlYWRvbmx5QXR0cikpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChtX2RvY3VtZW50LnNldHRpbmdzKCkuaW5lcnRB
dHRyaWJ1dGVFbmFibGVkKCkgJiYgY2FuZGlkYXRlRWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKEhUTUxOYW1lczo6aW5lcnRBdHRyKSAhPSBlbGVtZW50LmF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjppbmVydEF0dHIpKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoY2FuZGlkYXRlRWxlbWVudC5pc1NWR0VsZW1lbnQo
KSkgewogICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6dHlwZUF0dHIpICE9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6dHlwZUF0
dHIpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI5Miw2ICsyOTEsMTAgQEAg
Ym9vbCBTaGFyaW5nUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudChjb25zdCBDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBTdHkKICAgICAgICAgICAgIGlmIChjYW5kaWRhdGVFbGVtZW50
LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp0eXBlQXR0cikgIT0g
ZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6dHlwZUF0
dHIpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQorCisgICAgICAg
IC8vIEVsZW1lbnRzIHRoYXQgbWF5IGdldCBTdHlsZUFkanVzdGVyJ3MgaW5lcnQgYXR0cmlidXRl
IGFkanVzdG1lbnQuCisgICAgICAgIGlmIChtX2RvY3VtZW50LnNldHRpbmdzKCkuaW5lcnRBdHRy
aWJ1dGVFbmFibGVkKCkgJiYgY2FuZGlkYXRlRWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKEhUTUxOYW1lczo6aW5lcnRBdHRyKSAhPSBlbGVtZW50Lmhhc0F0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjppbmVydEF0dHIpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGlmIChjYW5kaWRhdGVFbGVtZW50Lm1hdGNo
ZXNWYWxpZFBzZXVkb0NsYXNzKCkgIT0gZWxlbWVudC5tYXRjaGVzVmFsaWRQc2V1ZG9DbGFzcygp
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDBiY2Y1ZjczMTFmOGY0YjdjY2IyOTBjMzlmZDgzMTI0ZTMyNzJiMmUuLjViYTA5
ZjAyNTFmNDk4YjE2MjIyMjEzMzdiZWM5ZmVmMzZhMGUwZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAyMi0wMi0yNyAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIE9w
dGltaXplIFN0eWxlU2hhcmluZ1Jlc29sdmVyIGluZXJ0IGNoZWNrcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBBZGQgc21hbGwgdGVzdCB0aGF0IHN0eWxl
IHNoYXJpbmcgaXMgbm90IHdyb25nbHkgYXBwbGllZC4KKworICAgICAgICAqIGZhc3QvY3NzL2lu
ZXJ0LXN0eWxlLXNoYXJpbmctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MvaW5lcnQtc3R5bGUtc2hhcmluZy5odG1sOiBBZGRlZC4KKwogMjAyMi0wMi0yNyAgVGltIE5n
dXllbiAgPG50aW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJlLWltcG9ydCBpbmVydCBhbmQgPGRp
YWxvZz4gV1BUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmVydC1zdHlsZS1z
aGFyaW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmVydC1zdHlsZS1z
aGFyaW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODgyMjNiZDc0Y2E1ZmQ1YjRkZGEzNGFm
NDU1ZjYxN2ZhOTA1NDgxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2luZXJ0LXN0eWxlLXNoYXJpbmctZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGRpdj5ub2RlPC9kaXY+Cis8ZGl2PmluZXJ0IG5vZGU8L2Rpdj4KKzxkaXY+
aW5lcnQgbm9kZTwvZGl2PgorPGRpdj5pbmVydCBub2RlPC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNr
Z3JvdW5kOiBibHVlIj5pbmVydCBub2RlPC9kaXY+CisKKzxkaXYgaWQ9InJlc3VsdCI+bm9kZTwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW5lcnQtc3R5bGUtc2hhcmlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW5lcnQtc3R5bGUtc2hhcmluZy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ2ZjgyNzNlNTZlYjIzMDFmODdjYjMxOGU2NDA1NmZmNDI5NDdjOWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmVydC1zdHlsZS1zaGFyaW5nLmh0
bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgSW5lcnRBdHRyaWJ1dGVFbmFibGVkPXRydWUgXSAtLT4KKzxkaXY+bm9kZTwvZGl2Pgor
PGRpdiBpbmVydD5pbmVydCBub2RlPC9kaXY+Cis8ZGl2IGluZXJ0PmluZXJ0IG5vZGU8L2Rpdj4K
KzxkaXYgaW5lcnQ+aW5lcnQgbm9kZTwvZGl2PgorPGRpdiBpbmVydD0iZm9vIj5pbmVydCBub2Rl
PC9kaXY+CisKKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CisKKzxzdHlsZT4KK2RpdltpbmVydD0i
Zm9vIl0geworICAgIGJhY2tncm91bmQ6IGJsdWU7Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0Pgor
Ly8gVGVzdCB0aGF0IGluZXJ0bmVzcyBpcyBwcm9wZXJseSBhcHBsaWVkLCBieSBjaGVja2luZyBv
bmx5IHRoZSBub24taW5lcnQgbm9kZSBpcyBzZWxlY3RlZAorZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J1NlbGVjdEFsbCcpOworcmVzdWx0LnRleHRDb250ZW50ID0gd2luZG93LmdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCkudHJpbSgpOword2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdl
cygpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>