<?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>179717</bug_id>
          
          <creation_ts>2017-11-14 21:35:38 -0800</creation_ts>
          <short_desc>Web Inspector: REGRESSION (r217750): Navigation sidebar broken after closing and re-opening tab</short_desc>
          <delta_ts>2017-11-15 15:39:59 -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>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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Baker">mattbaker</reporter>
          <assigned_to name="Matt Baker">mattbaker</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1371726</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-11-14 21:35:38 -0800</bug_when>
    <thetext>Summary:
Navigation sidebar broken after closing and re-opening tab.

Steps to Reproduce:
1. Goto Debugger tab
2. Toggle &quot;disable all breakpoints&quot; in the navigation bar
3. Close and then re-open the Debugger tab
4. Toggle &quot;disable all breakpoints&quot;
  =&gt; Nothing happens

The regression was caused by http://trac.webkit.org/changeset/220114:
&lt;https://webkit.org/b/174484&gt; Web Inspector: create Recording tab for displaying recordings

Navigation sidebar creation was changed to use WI.instanceForClass, which keeps the sidebar around instead of recreating it each time. Classes implementing closed() expect to be destroyed and recreated. When the Debugger tab is closed the sidebar panel removes its event listeners. When the Debugger tab is reopened, the sidebar returns as a zombie.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371727</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-14 21:38:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/35551541&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371728</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-14 21:38:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/35551542&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371729</commentid>
    <comment_count>3</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-11-14 21:42:12 -0800</bug_when>
    <thetext>(In reply to Matt Baker from comment #0)
&gt; Summary:
&gt; Navigation sidebar broken after closing and re-opening tab.
&gt; 
&gt; Steps to Reproduce:
&gt; 1. Goto Debugger tab
&gt; 2. Toggle &quot;disable all breakpoints&quot; in the navigation bar
&gt; 3. Close and then re-open the Debugger tab
&gt; 4. Toggle &quot;disable all breakpoints&quot;
&gt;   =&gt; Nothing happens
&gt; 
&gt; The regression was caused by http://trac.webkit.org/changeset/220114:
&gt; &lt;https://webkit.org/b/174484&gt; Web Inspector: create Recording tab for
&gt; displaying recordings

Wrong bug!

It should be http://trac.webkit.org/changeset/217750:
&lt;https://webkit.org/b/172621&gt; Web Inspector: Don&apos;t create NavigationSidebarPanel classes until they are needed by a Tab


&gt; Navigation sidebar creation was changed to use WI.instanceForClass, which
&gt; keeps the sidebar around instead of recreating it each time. Classes
&gt; implementing closed() expect to be destroyed and recreated. When the
&gt; Debugger tab is closed the sidebar panel removes its event listeners. When
&gt; the Debugger tab is reopened, the sidebar returns as a zombie.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371730</commentid>
    <comment_count>4</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-11-14 21:48:09 -0800</bug_when>
    <thetext>Another consequence of this regression is that `contentBrowser` isn&apos;t passed to any of the navigation sidebar panels during construction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371733</commentid>
    <comment_count>5</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-11-14 21:57:43 -0800</bug_when>
    <thetext>(In reply to Matt Baker from comment #4)
&gt; Another consequence of this regression is that `contentBrowser` isn&apos;t passed
&gt; to any of the navigation sidebar panels during construction.

Okay, while it&apos;s true it caused the constructor arg to be undefined, ContentBrowserTabContentView.prototype.show included a workaround to set the content browser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371740</commentid>
    <comment_count>6</comment_count>
      <attachid>326970</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-11-14 22:19:30 -0800</bug_when>
    <thetext>Created attachment 326970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371760</commentid>
    <comment_count>7</comment_count>
      <attachid>326970</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-11-15 00:39:45 -0800</bug_when>
    <thetext>Comment on attachment 326970
Patch

r-.  The original intent of this change was twofold:
    1) ensure that each sidebar panel is only created once (really only an issue for DetailsSidebarPanel)
    2) allow lazy instantiation of sidebar panels so that when each tab is created, we don&apos;t need to do extra work until the tab is shown

This patch will reintroduce (2), and I don&apos;t see this as a positive change.  I think that we should either:
    - refactor the existing NavigationSidebarPanels to use shown/hidden (moving any addEventListener to shown) instead of closed (Debugger, Resources, Search, and Storage)
    - allow multiple instances of the sidebars, but still instantiate them lazily (basically have two member variables, one for the constructors and one for the constructed SidebarPanels)

I think the first option is the more future-forward approach, as I don&apos;t think we should ever really be doing work in a UI class that isn&apos;t visible (I like what we do with FolderizedTreeElement), but the second option is definitely the &quot;faster&quot; solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372452</commentid>
    <comment_count>8</comment_count>
      <attachid>327024</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-11-15 14:19:15 -0800</bug_when>
    <thetext>Created attachment 327024
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372455</commentid>
    <comment_count>9</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-11-15 14:20:18 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #7)
&gt; Comment on attachment 326970 [details]
&gt; Patch
&gt; 
&gt; r-.  The original intent of this change was twofold:
&gt;     1) ensure that each sidebar panel is only created once (really only an
&gt; issue for DetailsSidebarPanel)
&gt;     2) allow lazy instantiation of sidebar panels so that when each tab is
&gt; created, we don&apos;t need to do extra work until the tab is shown
&gt; 
&gt; This patch will reintroduce (2), and I don&apos;t see this as a positive change. 
&gt; I think that we should either:
&gt;     - refactor the existing NavigationSidebarPanels to use shown/hidden
&gt; (moving any addEventListener to shown) instead of closed (Debugger,
&gt; Resources, Search, and Storage)
&gt;     - allow multiple instances of the sidebars, but still instantiate them
&gt; lazily (basically have two member variables, one for the constructors and
&gt; one for the constructed SidebarPanels)

I went with this option.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372476</commentid>
    <comment_count>10</comment_count>
      <attachid>327024</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-11-15 15:18:58 -0800</bug_when>
    <thetext>Comment on attachment 327024
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372481</commentid>
    <comment_count>11</comment_count>
      <attachid>327024</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-15 15:39:58 -0800</bug_when>
    <thetext>Comment on attachment 327024
Patch

Clearing flags on attachment: 327024

Committed r224905: &lt;https://trac.webkit.org/changeset/224905&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372482</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-15 15:39:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326970</attachid>
            <date>2017-11-14 22:19:30 -0800</date>
            <delta_ts>2017-11-15 14:19:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179717-20171114221929.patch</filename>
            <type>text/plain</type>
            <size>6302</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0ODIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAz
YzE5YzAyMjExZTg0MmVjYmRhMTE1N2JmYTBiZDZlNDhmMjE0ZjY1Li4zZDU0NmQ3YzlkYmQ4YzEx
ZjFjZmVhYjFjYzU0NmZkNjNkNDVhNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMyBAQAogMjAxNy0xMS0xNCAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTiAocjIxNzc1MCk6IE5hdmlnYXRp
b24gc2lkZWJhciBicm9rZW4gYWZ0ZXIgY2xvc2luZyBhbmQgcmUtb3BlbmluZyB0YWIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTcxNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzU1NTE1NDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTmF2aWdhdGlvblNpZGViYXJQYW5lbHMgc2hvdWxkIGJlIGNy
ZWF0ZWQgYW5kIGRlc3Ryb3llZCB3aXRoIHRoZWlyCisgICAgICAgIHBhcmVudCBUYWJDb250ZW50
Vmlldywgbm90IGNyZWF0ZWQgd2l0aCBXSS5pbnN0YW5jZUZvckNsYXNzLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3LmpzOgorICAg
ICAgICAoV0kuQ29udGVudEJyb3dzZXJUYWJDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5Db250
ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93bik6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9UYWJDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLlRhYkNvbnRl
bnRWaWV3KToKKyAgICAgICAgKFdJLlRhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdh
dGlvblNpZGViYXJQYW5lbCk6CisKKzIwMTctMTEtMTQgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJA
YXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENsZWFudXAgbmF2aWdhdGlvbiBi
YXIgZGl2aWRlcnMgYW5kIHNlcGFyYXRvcnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3OTY1NAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU1MjM3
MzQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXJUYWJDb250ZW50Vmlldy5qcwppbmRl
eCAxNjcxOWJjZTExYmRlNzkyMGE1NmJjNWZkMzk3ZTM1YzBkNjEzZTE5Li44NjE4YzZiNjcwM2Y0
ZWZhMTVmMmI1NzE3ZDMxMTRlZTAzZTBhOWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3Lmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRC
cm93c2VyVGFiQ29udGVudFZpZXcuanMKQEAgLTMyLDkgKzMyLDEwIEBAIFdJLkNvbnRlbnRCcm93
c2VyVGFiQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuCiAKICAgICAgICAgc3R5bGVDbGFzc05hbWVzLnB1c2goImNvbnRlbnQtYnJvd3Nl
ciIpOwogCi0gICAgICAgIHZhciBjb250ZW50QnJvd3NlciA9IG5ldyBXSS5Db250ZW50QnJvd3Nl
cihudWxsLCBudWxsLCBkaXNhYmxlQmFja0ZvcndhcmQsIGZhbHNlLCBmbGV4aWJsZU5hdmlnYXRp
b25JdGVtKTsKKyAgICAgICAgbGV0IGNvbnRlbnRCcm93c2VyID0gbmV3IFdJLkNvbnRlbnRCcm93
c2VyKG51bGwsIG51bGwsIGRpc2FibGVCYWNrRm9yd2FyZCwgZmFsc2UsIGZsZXhpYmxlTmF2aWdh
dGlvbkl0ZW0pOworICAgICAgICBsZXQgbmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IG5hdmlnYXRp
b25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciA/IG5ldyBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29u
c3RydWN0b3IoY29udGVudEJyb3dzZXIpIDogbnVsbDsKIAotICAgICAgICBzdXBlcihpZGVudGlm
aWVyLCBzdHlsZUNsYXNzTmFtZXMsIHRhYkJhckl0ZW0sIG5hdmlnYXRpb25TaWRlYmFyUGFuZWxD
b25zdHJ1Y3RvciwgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycyk7CisgICAgICAgIHN1
cGVyKGlkZW50aWZpZXIsIHN0eWxlQ2xhc3NOYW1lcywgdGFiQmFySXRlbSwgbmF2aWdhdGlvblNp
ZGViYXJQYW5lbCwgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycyk7CiAKICAgICAgICAg
dGhpcy5fY29udGVudEJyb3dzZXIgPSBjb250ZW50QnJvd3NlcjsKICAgICAgICAgdGhpcy5fY29u
dGVudEJyb3dzZXIuZGVsZWdhdGUgPSB0aGlzOwpAQCAtNDgsNyArNDksNyBAQCBXSS5Db250ZW50
QnJvd3NlclRhYkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudEJyb3dzZXJUYWJDb250ZW50Vmll
dyBleHRlbmRzIFdJLgogICAgICAgICAvLyBFeHBsaWNpdGx5IHVwZGF0ZSB0aGUgcGF0aCBmb3Ig
dGhlIG5hdmlnYXRpb24gYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBzaG93aW5nIHVwIGFzIGJsYW5r
LgogICAgICAgICB0aGlzLl9jb250ZW50QnJvd3Nlci51cGRhdGVIaWVyYXJjaGljYWxQYXRoRm9y
Q3VycmVudENvbnRlbnRWaWV3KCk7CiAKLSAgICAgICAgaWYgKG5hdmlnYXRpb25TaWRlYmFyUGFu
ZWxDb25zdHJ1Y3RvcikgeworICAgICAgICBpZiAobmF2aWdhdGlvblNpZGViYXJQYW5lbCkgewog
ICAgICAgICAgICAgbGV0IHNob3dUb29sVGlwID0gV0kuVUlTdHJpbmcoIlNob3cgdGhlIG5hdmln
YXRpb24gc2lkZWJhciAoJXMpIikuZm9ybWF0KFdJLm5hdmlnYXRpb25TaWRlYmFyS2V5Ym9hcmRT
aG9ydGN1dC5kaXNwbGF5TmFtZSk7CiAgICAgICAgICAgICBsZXQgaGlkZVRvb2xUaXAgPSBXSS5V
SVN0cmluZygiSGlkZSB0aGUgbmF2aWdhdGlvbiBzaWRlYmFyICglcykiKS5mb3JtYXQoV0kubmF2
aWdhdGlvblNpZGViYXJLZXlib2FyZFNob3J0Y3V0LmRpc3BsYXlOYW1lKTsKICAgICAgICAgICAg
IGxldCBpbWFnZSA9IFdJLnJlc29sdmVkTGF5b3V0RGlyZWN0aW9uKCkgPT09IFdJLkxheW91dERp
cmVjdGlvbi5SVEwgPyAiSW1hZ2VzL1RvZ2dsZVJpZ2h0U2lkZWJhci5zdmciIDogIkltYWdlcy9U
b2dnbGVMZWZ0U2lkZWJhci5zdmciOwpAQCAtOTQsMTEgKzk1LDYgQEAgV0kuQ29udGVudEJyb3dz
ZXJUYWJDb250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRCcm93c2VyVGFiQ29udGVudFZpZXcgZXh0
ZW5kcyBXSS4KIAogICAgIHNob3duKCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLm5hdmlnYXRp
b25TaWRlYmFyUGFuZWwpIHsKLSAgICAgICAgICAgIGlmICghdGhpcy5uYXZpZ2F0aW9uU2lkZWJh
clBhbmVsLmNvbnRlbnRCcm93c2VyKQotICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblNp
ZGViYXJQYW5lbC5jb250ZW50QnJvd3NlciA9IHRoaXMuX2NvbnRlbnRCcm93c2VyOwotICAgICAg
ICB9Ci0KICAgICAgICAgc3VwZXIuc2hvd24oKTsKIAogICAgICAgICB0aGlzLl9jb250ZW50QnJv
d3Nlci5zaG93bigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9UYWJDb250ZW50Vmlldy5qcwppbmRleCA2NmQ3OGY2M2ZlNmY5NWIz
OGNiMWUzMTYxYTJmZWY0N2QyNjM4Yzg2Li4yZDViYjM4ZTlkYTYxN2YwYWFjM2RhNmZhODhlYWMy
ZmUxOWRlODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9UYWJDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9UYWJDb250ZW50Vmlldy5qcwpAQCAtMjUsMTIgKzI1LDEyIEBACiAK
IFdJLlRhYkNvbnRlbnRWaWV3ID0gY2xhc3MgVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250
ZW50VmlldwogewotICAgIGNvbnN0cnVjdG9yKGlkZW50aWZpZXIsIHN0eWxlQ2xhc3NOYW1lcywg
dGFiQmFySXRlbSwgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yLCBkZXRhaWxzU2lk
ZWJhclBhbmVsQ29uc3RydWN0b3JzKQorICAgIGNvbnN0cnVjdG9yKGlkZW50aWZpZXIsIHN0eWxl
Q2xhc3NOYW1lcywgdGFiQmFySXRlbSwgbmF2aWdhdGlvblNpZGViYXJQYW5lbCwgZGV0YWlsc1Np
ZGViYXJQYW5lbENvbnN0cnVjdG9ycykKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5
cGVvZiBpZGVudGlmaWVyID09PSAic3RyaW5nIik7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5
cGVvZiBzdHlsZUNsYXNzTmFtZXMgPT09ICJzdHJpbmciIHx8IHN0eWxlQ2xhc3NOYW1lcy5ldmVy
eSgoY2xhc3NOYW1lKSA9PiB0eXBlb2YgY2xhc3NOYW1lID09PSAic3RyaW5nIikpOwogICAgICAg
ICBjb25zb2xlLmFzc2VydCh0YWJCYXJJdGVtIGluc3RhbmNlb2YgV0kuVGFiQmFySXRlbSk7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3Ig
fHwgdHlwZW9mIG5hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciA9PT0gImZ1bmN0aW9u
Iik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFuYXZpZ2F0aW9uU2lkZWJhclBhbmVsIHx8IG5h
dmlnYXRpb25TaWRlYmFyUGFuZWwgaW5zdGFuY2VvZiBXSS5OYXZpZ2F0aW9uU2lkZWJhclBhbmVs
KTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoIWRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3Rv
cnMgfHwgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycy5ldmVyeSgoZGV0YWlsc1NpZGVi
YXJQYW5lbENvbnN0cnVjdG9yKSA9PiB0eXBlb2YgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVj
dG9yID09PSAiZnVuY3Rpb24iKSk7CiAKICAgICAgICAgc3VwZXIobnVsbCk7CkBAIC00NCw3ICs0
NCw3IEBAIFdJLlRhYkNvbnRlbnRWaWV3ID0gY2xhc3MgVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBX
SS5Db250ZW50VmlldwogCiAgICAgICAgIHRoaXMuX2lkZW50aWZpZXIgPSBpZGVudGlmaWVyOwog
ICAgICAgICB0aGlzLl90YWJCYXJJdGVtID0gdGFiQmFySXRlbTsKLSAgICAgICAgdGhpcy5fbmF2
aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yID0gbmF2aWdhdGlvblNpZGViYXJQYW5lbENv
bnN0cnVjdG9yIHx8IG51bGw7CisgICAgICAgIHRoaXMuX25hdmlnYXRpb25TaWRlYmFyUGFuZWwg
PSBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsOwogICAgICAgICB0aGlzLl9kZXRhaWxzU2lkZWJhclBh
bmVsQ29uc3RydWN0b3JzID0gZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycyB8fCBbXTsK
IAogICAgICAgICBjb25zdCBkZWZhdWx0U2lkZWJhcldpZHRoID0gMzAwOwpAQCAtMTczLDE1ICsx
NzMsNyBAQCBXSS5UYWJDb250ZW50VmlldyA9IGNsYXNzIFRhYkNvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fY29va2llU2V0dGluZy52YWx1ZSA9IGNvb2tp
ZTsKICAgICB9CiAKLSAgICBnZXQgbmF2aWdhdGlvblNpZGViYXJQYW5lbCgpCi0gICAgewotICAg
ICAgICBpZiAoIXRoaXMuX25hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcikKLSAgICAg
ICAgICAgIHJldHVybiBudWxsOwotICAgICAgICBpZiAoIXRoaXMuX25hdmlnYXRpb25TaWRlYmFy
UGFuZWwpCi0gICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gV0kuaW5z
dGFuY2VGb3JDbGFzcyh0aGlzLl9uYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IpOwot
ICAgICAgICByZXR1cm4gdGhpcy5fbmF2aWdhdGlvblNpZGViYXJQYW5lbDsKLSAgICB9Ci0KKyAg
ICBnZXQgbmF2aWdhdGlvblNpZGViYXJQYW5lbCgpIHsgcmV0dXJuIHRoaXMuX25hdmlnYXRpb25T
aWRlYmFyUGFuZWw7IH0KICAgICBnZXQgbmF2aWdhdGlvblNpZGViYXJDb2xsYXBzZWRTZXR0aW5n
KCkgeyByZXR1cm4gdGhpcy5fbmF2aWdhdGlvblNpZGViYXJDb2xsYXBzZWRTZXR0aW5nOyB9CiAg
ICAgZ2V0IG5hdmlnYXRpb25TaWRlYmFyV2lkdGhTZXR0aW5nKCkgeyByZXR1cm4gdGhpcy5fbmF2
aWdhdGlvblNpZGViYXJXaWR0aFNldHRpbmc7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327024</attachid>
            <date>2017-11-15 14:19:15 -0800</date>
            <delta_ts>2017-11-15 15:39:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179717-20171115141915.patch</filename>
            <type>text/plain</type>
            <size>5352</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAy
YjVmZWU1ZTA3ZGY5ZGEwZjUwMjIzZDk4NTc5OTAxMDJhMjgxNDI0Li5kNjZlZjVlNWRjNThiMGYy
ZGNiYWNiZWY2ZmY5NGE1ZTZhZTM5NjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNy0xMS0xNSAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTiAocjIxNzc1MCk6IE5hdmlnYXRp
b24gc2lkZWJhciBicm9rZW4gYWZ0ZXIgY2xvc2luZyBhbmQgcmUtb3BlbmluZyB0YWIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTcxNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzU1NTE1NDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTmF2aWdhdGlvblNpZGViYXJQYW5lbHMgc2hvdWxkIG5vdCBi
ZSBjcmVhdGVkIHdpdGggV0kuaW5zdGFuY2VGb3JDbGFzcy4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanM6CisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLlJlc291cmNl
U2lkZWJhclBhbmVsKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJjaFNpZGVi
YXJQYW5lbC5qczoKKyAgICAgICAgKFdJLlNlYXJjaFNpZGViYXJQYW5lbCk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9TdG9yYWdlU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV0ku
U3RvcmFnZVNpZGViYXJQYW5lbCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UYWJD
b250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLlRhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQg
bmF2aWdhdGlvblNpZGViYXJQYW5lbCk6CisKIDIwMTctMTEtMTUgIE1pY2hhZWwgQ2F0YW56YXJv
ICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSBHVEsgd2ViIGluc3Bl
Y3RvciBpbWFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMKaW5kZXggYzc4YzMz
ZTI0ODgxMDcyOGI0ZGE0OGY3ZjZlNjJjMzA4ZjkwOTMyYy4uNmEyYzhmMDY4MTYzMmQ3OTg2NDZm
OGE4ODIyYmRmN2Y1Y2E1ZGFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMK
QEAgLTI1LDEyICsyNSwxMCBAQAogCiBXSS5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERl
YnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuTmF2aWdhdGlvblNpZGViYXJQYW5lbAogewot
ICAgIGNvbnN0cnVjdG9yKGNvbnRlbnRCcm93c2VyKQorICAgIGNvbnN0cnVjdG9yKCkKICAgICB7
CiAgICAgICAgIHN1cGVyKCJkZWJ1Z2dlciIsIFdJLlVJU3RyaW5nKCJEZWJ1Z2dlciIpLCB0cnVl
KTsKIAotICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyID0gY29udGVudEJyb3dzZXI7Ci0KICAg
ICAgICAgV0kuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXSS5GcmFtZS5FdmVudC5NYWluUmVzb3Vy
Y2VEaWRDaGFuZ2UsIHRoaXMuX21haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcyk7CiAgICAgICAg
IFdJLkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV0kuRnJhbWUuRXZlbnQuUmVzb3VyY2VXYXNBZGRl
ZCwgdGhpcy5fcmVzb3VyY2VBZGRlZCwgdGhpcyk7CiAgICAgICAgIFdJLlRhcmdldC5hZGRFdmVu
dExpc3RlbmVyKFdJLlRhcmdldC5FdmVudC5SZXNvdXJjZUFkZGVkLCB0aGlzLl9yZXNvdXJjZUFk
ZGVkLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKaW5kZXggZDU5ZTIy
OWMxNWY5NjQ4ZGRiODljOTUwYzE4ZWIyZTljY2E0NDIyYi4uYTQyM2IzNzRkOGVmMTg5YmJiMTIx
MWMzYzMyZTlkNmY0ZWU2OTRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMK
QEAgLTI1LDEyICsyNSwxMCBAQAogCiBXSS5SZXNvdXJjZVNpZGViYXJQYW5lbCA9IGNsYXNzIFJl
c291cmNlU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuTmF2aWdhdGlvblNpZGViYXJQYW5lbAogewot
ICAgIGNvbnN0cnVjdG9yKGNvbnRlbnRCcm93c2VyKQorICAgIGNvbnN0cnVjdG9yKCkKICAgICB7
CiAgICAgICAgIHN1cGVyKCJyZXNvdXJjZSIsIFdJLlVJU3RyaW5nKCJSZXNvdXJjZXMiKSwgdHJ1
ZSk7CiAKLSAgICAgICAgdGhpcy5jb250ZW50QnJvd3NlciA9IGNvbnRlbnRCcm93c2VyOwotCiAg
ICAgICAgIHRoaXMuX25hdmlnYXRpb25CYXIgPSBuZXcgV0kuTmF2aWdhdGlvbkJhcjsKICAgICAg
ICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX25hdmlnYXRpb25CYXIpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TZWFyY2hTaWRlYmFyUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TZWFyY2hT
aWRlYmFyUGFuZWwuanMKaW5kZXggMDYzNTkxNjk1ZTIyMmYyZTdmMjFmNzE5NmY2NzgxZjdjZDdl
NWIzZi4uNmJhNjU3NGMzZTdiNzIzOWQ0YzUxMzg2MzU0NDg0OGI1YjZjMTNiZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoU2lkZWJh
clBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NlYXJjaFNpZGViYXJQYW5lbC5qcwpAQCAtMjUsMTIgKzI1LDEwIEBACiAKIFdJLlNlYXJjaFNp
ZGViYXJQYW5lbCA9IGNsYXNzIFNlYXJjaFNpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRp
b25TaWRlYmFyUGFuZWwKIHsKLSAgICBjb25zdHJ1Y3Rvcihjb250ZW50QnJvd3NlcikKKyAgICBj
b25zdHJ1Y3RvcigpCiAgICAgewogICAgICAgICBzdXBlcigic2VhcmNoIiwgV0kuVUlTdHJpbmco
IlNlYXJjaCIpLCB0cnVlLCB0cnVlKTsKIAotICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyID0g
Y29udGVudEJyb3dzZXI7Ci0KICAgICAgICAgdmFyIHNlYXJjaEVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgc2VhcmNoRWxlbWVudC5jbGFzc0xpc3QuYWRk
KCJzZWFyY2gtYmFyIik7CiAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChzZWFyY2hF
bGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1N0b3JhZ2VTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9TdG9yYWdlU2lkZWJhclBhbmVsLmpzCmluZGV4IGM0YzBlZDk4NzM3
OWM2YTZjZmU1NGRmYjMyOWUzMGNkNjMzNzk5MWYuLmY5M2RjM2U3OGJjMGE2Yjk5ZDQzNDgzMDdh
YjBlNDc3ODIwYmMyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1N0b3JhZ2VTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3RvcmFnZVNpZGViYXJQYW5lbC5qcwpAQCAtMjUs
MTIgKzI1LDEwIEBACiAKIFdJLlN0b3JhZ2VTaWRlYmFyUGFuZWwgPSBjbGFzcyBTdG9yYWdlU2lk
ZWJhclBhbmVsIGV4dGVuZHMgV0kuTmF2aWdhdGlvblNpZGViYXJQYW5lbAogewotICAgIGNvbnN0
cnVjdG9yKGNvbnRlbnRCcm93c2VyKQorICAgIGNvbnN0cnVjdG9yKCkKICAgICB7CiAgICAgICAg
IHN1cGVyKCJzdG9yYWdlIiwgV0kuVUlTdHJpbmcoIlN0b3JhZ2UiKSk7CiAKLSAgICAgICAgdGhp
cy5jb250ZW50QnJvd3NlciA9IGNvbnRlbnRCcm93c2VyOwotCiAgICAgICAgIHRoaXMuX25hdmln
YXRpb25CYXIgPSBuZXcgV0kuTmF2aWdhdGlvbkJhcjsKICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3
KHRoaXMuX25hdmlnYXRpb25CYXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9UYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RhYkNvbnRlbnRWaWV3LmpzCmluZGV4IDY2ZDc4
ZjYzZmU2Zjk1YjM4Y2IxZTMxNjFhMmZlZjQ3ZDI2MzhjODYuLjBiMjRlZjM5MGVlMWU4NDNkNGM2
MmVjZjNhODI0YTM5YzUxYWZjZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RhYkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RhYkNvbnRlbnRWaWV3LmpzCkBAIC0xNzgsNyAr
MTc4LDggQEAgV0kuVGFiQ29udGVudFZpZXcgPSBjbGFzcyBUYWJDb250ZW50VmlldyBleHRlbmRz
IFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIGlmICghdGhpcy5fbmF2aWdhdGlvblNpZGViYXJQYW5l
bENvbnN0cnVjdG9yKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIGlmICghdGhp
cy5fbmF2aWdhdGlvblNpZGViYXJQYW5lbCkKLSAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25T
aWRlYmFyUGFuZWwgPSBXSS5pbnN0YW5jZUZvckNsYXNzKHRoaXMuX25hdmlnYXRpb25TaWRlYmFy
UGFuZWxDb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uU2lkZWJhclBh
bmVsID0gbmV3IHRoaXMuX25hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcjsKKwogICAg
ICAgICByZXR1cm4gdGhpcy5fbmF2aWdhdGlvblNpZGViYXJQYW5lbDsKICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>