<?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>209760</bug_id>
          
          <creation_ts>2020-03-30 13:06:48 -0700</creation_ts>
          <short_desc>Web Inspector: the Dock Side navigation item is automatically focused when Web Inspector is opened detached, preventing any global spacebar shortcuts from working</short_desc>
          <delta_ts>2020-03-30 20:33:16 -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 Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Devin Rousso">hi</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1635663</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-30 13:06:48 -0700</bug_when>
    <thetext># STEPS TO REPRODUCE:
1. inspect any page
2. detach/undock Web Inspector
3. go to the Timelines Tab
4. close Web Inspector
5. open Web Inspector
6. press space
 =&gt; expect a timeline recording to start, but instead the Dock Side button is &quot;clicked&quot; causing Web Inspector to dock to the side</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635745</commentid>
    <comment_count>1</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-30 14:45:03 -0700</bug_when>
    <thetext>There&apos;s something specific about undocked mode that makes it focus on the first focusable DOM element. I don&apos;t quite understand it yet.

On Safari shipped with macOS Catalina it focuses on the global search field. It was the first focusable DOM element at the time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635777</commentid>
    <comment_count>2</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-30 15:20:44 -0700</bug_when>
    <thetext>I attempted to duct tape the issue.

I appended the following to WI.updateDockedState:

    if (side === WI.DockConfiguration.Undocked) {
        console.info(document.activeElement); // activeElement is the dock to right button
        document.activeElement?.blur();
        console.info(document.activeElement); // activeElement is document.body
    }

To my surprise, this didn&apos;t even work!

    if (side === WI.DockConfiguration.Undocked) {
        console.info(document.activeElement);
        document.activeElement?.blur();
        console.info(document.activeElement);

        setTimeout(() =&gt; {
            console.log(document.activeElement); // activeElement is the dock to right button, again!
        }, 500)
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635829</commentid>
    <comment_count>3</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-30 16:38:35 -0700</bug_when>
    <thetext>If this&apos;s a regression than it broke over a year ago.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635854</commentid>
    <comment_count>4</comment_count>
      <attachid>394986</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-30 16:52:55 -0700</bug_when>
    <thetext>Created attachment 394986
Patch

This is the least ugliest fix I could come up with.

---

I&apos;ve tried restoring focus in WI.TabBar.prototype.didLayoutSubtree. That fixed the problem described in the bug, but it didn&apos;t fix this:

1. Inspect any page
2. Dock Web Inspector
3. Go to the Timelines Tab
4. Undock Web Inspector (by pressing Command-Shift-D, for example)

My current patch does fix it.

---

I tried restoring focus on requestAnimationFrame. It didn&apos;t work.

I&apos;ve tried restoring focus after a timeout. It introduced flickering. Also, it was even uglier than my current patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635874</commentid>
    <comment_count>5</comment_count>
      <attachid>394986</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-30 17:34:53 -0700</bug_when>
    <thetext>Comment on attachment 394986
Patch

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

r=me, with some comments

It may also be worth noting that on the first open (which is where I noticed this), in tabs where we restore the focus from the previous session if able (e.g. the previously selected node in the Elements Tab, the previously selected resource in the Source Tab, etc.), the focus shifted away from the first focusable item very quickly, although you could usually see the flash of a focus ring.  Furthermore, in every tab except the Timelines Tab and the Audit Tab, we default to focusing the console prompt (r252213), so this bug only appeared to fully manifest (focus stays with the first visible element) on those tabs.

With that having been said, however, this bug did always show when switching docking configurations after Web Inspector is already open.

Amazing that this hasn&apos;t been noticed till now (o.0)

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:905
&gt; +    if (side === WI.DockConfiguration.Undocked) {

Do we know if this is macOS-only behavior?  We should probably only do this if `WI.Platform.name === &quot;mac&quot;`.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:906
&gt; +        // When undocking, the second focusable element steals focus. Undo this.

This doesn&apos;t sound right.  I would imagine that it&apos;s the first visible focusable element.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:907
&gt; +        // &lt;http://webkit.org/b/209760&gt;

Including a link to this bug is unnecessary, as you can just blame this line to get that info.  Please remove.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:909
&gt; +            if (WI.tabBar.element.contains(event.target)) {

Why are we checking to see if it&apos;s in the `WI.tabBar`?  If we know it steals focus, we shouldn&apos;t need to check where it moves the focus.

```
    document.body.addEventListener(&quot;focusin&quot;, (event) =&gt; {
        if (WI.previousFocusElement)
            WI.previousFocusElement.focus();
        else
            event.target.blur();
    });
```

Also, this code implies that the focus change happens _after_ `WI.updateDockedState` is called.  Is that guaranteed, or could we somehow &quot;miss&quot; the focus event because we added the event listener too late?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635894</commentid>
    <comment_count>6</comment_count>
      <attachid>394986</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-30 18:17:16 -0700</bug_when>
    <thetext>Comment on attachment 394986
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:905
&gt;&gt; +    if (side === WI.DockConfiguration.Undocked) {
&gt; 
&gt; Do we know if this is macOS-only behavior?  We should probably only do this if `WI.Platform.name === &quot;mac&quot;`.

I don&apos;t. Frankly, I don&apos;t test on WebKitGTK.

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:906
&gt;&gt; +        // When undocking, the second focusable element steals focus. Undo this.
&gt; 
&gt; This doesn&apos;t sound right.  I would imagine that it&apos;s the first visible focusable element.

Whoops, you&apos;re right. The keyword is *visible*. (When I stare into something for 3 hours straight I make mistakes like this.)

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:909
&gt;&gt; +            if (WI.tabBar.element.contains(event.target)) {
&gt; 
&gt; Why are we checking to see if it&apos;s in the `WI.tabBar`?  If we know it steals focus, we shouldn&apos;t need to check where it moves the focus.
&gt; 
&gt; ```
&gt;     document.body.addEventListener(&quot;focusin&quot;, (event) =&gt; {
&gt;         if (WI.previousFocusElement)
&gt;             WI.previousFocusElement.focus();
&gt;         else
&gt;             event.target.blur();
&gt;     });
&gt; ```
&gt; 
&gt; Also, this code implies that the focus change happens _after_ `WI.updateDockedState` is called.  Is that guaranteed, or could we somehow &quot;miss&quot; the focus event because we added the event listener too late?

If some change in WebKit happens to fix this bug, this code would oddly move the focus to the previously focused element. The idea was mitigate that by checking if it&apos;s in the `WI.tabBar`.

I observed focus changes _only_ after `WI.updateDockedState` is called. Furthermore, I couldn&apos;t pinpoint the exact code that triggered the focus change, so I couldn&apos;t add a callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635898</commentid>
    <comment_count>7</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-30 18:31:52 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #5)
&gt; 
&gt; Amazing that this hasn&apos;t been noticed till now (o.0)

When it was focusing on the search field it didn&apos;t stand out as it does now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635899</commentid>
    <comment_count>8</comment_count>
      <attachid>394999</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-30 18:33:14 -0700</bug_when>
    <thetext>Created attachment 394999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635900</commentid>
    <comment_count>9</comment_count>
      <attachid>394999</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-30 18:34:06 -0700</bug_when>
    <thetext>Comment on attachment 394999
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:909
&gt; +            let firstFocusableElement = document.querySelector(&quot;[tabIndex=&apos;0&apos;]:not(.hidden)&quot;);
&gt; +            if (firstFocusableElement === event.target) {

How about this? I think this is more future-proof.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635902</commentid>
    <comment_count>10</comment_count>
      <attachid>395000</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-30 18:38:54 -0700</bug_when>
    <thetext>Created attachment 395000
Patch

Fixed typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635909</commentid>
    <comment_count>11</comment_count>
      <attachid>394999</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-30 18:54:57 -0700</bug_when>
    <thetext>Comment on attachment 394999
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:908
&gt; +            let firstFocusableElement = document.querySelector(&quot;[tabIndex=&apos;0&apos;]:not(.hidden)&quot;);

I realize that CSS selectors aren&apos;t case sensitive, but we should try to keep CSS/DOM things alike.  As such, this should be `tabindex` (lowercase).

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:909
&gt;&gt; +            if (firstFocusableElement === event.target) {
&gt; 
&gt; How about this? I think this is more future-proof.

Yeah, that sounds reasonable.

This would break if we ever added a non-0 `tabindex`, however.  What if instead of listening for `&quot;focusin&quot;`, we set a global flag when updating the docking configuration that calls `preventDefault()` on the next `&quot;focus&quot;` event?  From what you&apos;ve seen, it will come after `WI.updateDockedState` is called, so maybe we can just do that instead of having to worry about whether or not the newly-incorretly-focused node is the node we expect?

Ideally, it&apos;d be great to understand why this is happening at all, and perhaps figure out a fix for it in the backed (e.g. set some preference on the webview/window used by Web Inspector).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635920</commentid>
    <comment_count>12</comment_count>
      <attachid>395007</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-30 19:45:56 -0700</bug_when>
    <thetext>Created attachment 395007
Patch

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

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:909
&gt;&gt;&gt; +            if (firstFocusableElement === event.target) {
&gt;&gt; 
&gt;&gt; How about this? I think this is more future-proof.
&gt; 
&gt; Yeah, that sounds reasonable.
&gt; 
&gt; This would break if we ever added a non-0 `tabindex`, however.  What if instead of listening for `&quot;focusin&quot;`, we set a global flag when updating the docking configuration that calls `preventDefault()` on the next `&quot;focus&quot;` event?  From what you&apos;ve seen, it will come after `WI.updateDockedState` is called, so maybe we can just do that instead of having to worry about whether or not the newly-incorretly-focused node is the node we expect?
&gt; 
&gt; Ideally, it&apos;d be great to understand why this is happening at all, and perhaps figure out a fix for it in the backed (e.g. set some preference on the webview/window used by Web Inspector).

Focus event isn&apos;t preventable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635930</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-30 20:32:12 -0700</bug_when>
    <thetext>Committed r259277: &lt;https://trac.webkit.org/changeset/259277&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395007.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635931</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-30 20:33:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/61087781&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394986</attachid>
            <date>2020-03-30 16:52:55 -0700</date>
            <delta_ts>2020-03-30 18:33:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>1922</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGJiMTkxYzRlODhlLi5hMmIyNjIzZTgyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDMtMzAgIE5pa2l0
YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogdGhlIERvY2sgU2lkZSBuYXZpZ2F0aW9uIGl0ZW0gaXMgYXV0b21hdGljYWxseSBmb2N1c2Vk
IHdoZW4gV2ViIEluc3BlY3RvciBpcyBvcGVuZWQgZGV0YWNoZWQsIHByZXZlbnRpbmcgYW55IGds
b2JhbCBzcGFjZWJhciBzaG9ydGN1dHMgZnJvbSB3b3JraW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHVuZG9ja2luZywgV2ViIEluc3BlY3Rv
ciBmb2N1c2VzIG9uIHRoZSAybmQgZm9jdXNhYmxlIGVsZW1lbnQuIEkgZG9uJ3Qga25vdyB3aHku
CisgICAgICAgIFRoaXMgcGF0Y2ggcmVzdG9yZXMgdGhlIGZvY3VzIHRvIHRoZSBwcmV2aW91c2x5
IGZvY3VzZWQgZWxlbWVudC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpz
OgorCiAyMDIwLTAzLTI2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBhZGQga2V5Ym9hcmQgc2hvcnRjdXQgdG8gdG9vbHRpcCBvZiBw
aW5uZWQgdGFicwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFz
ZS9NYWluLmpzCmluZGV4IGY4NmUwM2IyMzM1Li4xMmZmZTdjZmE4MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtOTAxLDYgKzkw
MSwxOSBAQCBXSS51cGRhdGVEb2NrZWRTdGF0ZSA9IGZ1bmN0aW9uKHNpZGUpCiAKICAgICBpZiAo
IVdJLmRvY2tlZENvbmZpZ3VyYXRpb25TdXBwb3J0c1NwbGl0Q29udGVudEJyb3dzZXIoKSAmJiAh
V0kuZG9lc0N1cnJlbnRUYWJTdXBwb3J0U3BsaXRDb250ZW50QnJvd3NlcigpKQogICAgICAgICBX
SS5oaWRlU3BsaXRDb25zb2xlKCk7CisKKyAgICBpZiAoc2lkZSA9PT0gV0kuRG9ja0NvbmZpZ3Vy
YXRpb24uVW5kb2NrZWQpIHsKKyAgICAgICAgLy8gV2hlbiB1bmRvY2tpbmcsIHRoZSBzZWNvbmQg
Zm9jdXNhYmxlIGVsZW1lbnQgc3RlYWxzIGZvY3VzLiBVbmRvIHRoaXMuCisgICAgICAgIC8vIDxo
dHRwOi8vd2Via2l0Lm9yZy9iLzIwOTc2MD4KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVu
dExpc3RlbmVyKCJmb2N1c2luIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChX
SS50YWJCYXIuZWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKFdJLnByZXZpb3VzRm9jdXNFbGVtZW50KQorICAgICAgICAgICAgICAgICAgICBXSS5w
cmV2aW91c0ZvY3VzRWxlbWVudC5mb2N1cygpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmJsdXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSwge29uY2U6IHRydWUsIGNhcHR1cmU6IHRydWV9KTsKKyAgICB9CiB9OwogCiBXSS5yZXNp
emVEb2NrZWRGcmFtZU1vdXNlRG93biA9IGZ1bmN0aW9uKGV2ZW50KQo=
</data>
<flag name="review"
          id="410408"
          type_id="1"
          status="+"
          setter="hi"
    />
    <flag name="commit-queue"
          id="410409"
          type_id="3"
          status="-"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394999</attachid>
            <date>2020-03-30 18:33:14 -0700</date>
            <delta_ts>2020-03-30 18:38:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2018</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGJiMTkxYzRlODhlLi5lNTU5OTYzOWFhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDMtMzAgIE5pa2l0
YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogdGhlIERvY2sgU2lkZSBuYXZpZ2F0aW9uIGl0ZW0gaXMgYXV0b21hdGljYWxseSBmb2N1c2Vk
IHdoZW4gV2ViIEluc3BlY3RvciBpcyBvcGVuZWQgZGV0YWNoZWQsIHByZXZlbnRpbmcgYW55IGds
b2JhbCBzcGFjZWJhciBzaG9ydGN1dHMgZnJvbSB3b3JraW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgV2hlbiB1bmRvY2tpbmcsIFdlYiBJbnNwZWN0b3Ig
Zm9jdXNlcyBvbiB0aGUgMW5kIHZpc2libGUgZm9jdXNhYmxlIGVsZW1lbnQuIEkgZG9uJ3Qga25v
dyB3aHkuCisgICAgICAgIFRoaXMgcGF0Y2ggcmVzdG9yZXMgdGhlIGZvY3VzIHRvIHRoZSBwcmV2
aW91c2x5IGZvY3VzZWQgZWxlbWVudC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9N
YWluLmpzOgorCiAyMDIwLTAzLTI2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQga2V5Ym9hcmQgc2hvcnRjdXQgdG8gdG9vbHRp
cCBvZiBwaW5uZWQgdGFicwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQmFzZS9NYWluLmpzCmluZGV4IGY4NmUwM2IyMzM1Li5mNzFhNjQ0ZGIyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtOTAx
LDYgKzkwMSwxOSBAQCBXSS51cGRhdGVEb2NrZWRTdGF0ZSA9IGZ1bmN0aW9uKHNpZGUpCiAKICAg
ICBpZiAoIVdJLmRvY2tlZENvbmZpZ3VyYXRpb25TdXBwb3J0c1NwbGl0Q29udGVudEJyb3dzZXIo
KSAmJiAhV0kuZG9lc0N1cnJlbnRUYWJTdXBwb3J0U3BsaXRDb250ZW50QnJvd3NlcigpKQogICAg
ICAgICBXSS5oaWRlU3BsaXRDb25zb2xlKCk7CisKKyAgICBpZiAoc2lkZSA9PT0gV0kuRG9ja0Nv
bmZpZ3VyYXRpb24uVW5kb2NrZWQgJiYgV0kuUGxhdGZvcm0ubmFtZSA9PT0gIm1hYyIpIHsKKyAg
ICAgICAgLy8gV2hlbiB1bmRvY2tpbmcsIHRoZSBmaXJzdCB2aXNpYmxlIGZvY3VzYWJsZSBlbGVt
ZW50IHN0ZWFscyBmb2N1cy4gVW5kbyB0aGlzLgorICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2
ZW50TGlzdGVuZXIoImZvY3VzaW4iLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgbGV0
IGZpcnN0Rm9jdXNhYmxlRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIlt0YWJJbmRl
eD0nMCddOm5vdCguaGlkZGVuKSIpOworICAgICAgICAgICAgaWYgKGZpcnN0Rm9jdXNhYmxlRWxl
bWVudCA9PT0gZXZlbnQudGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgaWYgKFdJLnByZXZpb3Vz
Rm9jdXNFbGVtZW50KQorICAgICAgICAgICAgICAgICAgICBXSS5wcmV2aW91c0ZvY3VzRWxlbWVu
dC5mb2N1cygpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZXZl
bnQudGFyZ2V0LmJsdXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwge29uY2U6IHRydWUs
IGNhcHR1cmU6IHRydWV9KTsKKyAgICB9CiB9OwogCiBXSS5yZXNpemVEb2NrZWRGcmFtZU1vdXNl
RG93biA9IGZ1bmN0aW9uKGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395000</attachid>
            <date>2020-03-30 18:38:54 -0700</date>
            <delta_ts>2020-03-30 19:45:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2020</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGJiMTkxYzRlODhlLi5jN2IwMzNmMGY4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDMtMzAgIE5pa2l0
YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogdGhlIERvY2sgU2lkZSBuYXZpZ2F0aW9uIGl0ZW0gaXMgYXV0b21hdGljYWxseSBmb2N1c2Vk
IHdoZW4gV2ViIEluc3BlY3RvciBpcyBvcGVuZWQgZGV0YWNoZWQsIHByZXZlbnRpbmcgYW55IGds
b2JhbCBzcGFjZWJhciBzaG9ydGN1dHMgZnJvbSB3b3JraW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgV2hlbiB1bmRvY2tpbmcsIFdlYiBJbnNwZWN0b3Ig
Zm9jdXNlcyBvbiB0aGUgZmlyc3QgdmlzaWJsZSBmb2N1c2FibGUgZWxlbWVudC4gSSBkb24ndCBr
bm93IHdoeS4KKyAgICAgICAgVGhpcyBwYXRjaCByZXN0b3JlcyB0aGUgZm9jdXMgdG8gdGhlIHBy
ZXZpb3VzbHkgZm9jdXNlZCBlbGVtZW50LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNl
L01haW4uanM6CisKIDIwMjAtMDMtMjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBrZXlib2FyZCBzaG9ydGN1dCB0byB0b29s
dGlwIG9mIHBpbm5lZCB0YWJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanMKaW5kZXggZjg2ZTAzYjIzMzUuLmY3MWE2NDRkYjJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC05
MDEsNiArOTAxLDE5IEBAIFdJLnVwZGF0ZURvY2tlZFN0YXRlID0gZnVuY3Rpb24oc2lkZSkKIAog
ICAgIGlmICghV0kuZG9ja2VkQ29uZmlndXJhdGlvblN1cHBvcnRzU3BsaXRDb250ZW50QnJvd3Nl
cigpICYmICFXSS5kb2VzQ3VycmVudFRhYlN1cHBvcnRTcGxpdENvbnRlbnRCcm93c2VyKCkpCiAg
ICAgICAgIFdJLmhpZGVTcGxpdENvbnNvbGUoKTsKKworICAgIGlmIChzaWRlID09PSBXSS5Eb2Nr
Q29uZmlndXJhdGlvbi5VbmRvY2tlZCAmJiBXSS5QbGF0Zm9ybS5uYW1lID09PSAibWFjIikgewor
ICAgICAgICAvLyBXaGVuIHVuZG9ja2luZywgdGhlIGZpcnN0IHZpc2libGUgZm9jdXNhYmxlIGVs
ZW1lbnQgc3RlYWxzIGZvY3VzLiBVbmRvIHRoaXMuCisgICAgICAgIGRvY3VtZW50LmJvZHkuYWRk
RXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBs
ZXQgZmlyc3RGb2N1c2FibGVFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiW3RhYklu
ZGV4PScwJ106bm90KC5oaWRkZW4pIik7CisgICAgICAgICAgICBpZiAoZmlyc3RGb2N1c2FibGVF
bGVtZW50ID09PSBldmVudC50YXJnZXQpIHsKKyAgICAgICAgICAgICAgICBpZiAoV0kucHJldmlv
dXNGb2N1c0VsZW1lbnQpCisgICAgICAgICAgICAgICAgICAgIFdJLnByZXZpb3VzRm9jdXNFbGVt
ZW50LmZvY3VzKCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBl
dmVudC50YXJnZXQuYmx1cigpOworICAgICAgICAgICAgfQorICAgICAgICB9LCB7b25jZTogdHJ1
ZSwgY2FwdHVyZTogdHJ1ZX0pOworICAgIH0KIH07CiAKIFdJLnJlc2l6ZURvY2tlZEZyYW1lTW91
c2VEb3duID0gZnVuY3Rpb24oZXZlbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395007</attachid>
            <date>2020-03-30 19:45:56 -0700</date>
            <delta_ts>2020-03-30 20:32:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2020</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGJiMTkxYzRlODhlLi5jN2IwMzNmMGY4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDMtMzAgIE5pa2l0
YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogdGhlIERvY2sgU2lkZSBuYXZpZ2F0aW9uIGl0ZW0gaXMgYXV0b21hdGljYWxseSBmb2N1c2Vk
IHdoZW4gV2ViIEluc3BlY3RvciBpcyBvcGVuZWQgZGV0YWNoZWQsIHByZXZlbnRpbmcgYW55IGds
b2JhbCBzcGFjZWJhciBzaG9ydGN1dHMgZnJvbSB3b3JraW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgV2hlbiB1bmRvY2tpbmcsIFdlYiBJbnNwZWN0b3Ig
Zm9jdXNlcyBvbiB0aGUgZmlyc3QgdmlzaWJsZSBmb2N1c2FibGUgZWxlbWVudC4gSSBkb24ndCBr
bm93IHdoeS4KKyAgICAgICAgVGhpcyBwYXRjaCByZXN0b3JlcyB0aGUgZm9jdXMgdG8gdGhlIHBy
ZXZpb3VzbHkgZm9jdXNlZCBlbGVtZW50LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNl
L01haW4uanM6CisKIDIwMjAtMDMtMjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBrZXlib2FyZCBzaG9ydGN1dCB0byB0b29s
dGlwIG9mIHBpbm5lZCB0YWJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanMKaW5kZXggZjg2ZTAzYjIzMzUuLjU3YmM0ODJmMmFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC05
MDEsNiArOTAxLDE5IEBAIFdJLnVwZGF0ZURvY2tlZFN0YXRlID0gZnVuY3Rpb24oc2lkZSkKIAog
ICAgIGlmICghV0kuZG9ja2VkQ29uZmlndXJhdGlvblN1cHBvcnRzU3BsaXRDb250ZW50QnJvd3Nl
cigpICYmICFXSS5kb2VzQ3VycmVudFRhYlN1cHBvcnRTcGxpdENvbnRlbnRCcm93c2VyKCkpCiAg
ICAgICAgIFdJLmhpZGVTcGxpdENvbnNvbGUoKTsKKworICAgIGlmIChzaWRlID09PSBXSS5Eb2Nr
Q29uZmlndXJhdGlvbi5VbmRvY2tlZCAmJiBXSS5QbGF0Zm9ybS5uYW1lID09PSAibWFjIikgewor
ICAgICAgICAvLyBXaGVuIHVuZG9ja2luZywgdGhlIGZpcnN0IHZpc2libGUgZm9jdXNhYmxlIGVs
ZW1lbnQgc3RlYWxzIGZvY3VzLiBVbmRvIHRoaXMuCisgICAgICAgIGRvY3VtZW50LmJvZHkuYWRk
RXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBs
ZXQgZmlyc3RGb2N1c2FibGVFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiW3RhYmlu
ZGV4PScwJ106bm90KC5oaWRkZW4pIik7CisgICAgICAgICAgICBpZiAoZmlyc3RGb2N1c2FibGVF
bGVtZW50ID09PSBldmVudC50YXJnZXQpIHsKKyAgICAgICAgICAgICAgICBpZiAoV0kucHJldmlv
dXNGb2N1c0VsZW1lbnQpCisgICAgICAgICAgICAgICAgICAgIFdJLnByZXZpb3VzRm9jdXNFbGVt
ZW50LmZvY3VzKCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBl
dmVudC50YXJnZXQuYmx1cigpOworICAgICAgICAgICAgfQorICAgICAgICB9LCB7b25jZTogdHJ1
ZSwgY2FwdHVyZTogdHJ1ZX0pOworICAgIH0KIH07CiAKIFdJLnJlc2l6ZURvY2tlZEZyYW1lTW91
c2VEb3duID0gZnVuY3Rpb24oZXZlbnQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>