<?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>197034</bug_id>
          
          <creation_ts>2019-04-17 13:52:22 -0700</creation_ts>
          <short_desc>Web Inspector: Uncaught Exception: Breakpoint at specified location already exists.</short_desc>
          <delta_ts>2019-07-22 20:45:35 -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>
          
          
          <bug_file_loc>https://docs.google.com/spreadsheets/d/1ctYXqr9pEmQLC4X6UkKTKWGSWXquhlIbCLrQXCqUpP0/edit#gid=0</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>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1528254</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-17 13:52:22 -0700</bug_when>
    <thetext>Inspected URL:        https://docs.google.com/spreadsheets/d/1ctYXqr9pEmQLC4X6UkKTKWGSWXquhlIbCLrQXCqUpP0/edit#gid=0
Loading completed:    true
Frontend User Agent:  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko)
Dispatch Source:      Protocol Event

Protocol Event:
{&quot;method&quot;:&quot;Target.dispatchMessageFromTarget&quot;,&quot;params&quot;:{&quot;targetId&quot;:&quot;page-1&quot;,&quot;message&quot;:&quot;{\&quot;error\&quot;:{\&quot;code\&quot;:-32000,\&quot;message\&quot;:\&quot;Breakpoint at specified location already exists.\&quot;,\&quot;data\&quot;:[{\&quot;code\&quot;:-32000,\&quot;message\&quot;:\&quot;Breakpoint at specified location already exists.\&quot;}]},\&quot;id\&quot;:535}&quot;}}
Dispatch Source:      Protocol Command Response

Protocol Command Response:
{&quot;error&quot;:{&quot;code&quot;:-32000,&quot;message&quot;:&quot;Breakpoint at specified location already exists.&quot;,&quot;data&quot;:[{&quot;code&quot;:-32000,&quot;message&quot;:&quot;Breakpoint at specified location already exists.&quot;}]},&quot;id&quot;:535}

Protocol Command Request:
{&quot;id&quot;:535,&quot;method&quot;:&quot;Debugger.setBreakpointByUrl&quot;,&quot;params&quot;:{&quot;lineNumber&quot;:3960,&quot;url&quot;:&quot;https://docs.google.com/static/spreadsheets2/client/js/1864039502-waffle_js_prod_core.js&quot;,&quot;columnNumber&quot;:460,&quot;options&quot;:{&quot;condition&quot;:&quot;&quot;,&quot;ignoreCount&quot;:0,&quot;autoContinue&quot;:false,&quot;actions&quot;:[]}}}

Uncaught Exceptions:
 - Breakpoint at specified location already exists. (at Main.js:3185:75)
    reportInternalError @ Main.js:3185:75
    didSetBreakpoint @ DebuggerManager.js:934:39
    didSetBreakpoint @ [native code]
    _dispatchResponseToCallback @ Connection.js:148:27
    _dispatchResponse @ Connection.js:118:45
    dispatch @ Connection.js:70:35
    dispatchMessageFromTarget @ TargetManager.js:101:35
    dispatchMessageFromTarget @ TargetObserver.js:42:51
    dispatchEvent @ InspectorBackend.js:340:42
    _dispatchEvent @ Connection.js:195:32
    dispatch @ Connection.js:72:32
    dispatch @ InspectorBackend.js:178:52
    dispatchNextQueuedMessageFromBackend @ MessageDispatcher.js:42:34</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528770</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-19 09:00:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/50049004&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554895</commentid>
    <comment_count>2</comment_count>
      <attachid>374644</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-07-22 15:49:37 -0700</bug_when>
    <thetext>Created attachment 374644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554908</commentid>
    <comment_count>3</comment_count>
      <attachid>374644</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-07-22 16:20:03 -0700</bug_when>
    <thetext>Comment on attachment 374644
Patch

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

&gt; Source/WebInspectorUI/ChangeLog:11
&gt; +        When &quot;adjusting&quot; a `WI.Breakpoint` (e.g. removing and then re-adding with a different
&gt; +        configuration), make sure to only re-add the `WI.Breakpoint` to the `WI.Target` it was just
&gt; +        removed from, rather than iterate over all `WI.targets`.

I&apos;m not sure I understand.

We set each breakpoint in all targets, so if we remove and re-add a breakpoint it should be removed and re-added to all targets.

&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:931
&gt; +    _setBreakpoint(breakpoint, target)

I still prefer `specificTarget` to avoid the shadow below (let target of targets).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554910</commentid>
    <comment_count>4</comment_count>
      <attachid>374644</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-07-22 16:20:46 -0700</bug_when>
    <thetext>Comment on attachment 374644
Patch

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

&gt;&gt; Source/WebInspectorUI/ChangeLog:11
&gt;&gt; +        removed from, rather than iterate over all `WI.targets`.
&gt; 
&gt; I&apos;m not sure I understand.
&gt; 
&gt; We set each breakpoint in all targets, so if we remove and re-add a breakpoint it should be removed and re-added to all targets.

Unless you mean we remove from all target and individually add back to each target?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554924</commentid>
    <comment_count>5</comment_count>
      <attachid>374644</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-07-22 16:48:31 -0700</bug_when>
    <thetext>Comment on attachment 374644
Patch

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

&gt;&gt;&gt; Source/WebInspectorUI/ChangeLog:11
&gt;&gt;&gt; +        removed from, rather than iterate over all `WI.targets`.
&gt;&gt; 
&gt;&gt; I&apos;m not sure I understand.
&gt;&gt; 
&gt;&gt; We set each breakpoint in all targets, so if we remove and re-add a breakpoint it should be removed and re-added to all targets.
&gt; 
&gt; Unless you mean we remove from all target and individually add back to each target?

Previously, the pseudo-code looked like this:

for each target (tA):                        &lt;WI.DebuggerManager.prototype._removeBreakpoint&gt;
  remove breakpoint from tA -&gt; callback {    &lt;WI.DebuggerManager.prototype._removeBreakpoint&gt;
    for each target (tB):                    &lt;WI.DebuggerManager.prototype._addBreakpoint&gt;
        add breakpoint to tB                 &lt;WI.DebuggerManager.prototype._addBreakpoint&gt;
  }

This is a problem because each iteration of the inner `for` is re-adding the breakpoint to ALL targets (one-to-many), not just the one it was just removed from.

The new pseudo-code looks like this:

for each target (tA):                        &lt;WI.DebuggerManager.prototype._removeBreakpoint&gt;
  remove breakpoint from tA -&gt; callback {    &lt;WI.DebuggerManager.prototype._removeBreakpoint&gt;
    add breakpoint to tA                     &lt;WI.DebuggerManager.prototype._addBreakpoint&gt;
  }

Now, we only re-add the breakpoint to the target it was just removed from (one-to-one).

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:931
&gt;&gt; +    _setBreakpoint(breakpoint, target)
&gt; 
&gt; I still prefer `specificTarget` to avoid the shadow below (let target of targets).

Oh oops :P
I&apos;ll change it back</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554929</commentid>
    <comment_count>6</comment_count>
      <attachid>374655</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-07-22 16:57:50 -0700</bug_when>
    <thetext>Created attachment 374655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554946</commentid>
    <comment_count>7</comment_count>
      <attachid>374655</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-07-22 17:42:21 -0700</bug_when>
    <thetext>Comment on attachment 374655
Patch

r-me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554947</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-07-22 17:42:42 -0700</bug_when>
    <thetext>&gt; Now, we only re-add the breakpoint to the target it was just removed from
&gt; (one-to-one).

Okay good that is what I was expecting!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554994</commentid>
    <comment_count>9</comment_count>
      <attachid>374655</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-22 20:45:34 -0700</bug_when>
    <thetext>Comment on attachment 374655
Patch

Clearing flags on attachment: 374655

Committed r247715: &lt;https://trac.webkit.org/changeset/247715&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554995</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-22 20:45:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374644</attachid>
            <date>2019-07-22 15:49:37 -0700</date>
            <delta_ts>2019-07-22 16:57:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197034-20190722154936.patch</filename>
            <type>text/plain</type>
            <size>6087</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDRmOTVjNDhiMDNiMWM4MGQ2YmI1ZmMxZjlkZjBl
MjM4MTc5OWNhZjguLjIxY2ViNGRiNDUzNDBiZTI4Zjc4NTk0NGQ4ZDQ1NWViNzg4M2UxM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTA3LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBV
bmNhdWdodCBFeGNlcHRpb246IEJyZWFrcG9pbnQgYXQgc3BlY2lmaWVkIGxvY2F0aW9uIGFscmVh
ZHkgZXhpc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk3MDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDA0OTAwND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuICJhZGp1c3RpbmciIGEg
YFdJLkJyZWFrcG9pbnRgIChlLmcuIHJlbW92aW5nIGFuZCB0aGVuIHJlLWFkZGluZyB3aXRoIGEg
ZGlmZmVyZW50CisgICAgICAgIGNvbmZpZ3VyYXRpb24pLCBtYWtlIHN1cmUgdG8gb25seSByZS1h
ZGQgdGhlIGBXSS5CcmVha3BvaW50YCB0byB0aGUgYFdJLlRhcmdldGAgaXQgd2FzIGp1c3QKKyAg
ICAgICAgcmVtb3ZlZCBmcm9tLCByYXRoZXIgdGhhbiBpdGVyYXRlIG92ZXIgYWxsIGBXSS50YXJn
ZXRzYC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5h
Z2VyLmpzOgorICAgICAgICAoV0kuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5hZGRCcmVha3Bv
aW50KToKKyAgICAgICAgKFdJLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuX3NldEJyZWFrcG9p
bnQpOgorICAgICAgICAoV0kuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5fcmVtb3ZlQnJlYWtw
b2ludC5kaWRSZW1vdmVCcmVha3BvaW50KToKKyAgICAgICAgKFdJLkRlYnVnZ2VyTWFuYWdlci5w
cm90b3R5cGUuX2JyZWFrcG9pbnREaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UpOgorICAgICAgICAo
V0kuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5fYnJlYWtwb2ludEVkaXRhYmxlUHJvcGVydHlE
aWRDaGFuZ2UpOgorCiAyMDE5LTA3LTIyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBMb2NhbGl6YXRpb246IGNoYW5nZSBmcHMgdG8gRlBTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dl
ck1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKaW5kZXggNDI3Njc5OWFjMDg1NzUxOWFjZWM2MGI3Nzg4
OWQ1ZGY2MDExZjczZC4uZGIxNmFhMjU2MDhmZWNhZGViN2ZmMzU0ZGE3ZTMwY2YzYzhmMmM1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvRGVidWdnZXJNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcwpAQCAtNDkwLDEwICs0OTAsOCBA
QCBXSS5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5P
YmplY3QKIAogICAgICAgICB0aGlzLl9icmVha3BvaW50cy5wdXNoKGJyZWFrcG9pbnQpOwogCi0g
ICAgICAgIGlmICghYnJlYWtwb2ludC5kaXNhYmxlZCkgewotICAgICAgICAgICAgY29uc3Qgc3Bl
Y2lmaWNUYXJnZXQgPSB1bmRlZmluZWQ7Ci0gICAgICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50
KGJyZWFrcG9pbnQsIHNwZWNpZmljVGFyZ2V0KTsKLSAgICAgICAgfQorICAgICAgICBpZiAoIWJy
ZWFrcG9pbnQuZGlzYWJsZWQpCisgICAgICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50KGJyZWFr
cG9pbnQpOwogCiAgICAgICAgIGlmICghdGhpcy5fcmVzdG9yaW5nQnJlYWtwb2ludHMpCiAgICAg
ICAgICAgICBXSS5vYmplY3RTdG9yZXMuYnJlYWtwb2ludHMucHV0T2JqZWN0KGJyZWFrcG9pbnQp
OwpAQCAtOTMwLDcgKzkyOCw3IEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2Vy
TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB9OwogICAgIH0KIAotICAgIF9zZXRC
cmVha3BvaW50KGJyZWFrcG9pbnQsIHNwZWNpZmljVGFyZ2V0KQorICAgIF9zZXRCcmVha3BvaW50
KGJyZWFrcG9pbnQsIHRhcmdldCkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFicmVh
a3BvaW50LmRpc2FibGVkKTsKIApAQCAtOTY0LDcgKzk2Miw3IEBAIFdJLkRlYnVnZ2VyTWFuYWdl
ciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAvLyBU
aGUgYnJlYWtwb2ludCB3aWxsIGJlIHJlc29sdmVkIGFnYWluIGJ5IGNhbGxpbmcgRGVidWdnZXJB
Z2VudCwgc28gbWFyayBpdCBhcyB1bnJlc29sdmVkLgogICAgICAgICAvLyBJZiBzb21ldGhpbmcg
Z29lcyB3cm9uZyBpdCB3aWxsIHN0YXkgdW5yZXNvbHZlZCBhbmQgc2hvdyB1cCBhcyBzdWNoIGlu
IHRoZSB1c2VyIGludGVyZmFjZS4KICAgICAgICAgLy8gV2hlbiBzZXR0aW5nIGZvciBhIG5ldyB0
YXJnZXQsIGRvbid0IGNoYW5nZSB0aGUgcmVzb2x2ZWQgdGFyZ2V0LgotICAgICAgICBpZiAoIXNw
ZWNpZmljVGFyZ2V0KQorICAgICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgICAgIGJyZWFrcG9p
bnQucmVzb2x2ZWQgPSBmYWxzZTsKIAogICAgICAgICAvLyBDb252ZXJ0IEJyZWFrcG9pbnRBY3Rp
b24gdHlwZXMgdG8gRGVidWdnZXJBZ2VudCBwcm90b2NvbCB0eXBlcy4KQEAgLTk3NCw3ICs5NzIs
NyBAQCBXSS5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBX
SS5PYmplY3QKICAgICAgICAgICAgIGFjdGlvbi50eXBlID0gdGhpcy5fZGVidWdnZXJCcmVha3Bv
aW50QWN0aW9uVHlwZShhY3Rpb24udHlwZSk7CiAKICAgICAgICAgaWYgKGJyZWFrcG9pbnQuY29u
dGVudElkZW50aWZpZXIpIHsKLSAgICAgICAgICAgIGxldCB0YXJnZXRzID0gc3BlY2lmaWNUYXJn
ZXQgPyBbc3BlY2lmaWNUYXJnZXRdIDogV0kudGFyZ2V0czsKKyAgICAgICAgICAgIGxldCB0YXJn
ZXRzID0gdGFyZ2V0ID8gW3RhcmdldF0gOiBXSS50YXJnZXRzOwogICAgICAgICAgICAgZm9yIChs
ZXQgdGFyZ2V0IG9mIHRhcmdldHMpIHsKICAgICAgICAgICAgICAgICB0YXJnZXQuRGVidWdnZXJB
Z2VudC5zZXRCcmVha3BvaW50QnlVcmwuaW52b2tlKHsKICAgICAgICAgICAgICAgICAgICAgbGlu
ZU51bWJlcjogYnJlYWtwb2ludC5zb3VyY2VDb2RlTG9jYXRpb24ubGluZU51bWJlciwKQEAgLTk5
OSw3ICs5OTcsNyBAQCBXSS5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1Z2dlck1hbmFnZXIg
ZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYgKCFicmVha3BvaW50LmlkZW50aWZpZXIpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgZnVuY3Rpb24gZGlkUmVtb3ZlQnJlYWtwb2lu
dChlcnJvcikKKyAgICAgICAgZnVuY3Rpb24gZGlkUmVtb3ZlQnJlYWtwb2ludCh0YXJnZXQsIGVy
cm9yKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICAgICAg
Y29uc29sZS5lcnJvcihlcnJvcik7CkBAIC0xMDExLDE2ICsxMDA5LDE2IEBAIFdJLkRlYnVnZ2Vy
TWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAg
ICAgICAgLy8gRG9uJ3QgcmVzZXQgcmVzb2x2ZWQgaGVyZSBzaW5jZSB3ZSB3YW50IHRvIGtlZXAg
ZGlzYWJsZWQgYnJlYWtwb2ludHMgbG9va2luZyBsaWtlIHRoZXkKICAgICAgICAgICAgIC8vIGFy
ZSByZXNvbHZlZCBpbiB0aGUgdXNlciBpbnRlcmZhY2UuIFRoZXkgd2lsbCBnZXQgbWFya2VkIGFz
IHVucmVzb2x2ZWQgaW4gcmVzZXQuCiAKLSAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sg
PT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAg
IGlmIChjYWxsYmFjaykKKyAgICAgICAgICAgICAgICBjYWxsYmFjayh0YXJnZXQpOwogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKGJyZWFrcG9pbnQuY29udGVudElkZW50aWZpZXIpIHsKICAgICAg
ICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKQotICAgICAgICAgICAgICAgIHRh
cmdldC5EZWJ1Z2dlckFnZW50LnJlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludC5pZGVudGlmaWVy
LCBkaWRSZW1vdmVCcmVha3BvaW50LmJpbmQodGhpcykpOworICAgICAgICAgICAgICAgIHRhcmdl
dC5EZWJ1Z2dlckFnZW50LnJlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludC5pZGVudGlmaWVyLCBk
aWRSZW1vdmVCcmVha3BvaW50LmJpbmQodGhpcywgdGFyZ2V0KSk7CiAgICAgICAgIH0gZWxzZSBp
ZiAoYnJlYWtwb2ludC5zY3JpcHRJZGVudGlmaWVyKSB7CiAgICAgICAgICAgICBsZXQgdGFyZ2V0
ID0gYnJlYWtwb2ludC50YXJnZXQ7Ci0gICAgICAgICAgICB0YXJnZXQuRGVidWdnZXJBZ2VudC5y
ZW1vdmVCcmVha3BvaW50KGJyZWFrcG9pbnQuaWRlbnRpZmllciwgZGlkUmVtb3ZlQnJlYWtwb2lu
dC5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIHRhcmdldC5EZWJ1Z2dlckFnZW50LnJlbW92ZUJy
ZWFrcG9pbnQoYnJlYWtwb2ludC5pZGVudGlmaWVyLCBkaWRSZW1vdmVCcmVha3BvaW50LmJpbmQo
dGhpcywgdGFyZ2V0KSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEwMzQsMTAgKzEwMzIsMTAg
QEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0ku
T2JqZWN0CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gUmVtb3ZlIHRoZSBicmVh
a3BvaW50IHdpdGggaXRzIG9sZCBpZC4KLSAgICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtwb2ludChi
cmVha3BvaW50LCAoKSA9PiB7CisgICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnQoYnJlYWtw
b2ludCwgKHRhcmdldCkgPT4gewogICAgICAgICAgICAgLy8gQWRkIHRoZSBicmVha3BvaW50IGF0
IGl0cyBuZXcgbGluZU51bWJlciBhbmQgZ2V0IGEgbmV3IGlkLgogICAgICAgICAgICAgdGhpcy5f
cmVzdG9yaW5nQnJlYWtwb2ludHMgPSB0cnVlOwotICAgICAgICAgICAgdGhpcy5fc2V0QnJlYWtw
b2ludChicmVha3BvaW50KTsKKyAgICAgICAgICAgIHRoaXMuX3NldEJyZWFrcG9pbnQoYnJlYWtw
b2ludCwgdGFyZ2V0KTsKICAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmluZ0JyZWFrcG9pbnRzID0g
ZmFsc2U7CiAKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkRl
YnVnZ2VyTWFuYWdlci5FdmVudC5CcmVha3BvaW50TW92ZWQsIHticmVha3BvaW50fSk7CkBAIC0x
MTAxLDEwICsxMDk5LDEwIEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFu
YWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8v
IFJlbW92ZSB0aGUgYnJlYWtwb2ludCB3aXRoIGl0cyBvbGQgaWQuCi0gICAgICAgIHRoaXMuX3Jl
bW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgKCkgPT4geworICAgICAgICB0aGlzLl9yZW1vdmVC
cmVha3BvaW50KGJyZWFrcG9pbnQsICh0YXJnZXQpID0+IHsKICAgICAgICAgICAgIC8vIEFkZCB0
aGUgYnJlYWtwb2ludCB3aXRoIGl0cyBuZXcgcHJvcGVydGllcyBhbmQgZ2V0IGEgbmV3IGlkLgog
ICAgICAgICAgICAgdGhpcy5fcmVzdG9yaW5nQnJlYWtwb2ludHMgPSB0cnVlOwotICAgICAgICAg
ICAgdGhpcy5fc2V0QnJlYWtwb2ludChicmVha3BvaW50KTsKKyAgICAgICAgICAgIHRoaXMuX3Nl
dEJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdGFyZ2V0KTsKICAgICAgICAgICAgIHRoaXMuX3Jlc3Rv
cmluZ0JyZWFrcG9pbnRzID0gZmFsc2U7CiAgICAgICAgIH0pOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374655</attachid>
            <date>2019-07-22 16:57:50 -0700</date>
            <delta_ts>2019-07-22 20:45:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197034-20190722165748.patch</filename>
            <type>text/plain</type>
            <size>5483</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDRmOTVjNDhiMDNiMWM4MGQ2YmI1ZmMxZjlkZjBl
MjM4MTc5OWNhZjguLjQyYTYxMWQ3NmM1NGYxMWJlOGJhYTUxYmJkMmVkYjViNjFiYzk3NzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA3LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBV
bmNhdWdodCBFeGNlcHRpb246IEJyZWFrcG9pbnQgYXQgc3BlY2lmaWVkIGxvY2F0aW9uIGFscmVh
ZHkgZXhpc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk3MDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDA0OTAwND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuICJhZGp1c3RpbmciIGEg
YFdJLkJyZWFrcG9pbnRgIChlLmcuIHJlbW92aW5nIGFuZCB0aGVuIHJlLWFkZGluZyB3aXRoIGEg
ZGlmZmVyZW50CisgICAgICAgIGNvbmZpZ3VyYXRpb24pLCBtYWtlIHN1cmUgdG8gb25seSByZS1h
ZGQgdGhlIGBXSS5CcmVha3BvaW50YCB0byB0aGUgYFdJLlRhcmdldGAgaXQgd2FzIGp1c3QKKyAg
ICAgICAgcmVtb3ZlZCBmcm9tLCByYXRoZXIgdG8gYWxsIGBXSS50YXJnZXRzYC4KKworICAgICAg
ICBTaW5jZSB3ZSBpdGVyYXRlIG92ZXIgYFdJLnRhcmdldHNgIGluIGJvdGggYFdJLkRlYnVnZ2Vy
TWFuYWdlci5wcm90b3R5cGUuX3NldEJyZWFrcG9pbnRgIGFuZAorICAgICAgICBgV0kuRGVidWdn
ZXJNYW5hZ2VyLnByb3RvdHlwZS5fcmVtb3ZlQnJlYWtwb2ludGAsIHdlIGVuZGVkIHVwIGl0ZXJh
dGluZyBgV0kudGFyZ2V0c2AgdHdpY2UuCisKKyAgICAgICAgRWFjaCB0aW1lIHRoZSBgV0kuQnJl
YWtwb2ludGAgaXMgcmVtb3ZlZCBmcm9tIGEgYFdJLlRhcmdldGAsIHBhc3MgdGhlIGBXSS5UYXJn
ZXRgIHRvIHRoZQorICAgICAgICBgY2FsbGJhY2tgIGdpdmVuIHRvIGBXSS5EZWJ1Z2dlck1hbmFn
ZXIucHJvdG90eXBlLl9yZW1vdmVCcmVha3BvaW50YCwgc28gdGhhdCB0aGUgZXZlbnR1YWwKKyAg
ICAgICAgY2FsbCB0byBgV0kuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5fc2V0QnJlYWtwb2lu
dGAgY2FuIHJldXNlIGl0IGFzIHRoZSBgc3BlY2lmaWNUYXJnZXRgLAorICAgICAgICBpbnN0ZWFk
IG9mIGl0ZXJhdGluZyBgV0kudGFyZ2V0c2AgKG1lYW5pbmcgd2Ugb25seSBpdGVyYXRlIGl0IG9u
Y2UpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFn
ZXIuanM6CisgICAgICAgIChXSS5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLmFkZEJyZWFrcG9p
bnQpOgorICAgICAgICAoV0kuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5fcmVtb3ZlQnJlYWtw
b2ludC5kaWRSZW1vdmVCcmVha3BvaW50KToKKyAgICAgICAgKFdJLkRlYnVnZ2VyTWFuYWdlci5w
cm90b3R5cGUuX2JyZWFrcG9pbnREaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UpOgorICAgICAgICAo
V0kuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5fYnJlYWtwb2ludEVkaXRhYmxlUHJvcGVydHlE
aWRDaGFuZ2UpOgorCiAyMDE5LTA3LTIyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBMb2NhbGl6YXRpb246IGNoYW5nZSBmcHMgdG8gRlBTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dl
ck1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKaW5kZXggNDI3Njc5OWFjMDg1NzUxOWFjZWM2MGI3Nzg4
OWQ1ZGY2MDExZjczZC4uMGVjZDYwMWJkOTY4ZDE5NTM3OWU5YTU1OTBjMzc1MGIyYzA2YTQ4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvRGVidWdnZXJNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcwpAQCAtNDkwLDEwICs0OTAsOCBA
QCBXSS5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5P
YmplY3QKIAogICAgICAgICB0aGlzLl9icmVha3BvaW50cy5wdXNoKGJyZWFrcG9pbnQpOwogCi0g
ICAgICAgIGlmICghYnJlYWtwb2ludC5kaXNhYmxlZCkgewotICAgICAgICAgICAgY29uc3Qgc3Bl
Y2lmaWNUYXJnZXQgPSB1bmRlZmluZWQ7Ci0gICAgICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50
KGJyZWFrcG9pbnQsIHNwZWNpZmljVGFyZ2V0KTsKLSAgICAgICAgfQorICAgICAgICBpZiAoIWJy
ZWFrcG9pbnQuZGlzYWJsZWQpCisgICAgICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50KGJyZWFr
cG9pbnQpOwogCiAgICAgICAgIGlmICghdGhpcy5fcmVzdG9yaW5nQnJlYWtwb2ludHMpCiAgICAg
ICAgICAgICBXSS5vYmplY3RTdG9yZXMuYnJlYWtwb2ludHMucHV0T2JqZWN0KGJyZWFrcG9pbnQp
OwpAQCAtOTk5LDEwICs5OTcsMTIgQEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdn
ZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmICghYnJlYWtwb2ludC5pZGVu
dGlmaWVyKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGZ1bmN0aW9uIGRpZFJlbW92
ZUJyZWFrcG9pbnQoZXJyb3IpCisgICAgICAgIGZ1bmN0aW9uIGRpZFJlbW92ZUJyZWFrcG9pbnQo
dGFyZ2V0LCBlcnJvcikKICAgICAgICAgewotICAgICAgICAgICAgaWYgKGVycm9yKQotICAgICAg
ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOworICAgICAgICAgICAgaWYgKGVycm9yKSB7
CisgICAgICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJuYWxFcnJvcihlcnJvcik7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB0aGlzLl9icmVh
a3BvaW50SWRNYXAuZGVsZXRlKGJyZWFrcG9pbnQuaWRlbnRpZmllcik7CiAKQEAgLTEwMTEsMTYg
KzEwMTEsMTYgQEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAvLyBEb24ndCByZXNldCByZXNvbHZlZCBoZXJl
IHNpbmNlIHdlIHdhbnQgdG8ga2VlcCBkaXNhYmxlZCBicmVha3BvaW50cyBsb29raW5nIGxpa2Ug
dGhleQogICAgICAgICAgICAgLy8gYXJlIHJlc29sdmVkIGluIHRoZSB1c2VyIGludGVyZmFjZS4g
VGhleSB3aWxsIGdldCBtYXJrZWQgYXMgdW5yZXNvbHZlZCBpbiByZXNldC4KIAotICAgICAgICAg
ICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgICAgICBj
YWxsYmFjaygpOworICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNh
bGxiYWNrKHRhcmdldCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoYnJlYWtwb2ludC5jb250
ZW50SWRlbnRpZmllcikgewogICAgICAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdl
dHMpCi0gICAgICAgICAgICAgICAgdGFyZ2V0LkRlYnVnZ2VyQWdlbnQucmVtb3ZlQnJlYWtwb2lu
dChicmVha3BvaW50LmlkZW50aWZpZXIsIGRpZFJlbW92ZUJyZWFrcG9pbnQuYmluZCh0aGlzKSk7
CisgICAgICAgICAgICAgICAgdGFyZ2V0LkRlYnVnZ2VyQWdlbnQucmVtb3ZlQnJlYWtwb2ludChi
cmVha3BvaW50LmlkZW50aWZpZXIsIGRpZFJlbW92ZUJyZWFrcG9pbnQuYmluZCh0aGlzLCB0YXJn
ZXQpKTsKICAgICAgICAgfSBlbHNlIGlmIChicmVha3BvaW50LnNjcmlwdElkZW50aWZpZXIpIHsK
ICAgICAgICAgICAgIGxldCB0YXJnZXQgPSBicmVha3BvaW50LnRhcmdldDsKLSAgICAgICAgICAg
IHRhcmdldC5EZWJ1Z2dlckFnZW50LnJlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludC5pZGVudGlm
aWVyLCBkaWRSZW1vdmVCcmVha3BvaW50LmJpbmQodGhpcykpOworICAgICAgICAgICAgdGFyZ2V0
LkRlYnVnZ2VyQWdlbnQucmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50LmlkZW50aWZpZXIsIGRp
ZFJlbW92ZUJyZWFrcG9pbnQuYmluZCh0aGlzLCB0YXJnZXQpKTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtMTAzNCwxMCArMTAzNCwxMCBAQCBXSS5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1
Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICAvLyBSZW1vdmUgdGhlIGJyZWFrcG9pbnQgd2l0aCBpdHMgb2xkIGlkLgotICAgICAgICB0
aGlzLl9yZW1vdmVCcmVha3BvaW50KGJyZWFrcG9pbnQsICgpID0+IHsKKyAgICAgICAgdGhpcy5f
cmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50LCAodGFyZ2V0KSA9PiB7CiAgICAgICAgICAgICAv
LyBBZGQgdGhlIGJyZWFrcG9pbnQgYXQgaXRzIG5ldyBsaW5lTnVtYmVyIGFuZCBnZXQgYSBuZXcg
aWQuCiAgICAgICAgICAgICB0aGlzLl9yZXN0b3JpbmdCcmVha3BvaW50cyA9IHRydWU7Ci0gICAg
ICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50KGJyZWFrcG9pbnQpOworICAgICAgICAgICAgdGhp
cy5fc2V0QnJlYWtwb2ludChicmVha3BvaW50LCB0YXJnZXQpOwogICAgICAgICAgICAgdGhpcy5f
cmVzdG9yaW5nQnJlYWtwb2ludHMgPSBmYWxzZTsKIAogICAgICAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkJyZWFrcG9pbnRNb3Zl
ZCwge2JyZWFrcG9pbnR9KTsKQEAgLTExMDEsMTAgKzExMDEsMTAgQEAgV0kuRGVidWdnZXJNYW5h
Z2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgLy8gUmVtb3ZlIHRoZSBicmVha3BvaW50IHdpdGggaXRzIG9s
ZCBpZC4KLSAgICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50LCAoKSA9PiB7
CisgICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgKHRhcmdldCkgPT4g
ewogICAgICAgICAgICAgLy8gQWRkIHRoZSBicmVha3BvaW50IHdpdGggaXRzIG5ldyBwcm9wZXJ0
aWVzIGFuZCBnZXQgYSBuZXcgaWQuCiAgICAgICAgICAgICB0aGlzLl9yZXN0b3JpbmdCcmVha3Bv
aW50cyA9IHRydWU7Ci0gICAgICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50KGJyZWFrcG9pbnQp
OworICAgICAgICAgICAgdGhpcy5fc2V0QnJlYWtwb2ludChicmVha3BvaW50LCB0YXJnZXQpOwog
ICAgICAgICAgICAgdGhpcy5fcmVzdG9yaW5nQnJlYWtwb2ludHMgPSBmYWxzZTsKICAgICAgICAg
fSk7CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>