<?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>224678</bug_id>
          
          <creation_ts>2021-04-16 10:09:12 -0700</creation_ts>
          <short_desc>Web Inspector: add assertion for `WI.View` re-entrancy</short_desc>
          <delta_ts>2021-05-04 13:36:40 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=224648</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=224650</see_also>
          <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="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1751121</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-04-16 10:09:12 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751123</commentid>
    <comment_count>1</comment_count>
      <attachid>426244</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-04-16 10:09:57 -0700</bug_when>
    <thetext>Created attachment 426244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753694</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-23 13:09:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/77083129&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754269</commentid>
    <comment_count>3</comment_count>
      <attachid>426244</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-04-26 11:11:34 -0700</bug_when>
    <thetext>Comment on attachment 426244
Patch

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

The usage of console.assert to have engineering-only reentrancy checks is clever. However, it&apos;s really hard to read. Could you instead use a helper function /lambda where this particular black magic lives?

It would be even clearer to have a ReentrancyChecker class with enter() and exit().

&gt; Source/WebInspectorUI/ChangeLog:7
&gt; +

Please explain why it&apos;s needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756415</commentid>
    <comment_count>4</comment_count>
      <attachid>427630</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-03 19:21:27 -0700</bug_when>
    <thetext>Created attachment 427630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756580</commentid>
    <comment_count>5</comment_count>
      <attachid>427630</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2021-05-04 10:21:25 -0700</bug_when>
    <thetext>Comment on attachment 427630
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/View.js:297
&gt; +        console.assert(WI.setReentrantCheck(this, &quot;layout&quot;), &quot;ERROR: calling `layout` while already in it&quot;, this);

If an exception happens in layout, we&apos;re probably going to hit this a bunch eh? (We shouldn&apos;t have exceptions in layout, I&apos;m just imagining how this can happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756581</commentid>
    <comment_count>6</comment_count>
      <attachid>427630</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2021-05-04 10:25:28 -0700</bug_when>
    <thetext>Comment on attachment 427630
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1789
&gt; +WI.setReentrantCheck = function(object, key) {

Is this style normally to put opening brace on the following line? I&apos;m fine either way.

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1797
&gt; +    --object[key];

Might read better as the `(object[key] || 0) - 1` in case the key doesn&apos;t exist:

&gt;&gt;&gt; --({}[&apos;x&apos;])
NaN</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756582</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2021-05-04 10:26:39 -0700</bug_when>
    <thetext>Err, should we also remove this FIXME now? Or is there more to do?

    // FIXME: &lt;https://webkit.org/b/224650&gt; (Web Inspector: audit for re-entrancy issues with `initialLayout` and `layout`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756583</commentid>
    <comment_count>8</comment_count>
      <attachid>427630</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-04 10:27:42 -0700</bug_when>
    <thetext>Comment on attachment 427630
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1789
&gt;&gt; +WI.setReentrantCheck = function(object, key) {
&gt; 
&gt; Is this style normally to put opening brace on the following line? I&apos;m fine either way.

oh oops heh old habits 😅

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1797
&gt;&gt; +    --object[key];
&gt; 
&gt; Might read better as the `(object[key] || 0) - 1` in case the key doesn&apos;t exist:

I was assuming that it would never get called without `WI.clearReentrantCheck`, but I think you make a good point.  I&apos;ll change.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/View.js:297
&gt;&gt; +        console.assert(WI.setReentrantCheck(this, &quot;layout&quot;), &quot;ERROR: calling `layout` while already in it&quot;, this);
&gt; 
&gt; If an exception happens in layout, we&apos;re probably going to hit this a bunch eh? (We shouldn&apos;t have exceptions in layout, I&apos;m just imagining how this can happen.

Yeah it&apos;s possible for this to spiral out of control, but like you said if we have an exception I think there&apos;s a bigger issue 😅</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756584</commentid>
    <comment_count>9</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-04 10:29:15 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #7)
&gt; Err, should we also remove this FIXME now? Or is there more to do?
&gt; 
&gt;     // FIXME: &lt;https://webkit.org/b/224650&gt; (Web Inspector: audit for re-entrancy issues with `initialLayout` and `layout`)

That bug is more about looking through the code and making sure other cases aren&apos;t present.  This bug is about trying to make that easier (or at least more noticeable).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756586</commentid>
    <comment_count>10</comment_count>
      <attachid>427683</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-04 10:31:11 -0700</bug_when>
    <thetext>Created attachment 427683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756620</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-04 12:03:58 -0700</bug_when>
    <thetext>Committed r276975 (237304@main): &lt;https://commits.webkit.org/237304@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427683.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426244</attachid>
            <date>2021-04-16 10:09:57 -0700</date>
            <delta_ts>2021-05-03 19:21:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>224678.diff</filename>
            <type>text/plain</type>
            <size>3067</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGFkMTg4MGMwNmRiZC4uNWQ3ZTFiZGM2OTU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wNC0xNiAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWRkIGFzc2VydGlvbiBmb3IgYFdJLlZpZXdgIHJlLWVudHJhbmN5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ2NzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmll
dy5qczoKKyAgICAgICAgKFdJLlZpZXcucHJvdG90eXBlLl9sYXlvdXRTdWJ0cmVlKToKKwogMjAy
MS0wNC0xMyAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBhZGQgc2V0dGluZyB0byBhbGxvdyBpbnNwZWN0aW5nIFdlYiBJbnNwZWN0b3IKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1ZpZXcuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaWV3LmpzCmluZGV4
IGE0ODIxODFlYTczNC4uMTdmMjVmZGIwMGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1ZpZXcuanMKQEAgLTI3NywxMiArMjc3LDE4IEBAIFdJ
LlZpZXcgPSBjbGFzcyBWaWV3IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGxldCBpc0luaXRp
YWxMYXlvdXQgPSAhdGhpcy5fZGlkSW5pdGlhbExheW91dDsKIAogICAgICAgICBpZiAoaXNJbml0
aWFsTGF5b3V0KSB7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fY2hlY2tSZWVu
dHJhbnRfaW5pdGlhbExheW91dCwgIkVSUk9SOiByZS1lbnRlcmluZyBgaW5pdGlhbExheW91dGAi
LCB0aGlzKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRydWUsIHRoaXMuX2NoZWNrUmVl
bnRyYW50X2luaXRpYWxMYXlvdXQgPSB0cnVlKTsgLy8gcmVtb3ZlZCBmcm9tIHByb2R1Y3Rpb24g
YnVpbGRzCiAgICAgICAgICAgICB0aGlzLmluaXRpYWxMYXlvdXQoKTsKICAgICAgICAgICAgIHRo
aXMuX2RpZEluaXRpYWxMYXlvdXQgPSB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRo
aXMuX2xheW91dFJlYXNvbiA9PT0gV0kuVmlldy5MYXlvdXRSZWFzb24uUmVzaXplIHx8IGlzSW5p
dGlhbExheW91dCkKKyAgICAgICAgaWYgKHRoaXMuX2xheW91dFJlYXNvbiA9PT0gV0kuVmlldy5M
YXlvdXRSZWFzb24uUmVzaXplIHx8IGlzSW5pdGlhbExheW91dCkgeworICAgICAgICAgICAgY29u
c29sZS5hc3NlcnQoIXRoaXMuX2NoZWNrUmVlbnRyYW50X3NpemVEaWRDaGFuZ2UsICJFUlJPUjog
cmUtZW50ZXJpbmcgYHNpemVEaWRDaGFuZ2VgIiwgdGhpcyk7CisgICAgICAgICAgICBjb25zb2xl
LmFzc2VydCh0cnVlLCB0aGlzLl9jaGVja1JlZW50cmFudF9zaXplRGlkQ2hhbmdlID0gdHJ1ZSk7
IC8vIHJlbW92ZWQgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcwogICAgICAgICAgICAgdGhpcy5zaXpl
RGlkQ2hhbmdlKCk7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0cnVlLCB0aGlzLl9jaGVj
a1JlZW50cmFudF9zaXplRGlkQ2hhbmdlID0gZmFsc2UpOyAvLyByZW1vdmVkIGZyb20gcHJvZHVj
dGlvbiBidWlsZHMKKyAgICAgICAgfQogCiAgICAgICAgIGxldCBzYXZlZExheW91dFJlYXNvbiA9
IHRoaXMuX2xheW91dFJlYXNvbjsKICAgICAgICAgaWYgKGlzSW5pdGlhbExheW91dCkgewpAQCAt
MjkwLDcgKzI5NiwxMCBAQCBXSS5WaWV3ID0gY2xhc3MgVmlldyBleHRlbmRzIFdJLk9iamVjdAog
ICAgICAgICAgICAgdGhpcy5fc2V0TGF5b3V0UmVhc29uKCk7CiAgICAgICAgIH0KIAorICAgICAg
ICBjb25zb2xlLmFzc2VydCghdGhpcy5fY2hlY2tSZWVudHJhbnRfbGF5b3V0LCAiRVJST1I6IHJl
LWVudGVyaW5nIGBsYXlvdXRgIiwgdGhpcyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRydWUs
IHRoaXMuX2NoZWNrUmVlbnRyYW50X2xheW91dCA9IHRydWUpOyAvLyByZW1vdmVkIGZyb20gcHJv
ZHVjdGlvbiBidWlsZHMKICAgICAgICAgdGhpcy5sYXlvdXQoKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodHJ1ZSwgdGhpcy5fY2hlY2tSZWVudHJhbnRfbGF5b3V0ID0gZmFsc2UpOyAvLyByZW1v
dmVkIGZyb20gcHJvZHVjdGlvbiBidWlsZHMKIAogICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUg
aW5pdGlhbCBsYXlvdXQgb3ZlcnJpZGUgZG9lc24ndCBhZmZlY3RzIHRvIHN1YnZpZXdzLgogICAg
ICAgICB0aGlzLl9sYXlvdXRSZWFzb24gPSBzYXZlZExheW91dFJlYXNvbjsKQEAgLTMwNSw3ICsz
MTQsMTAgQEAgV0kuVmlldyA9IGNsYXNzIFZpZXcgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgICAg
ICB0aGlzLl9sYXlvdXRSZWFzb24gPSBudWxsOwogCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0
aGlzLl9jaGVja1JlZW50cmFudF9kaWRMYXlvdXRTdWJ0cmVlLCAiRVJST1I6IHJlLWVudGVyaW5n
IGBkaWRMYXlvdXRTdWJ0cmVlYCIsIHRoaXMpOworICAgICAgICBjb25zb2xlLmFzc2VydCh0cnVl
LCB0aGlzLl9jaGVja1JlZW50cmFudF9kaWRMYXlvdXRTdWJ0cmVlID0gdHJ1ZSk7IC8vIHJlbW92
ZWQgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcwogICAgICAgICB0aGlzLmRpZExheW91dFN1YnRyZWUo
KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodHJ1ZSwgdGhpcy5fY2hlY2tSZWVudHJhbnRfZGlk
TGF5b3V0U3VidHJlZSA9IGZhbHNlKTsgLy8gcmVtb3ZlZCBmcm9tIHByb2R1Y3Rpb24gYnVpbGRz
CiAgICAgfQogCiAgICAgX3NldExheW91dFJlYXNvbihsYXlvdXRSZWFzb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427630</attachid>
            <date>2021-05-03 19:21:27 -0700</date>
            <delta_ts>2021-05-04 10:31:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224678-20210503202127.patch</filename>
            <type>text/plain</type>
            <size>4635</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDZiNWNjY2Y2YWU5YTdmYzJkMTIwODY5ZWY0YTMx
OWZiZGRiNjU4ZDUuLjhhMjA2NzQ4MjJjYTMzYzM4Y2Y1MGMyNTU3NDNkN2MxMzdlZjAxODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTAzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgYXNzZXJ0aW9uIGZvciBgV0kuVmlld2AgcmUtZW50cmFuY3kKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDY3OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBgY29uc29sZS5hc3NlcnRgICh3aGlj
aCBhcmUgcmVtb3ZlZCBmcm9tIHByb2R1Y3Rpb24gYnVpbGRzKSBhcm91bmQgZWFjaCBjcml0aWNh
bAorICAgICAgICBgV0kuVmlld2Agc3ViY2xhc3MgbWVtYmVyIGZ1bmN0aW9uIHRvIHByZXZlbnQg
cmVlbnRyYW5jeS4KKyAgICAgICAgIC0gYGluaXRpYWxMYXlvdXRgCisgICAgICAgICAtIGBzaXpl
RGlkQ2hhbmdlYAorICAgICAgICAgLSBgbGF5b3V0YAorICAgICAgICAgLSBgZGlkTGF5b3V0U3Vi
dHJlZWAKKyAgICAgICAgVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBgV0kuVmlldy5wcm90b3R5
cGUuX2xheW91dFN1YnRyZWVgIHNldHMgYW55IHJlbGF0ZWQgc3RhdGUgYWZ0ZXIKKyAgICAgICAg
Y2FsbGluZyBhbnkgb2YgdGhlIGFib3ZlIChlLmcuIGBfZGlkSW5pdGlhbExheW91dGAgYWZ0ZXIg
YGluaXRpYWxMYXlvdXRgKSwgbWVhbmluZyB0aGF0IGFueQorICAgICAgICBjaGVja3MgZm9yIHRo
ZSByZWxhdGVkIHN0YXRlICh3aGljaCBzb21ldGltZXMgY29udHJvbCB3aGV0aGVyIHRoZSBmdW5j
dGlvbiBpcyBjYWxsZWQsIHN1Y2gKKyAgICAgICAgYXMgaW4gdGhlIGNhc2Ugb2YgYGluaXRpYWxM
YXlvdXRgKSB3b3VsZCB0aGluayB0aGF0IHRoZSBmdW5jdGlvbiBoYWRuJ3QgYmVlbiBjYWxsZWQg
eWV0LiBTZWUKKyAgICAgICAgcjI3NjE3MCBmb3IgYW4gZXhhbXBsZSBvZiBob3cgdGhpcyBjYW4g
aGFwcGVuIGFuZCB0aGUgcG90ZW50aWFsIHByb2JsZW1zIGl0IGNhbiBjYXVzZS4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlldy5qczoKKyAgICAgICAgKFdJLlZpZXcucHJvdG90
eXBlLl9sYXlvdXRTdWJ0cmVlKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9VdGls
aXRpZXMuanM6CisgICAgICAgIChXSS5zZXRSZWVudHJhbnRDaGVjayk6IEFkZGVkLgorICAgICAg
ICAoV0kuY2xlYXJSZWVudHJhbnRDaGVjayk6IEFkZGVkLgorCiAyMDIxLTA0LTI4ICBSYXp2YW4g
Q2FsaW1hbiAgPHJjYWxpbWFuQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
U1MgR3JpZCAtIG1lYXN1cmUgdXNhZ2Ugb2YgZ3JpZCBvdmVybGF5IG9wdGlvbnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMK
aW5kZXggMWI1NmVmM2NjZjkwYWM3ZTJjMGEyNDQ3OTczNTk4MzZkYmZmNjYxMy4uOTM1OGNmZTI3
MjM2ZjYwMGFhODM0M2ViMTE2ZjIzMjJmOWZjYzNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKQEAgLTE3ODUsMyAr
MTc4NSwxNSBAQCBmdW5jdGlvbiBpbnNlcnRPYmplY3RJbnRvU29ydGVkQXJyYXkob2JqZWN0LCBh
cnJheSwgY29tcGFyYXRvcikKIHsKICAgICBhcnJheS5zcGxpY2UoaW5zZXJ0aW9uSW5kZXhGb3JP
YmplY3RJbkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKG9iamVjdCwgYXJyYXksIGNvbXBhcmF0b3IpLCAw
LCBvYmplY3QpOwogfQorCitXSS5zZXRSZWVudHJhbnRDaGVjayA9IGZ1bmN0aW9uKG9iamVjdCwg
a2V5KSB7CisgICAga2V5ID0gIl9fY2hlY2tSZWVudHJhbnRfIiArIGtleTsKKyAgICBvYmplY3Rb
a2V5XSA9IChvYmplY3Rba2V5XSB8fCAwKSArIDE7CisgICAgcmV0dXJuIG9iamVjdFtrZXldID09
PSAxOworfTsKKworV0kuY2xlYXJSZWVudHJhbnRDaGVjayA9IGZ1bmN0aW9uKG9iamVjdCwga2V5
KSB7CisgICAga2V5ID0gIl9fY2hlY2tSZWVudHJhbnRfIiArIGtleTsKKyAgICAtLW9iamVjdFtr
ZXldOworICAgIHJldHVybiBvYmplY3Rba2V5XSA9PT0gMDsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaWV3LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlldy5qcwppbmRleCBhNDgyMTgxZWE3
MzQwM2JmNDg3YjFiMTBmNmFkNTFmMDY0OTczZTJiLi5iNmQwZGE0YmQ1ZjIwZTYwNDkxMzEzYzI4
Yzc1YjEzMWZkMGU2ZGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9WaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1ZpZXcuanMKQEAgLTI3NywxMiArMjc3LDE2IEBAIFdJLlZpZXcgPSBjbGFz
cyBWaWV3IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGxldCBpc0luaXRpYWxMYXlvdXQgPSAh
dGhpcy5fZGlkSW5pdGlhbExheW91dDsKIAogICAgICAgICBpZiAoaXNJbml0aWFsTGF5b3V0KSB7
CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChXSS5zZXRSZWVudHJhbnRDaGVjayh0aGlzLCAi
aW5pdGlhbExheW91dCIpLCAiRVJST1I6IGNhbGxpbmcgYGluaXRpYWxMYXlvdXRgIHdoaWxlIGFs
cmVhZHkgaW4gaXQiLCB0aGlzKTsKICAgICAgICAgICAgIHRoaXMuaW5pdGlhbExheW91dCgpOwog
ICAgICAgICAgICAgdGhpcy5fZGlkSW5pdGlhbExheW91dCA9IHRydWU7CiAgICAgICAgIH0KIAot
ICAgICAgICBpZiAodGhpcy5fbGF5b3V0UmVhc29uID09PSBXSS5WaWV3LkxheW91dFJlYXNvbi5S
ZXNpemUgfHwgaXNJbml0aWFsTGF5b3V0KQorICAgICAgICBpZiAodGhpcy5fbGF5b3V0UmVhc29u
ID09PSBXSS5WaWV3LkxheW91dFJlYXNvbi5SZXNpemUgfHwgaXNJbml0aWFsTGF5b3V0KSB7Cisg
ICAgICAgICAgICBjb25zb2xlLmFzc2VydChXSS5zZXRSZWVudHJhbnRDaGVjayh0aGlzLCAic2l6
ZURpZENoYW5nZSIpLCAiRVJST1I6IGNhbGxpbmcgYHNpemVEaWRDaGFuZ2VgIHdoaWxlIGFscmVh
ZHkgaW4gaXQiLCB0aGlzKTsKICAgICAgICAgICAgIHRoaXMuc2l6ZURpZENoYW5nZSgpOworICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQoV0kuY2xlYXJSZWVudHJhbnRDaGVjayh0aGlzLCAic2l6
ZURpZENoYW5nZSIpLCAiRVJST1I6IG1pc3NpbmcgcmV0dXJuIGZyb20gYHNpemVEaWRDaGFuZ2Vg
IiwgdGhpcyk7CisgICAgICAgIH0KIAogICAgICAgICBsZXQgc2F2ZWRMYXlvdXRSZWFzb24gPSB0
aGlzLl9sYXlvdXRSZWFzb247CiAgICAgICAgIGlmIChpc0luaXRpYWxMYXlvdXQpIHsKQEAgLTI5
MCw3ICsyOTQsOSBAQCBXSS5WaWV3ID0gY2xhc3MgVmlldyBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICAgICAgdGhpcy5fc2V0TGF5b3V0UmVhc29uKCk7CiAgICAgICAgIH0KIAorICAgICAgICBj
b25zb2xlLmFzc2VydChXSS5zZXRSZWVudHJhbnRDaGVjayh0aGlzLCAibGF5b3V0IiksICJFUlJP
UjogY2FsbGluZyBgbGF5b3V0YCB3aGlsZSBhbHJlYWR5IGluIGl0IiwgdGhpcyk7CiAgICAgICAg
IHRoaXMubGF5b3V0KCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KFdJLmNsZWFyUmVlbnRyYW50
Q2hlY2sodGhpcywgImxheW91dCIpLCAiRVJST1I6IG1pc3NpbmcgcmV0dXJuIGZyb20gYGxheW91
dGAiLCB0aGlzKTsKIAogICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgaW5pdGlhbCBsYXlvdXQg
b3ZlcnJpZGUgZG9lc24ndCBhZmZlY3RzIHRvIHN1YnZpZXdzLgogICAgICAgICB0aGlzLl9sYXlv
dXRSZWFzb24gPSBzYXZlZExheW91dFJlYXNvbjsKQEAgLTMwNSw3ICszMTEsOSBAQCBXSS5WaWV3
ID0gY2xhc3MgVmlldyBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgICAgIHRoaXMuX2xheW91dFJl
YXNvbiA9IG51bGw7CiAKKyAgICAgICAgY29uc29sZS5hc3NlcnQoV0kuc2V0UmVlbnRyYW50Q2hl
Y2sodGhpcywgImRpZExheW91dFN1YnRyZWUiKSwgIkVSUk9SOiBjYWxsaW5nIGBkaWRMYXlvdXRT
dWJ0cmVlYCB3aGlsZSBhbHJlYWR5IGluIGl0IiwgdGhpcyk7CiAgICAgICAgIHRoaXMuZGlkTGF5
b3V0U3VidHJlZSgpOworICAgICAgICBjb25zb2xlLmFzc2VydChXSS5jbGVhclJlZW50cmFudENo
ZWNrKHRoaXMsICJkaWRMYXlvdXRTdWJ0cmVlIiksICJFUlJPUjogbWlzc2luZyByZXR1cm4gZnJv
bSBgZGlkTGF5b3V0U3VidHJlZWAiLCB0aGlzKTsKICAgICB9CiAKICAgICBfc2V0TGF5b3V0UmVh
c29uKGxheW91dFJlYXNvbikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427683</attachid>
            <date>2021-05-04 10:31:11 -0700</date>
            <delta_ts>2021-05-04 13:36:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224678-20210504113110.patch</filename>
            <type>text/plain</type>
            <size>4661</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDZiNWNjY2Y2YWU5YTdmYzJkMTIwODY5ZWY0YTMx
OWZiZGRiNjU4ZDUuLjQ0MTM3ZmVlMTU4MjVjMGE4M2YzNWEyZTEyYjE0M2M2NDg5NzUyMGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTA0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgYXNzZXJ0aW9uIGZvciBgV0kuVmlld2AgcmUtZW50cmFuY3kKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDY3OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICBBZGQgYGNvbnNvbGUuYXNzZXJ0YCAod2hp
Y2ggYXJlIHJlbW92ZWQgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcykgYXJvdW5kIGVhY2ggY3JpdGlj
YWwKKyAgICAgICAgYFdJLlZpZXdgIHN1YmNsYXNzIG1lbWJlciBmdW5jdGlvbiB0byBwcmV2ZW50
IHJlZW50cmFuY3kuCisgICAgICAgICAtIGBpbml0aWFsTGF5b3V0YAorICAgICAgICAgLSBgc2l6
ZURpZENoYW5nZWAKKyAgICAgICAgIC0gYGxheW91dGAKKyAgICAgICAgIC0gYGRpZExheW91dFN1
YnRyZWVgCisgICAgICAgIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgYFdJLlZpZXcucHJvdG90
eXBlLl9sYXlvdXRTdWJ0cmVlYCBzZXRzIGFueSByZWxhdGVkIHN0YXRlIGFmdGVyCisgICAgICAg
IGNhbGxpbmcgYW55IG9mIHRoZSBhYm92ZSAoZS5nLiBgX2RpZEluaXRpYWxMYXlvdXRgIGFmdGVy
IGBpbml0aWFsTGF5b3V0YCksIG1lYW5pbmcgdGhhdCBhbnkKKyAgICAgICAgY2hlY2tzIGZvciB0
aGUgcmVsYXRlZCBzdGF0ZSAod2hpY2ggc29tZXRpbWVzIGNvbnRyb2wgd2hldGhlciB0aGUgZnVu
Y3Rpb24gaXMgY2FsbGVkLCBzdWNoCisgICAgICAgIGFzIGluIHRoZSBjYXNlIG9mIGBpbml0aWFs
TGF5b3V0YCkgd291bGQgdGhpbmsgdGhhdCB0aGUgZnVuY3Rpb24gaGFkbid0IGJlZW4gY2FsbGVk
IHlldC4gU2VlCisgICAgICAgIHIyNzYxNzAgZm9yIGFuIGV4YW1wbGUgb2YgaG93IHRoaXMgY2Fu
IGhhcHBlbiBhbmQgdGhlIHBvdGVudGlhbCBwcm9ibGVtcyBpdCBjYW4gY2F1c2UuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1ZpZXcuanM6CisgICAgICAgIChXSS5WaWV3LnByb3Rv
dHlwZS5fbGF5b3V0U3VidHJlZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvVXRp
bGl0aWVzLmpzOgorICAgICAgICAoV0kuc2V0UmVlbnRyYW50Q2hlY2spOiBBZGRlZC4KKyAgICAg
ICAgKFdJLmNsZWFyUmVlbnRyYW50Q2hlY2spOiBBZGRlZC4KKwogMjAyMS0wNC0yOCAgUmF6dmFu
IENhbGltYW4gIDxyY2FsaW1hbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
Q1NTIEdyaWQgLSBtZWFzdXJlIHVzYWdlIG9mIGdyaWQgb3ZlcmxheSBvcHRpb25zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpz
CmluZGV4IDFiNTZlZjNjY2Y5MGFjN2UyYzBhMjQ0Nzk3MzU5ODM2ZGJmZjY2MTMuLjJkOTE5NjA1
ZmYyM2IzMjBkOWRiNDk3MjdiZTIxMTQ4NzFmNmZjN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCkBAIC0xNzg1LDMg
KzE3ODUsMTcgQEAgZnVuY3Rpb24gaW5zZXJ0T2JqZWN0SW50b1NvcnRlZEFycmF5KG9iamVjdCwg
YXJyYXksIGNvbXBhcmF0b3IpCiB7CiAgICAgYXJyYXkuc3BsaWNlKGluc2VydGlvbkluZGV4Rm9y
T2JqZWN0SW5MaXN0U29ydGVkQnlGdW5jdGlvbihvYmplY3QsIGFycmF5LCBjb21wYXJhdG9yKSwg
MCwgb2JqZWN0KTsKIH0KKworV0kuc2V0UmVlbnRyYW50Q2hlY2sgPSBmdW5jdGlvbihvYmplY3Qs
IGtleSkKK3sKKyAgICBrZXkgPSAiX19jaGVja1JlZW50cmFudF8iICsga2V5OworICAgIG9iamVj
dFtrZXldID0gKG9iamVjdFtrZXldIHx8IDApICsgMTsKKyAgICByZXR1cm4gb2JqZWN0W2tleV0g
PT09IDE7Cit9OworCitXSS5jbGVhclJlZW50cmFudENoZWNrID0gZnVuY3Rpb24ob2JqZWN0LCBr
ZXkpCit7CisgICAga2V5ID0gIl9fY2hlY2tSZWVudHJhbnRfIiArIGtleTsKKyAgICBvYmplY3Rb
a2V5XSA9IChvYmplY3Rba2V5XSB8fCAwKSAtIDE7CisgICAgcmV0dXJuIG9iamVjdFtrZXldID09
PSAwOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1ZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaWV3LmpzCmluZGV4IGE0ODIxODFlYTczNDAzYmY0ODdiMWIxMGY2YWQ1MWYwNjQ5NzNlMmIu
LmI2ZDBkYTRiZDVmMjBlNjA0OTEzMTNjMjhjNzViMTMxZmQwZTZkYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1ZpZXcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlldy5qcwpAQCAtMjc3LDEy
ICsyNzcsMTYgQEAgV0kuVmlldyA9IGNsYXNzIFZpZXcgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAg
ICAgbGV0IGlzSW5pdGlhbExheW91dCA9ICF0aGlzLl9kaWRJbml0aWFsTGF5b3V0OwogCiAgICAg
ICAgIGlmIChpc0luaXRpYWxMYXlvdXQpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KFdJ
LnNldFJlZW50cmFudENoZWNrKHRoaXMsICJpbml0aWFsTGF5b3V0IiksICJFUlJPUjogY2FsbGlu
ZyBgaW5pdGlhbExheW91dGAgd2hpbGUgYWxyZWFkeSBpbiBpdCIsIHRoaXMpOwogICAgICAgICAg
ICAgdGhpcy5pbml0aWFsTGF5b3V0KCk7CiAgICAgICAgICAgICB0aGlzLl9kaWRJbml0aWFsTGF5
b3V0ID0gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICh0aGlzLl9sYXlvdXRSZWFzb24g
PT09IFdJLlZpZXcuTGF5b3V0UmVhc29uLlJlc2l6ZSB8fCBpc0luaXRpYWxMYXlvdXQpCisgICAg
ICAgIGlmICh0aGlzLl9sYXlvdXRSZWFzb24gPT09IFdJLlZpZXcuTGF5b3V0UmVhc29uLlJlc2l6
ZSB8fCBpc0luaXRpYWxMYXlvdXQpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KFdJLnNl
dFJlZW50cmFudENoZWNrKHRoaXMsICJzaXplRGlkQ2hhbmdlIiksICJFUlJPUjogY2FsbGluZyBg
c2l6ZURpZENoYW5nZWAgd2hpbGUgYWxyZWFkeSBpbiBpdCIsIHRoaXMpOwogICAgICAgICAgICAg
dGhpcy5zaXplRGlkQ2hhbmdlKCk7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChXSS5jbGVh
clJlZW50cmFudENoZWNrKHRoaXMsICJzaXplRGlkQ2hhbmdlIiksICJFUlJPUjogbWlzc2luZyBy
ZXR1cm4gZnJvbSBgc2l6ZURpZENoYW5nZWAiLCB0aGlzKTsKKyAgICAgICAgfQogCiAgICAgICAg
IGxldCBzYXZlZExheW91dFJlYXNvbiA9IHRoaXMuX2xheW91dFJlYXNvbjsKICAgICAgICAgaWYg
KGlzSW5pdGlhbExheW91dCkgewpAQCAtMjkwLDcgKzI5NCw5IEBAIFdJLlZpZXcgPSBjbGFzcyBW
aWV3IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICB0aGlzLl9zZXRMYXlvdXRSZWFzb24o
KTsKICAgICAgICAgfQogCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KFdJLnNldFJlZW50cmFudENo
ZWNrKHRoaXMsICJsYXlvdXQiKSwgIkVSUk9SOiBjYWxsaW5nIGBsYXlvdXRgIHdoaWxlIGFscmVh
ZHkgaW4gaXQiLCB0aGlzKTsKICAgICAgICAgdGhpcy5sYXlvdXQoKTsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoV0kuY2xlYXJSZWVudHJhbnRDaGVjayh0aGlzLCAibGF5b3V0IiksICJFUlJPUjog
bWlzc2luZyByZXR1cm4gZnJvbSBgbGF5b3V0YCIsIHRoaXMpOwogCiAgICAgICAgIC8vIEVuc3Vy
ZSB0aGF0IHRoZSBpbml0aWFsIGxheW91dCBvdmVycmlkZSBkb2Vzbid0IGFmZmVjdHMgdG8gc3Vi
dmlld3MuCiAgICAgICAgIHRoaXMuX2xheW91dFJlYXNvbiA9IHNhdmVkTGF5b3V0UmVhc29uOwpA
QCAtMzA1LDcgKzMxMSw5IEBAIFdJLlZpZXcgPSBjbGFzcyBWaWV3IGV4dGVuZHMgV0kuT2JqZWN0
CiAKICAgICAgICAgdGhpcy5fbGF5b3V0UmVhc29uID0gbnVsbDsKIAorICAgICAgICBjb25zb2xl
LmFzc2VydChXSS5zZXRSZWVudHJhbnRDaGVjayh0aGlzLCAiZGlkTGF5b3V0U3VidHJlZSIpLCAi
RVJST1I6IGNhbGxpbmcgYGRpZExheW91dFN1YnRyZWVgIHdoaWxlIGFscmVhZHkgaW4gaXQiLCB0
aGlzKTsKICAgICAgICAgdGhpcy5kaWRMYXlvdXRTdWJ0cmVlKCk7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KFdJLmNsZWFyUmVlbnRyYW50Q2hlY2sodGhpcywgImRpZExheW91dFN1YnRyZWUiKSwg
IkVSUk9SOiBtaXNzaW5nIHJldHVybiBmcm9tIGBkaWRMYXlvdXRTdWJ0cmVlYCIsIHRoaXMpOwog
ICAgIH0KIAogICAgIF9zZXRMYXlvdXRSZWFzb24obGF5b3V0UmVhc29uKQo=
</data>
<flag name="commit-queue"
          id="448386"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>