<?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>135396</bug_id>
          
          <creation_ts>2014-07-29 15:30:45 -0700</creation_ts>
          <short_desc>Web Inspector: breakpoints are always speculatively resolved when restored from local storage</short_desc>
          <delta_ts>2014-07-30 09:50:07 -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>528+ (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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>135367</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</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>1025566</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-07-29 15:30:45 -0700</bug_when>
    <thetext>A long-time quirk/optimization in the frontend is that we immediately set a breakpoint as resolved if the breakpoint was successfully set in the backend. The purpose of this is to make clicking in the gutter immediately produce a resolved breakpoint, rather than waiting for several round trips (perceived as lag).

However, the logic is wrong such that any breakpoint that is set via DebuggerManager.addBreakpoint will be speculatively resolved, even if its corresponding source code has never been loaded. This can cause problems for later code that assumes a resolved breakpoint also has a valid sourceCodeLocation.sourceCode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025568</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-07-29 15:33:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/17848753&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025587</commentid>
    <comment_count>2</comment_count>
      <attachid>235707</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-07-29 15:56:49 -0700</bug_when>
    <thetext>Created attachment 235707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025640</commentid>
    <comment_count>3</comment_count>
      <attachid>235707</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-29 20:49:11 -0700</bug_when>
    <thetext>Comment on attachment 235707
Patch

Clearing flags on attachment: 235707

Committed r171784: &lt;http://trac.webkit.org/changeset/171784&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025641</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-29 20:49:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025658</commentid>
    <comment_count>5</comment_count>
      <attachid>235707</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-29 21:24:55 -0700</bug_when>
    <thetext>Comment on attachment 235707
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:257
&gt; +        function speculativelyResolveBreakpoint(breakpoint) {
&gt; +            breakpoint.resolved = true;
&gt; +        }
&gt; +
&gt;          if (!breakpoint.disabled)
&gt; -            this._setBreakpoint(breakpoint);
&gt; +            this._setBreakpoint(breakpoint, shouldSpeculativelyResolve ? speculativelyResolveBreakpoint.bind(null, breakpoint) : null);

I think we can improve this.

The _setBreakpoint callback should be passed the breakpoint, so that we aren&apos;t creating all this bound functions.

    function speculativelyResolveBreakpoint(breakpoint) {
        breakpoint.resolved = true;
    }

    this._setBreakpoint(breakpoint, shouldSpeculativelyResolve ? speculativelyResolveBrekapoint : null);

&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:548
&gt; +            for (var location of locations)
&gt; +                this.breakpointResolved(breakpointIdentifier, location);
&gt;  
&gt;              if (typeof callback === &quot;function&quot;)
&gt;                  callback();

And here, callback would pass the breakpoint:

    callback(breakpoint);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025726</commentid>
    <comment_count>6</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-07-30 09:50:07 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 235707 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=235707&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:257
&gt; &gt; +        function speculativelyResolveBreakpoint(breakpoint) {
&gt; &gt; +            breakpoint.resolved = true;
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt;          if (!breakpoint.disabled)
&gt; &gt; -            this._setBreakpoint(breakpoint);
&gt; &gt; +            this._setBreakpoint(breakpoint, shouldSpeculativelyResolve ? speculativelyResolveBreakpoint.bind(null, breakpoint) : null);
&gt; 
&gt; I think we can improve this.
&gt; 
&gt; The _setBreakpoint callback should be passed the breakpoint, so that we aren&apos;t creating all this bound functions.
&gt; 
&gt;     function speculativelyResolveBreakpoint(breakpoint) {
&gt;         breakpoint.resolved = true;
&gt;     }
&gt; 
&gt;     this._setBreakpoint(breakpoint, shouldSpeculativelyResolve ? speculativelyResolveBrekapoint : null);
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:548
&gt; &gt; +            for (var location of locations)
&gt; &gt; +                this.breakpointResolved(breakpointIdentifier, location);
&gt; &gt;  
&gt; &gt;              if (typeof callback === &quot;function&quot;)
&gt; &gt;                  callback();
&gt; 
&gt; And here, callback would pass the breakpoint:
&gt; 
&gt;     callback(breakpoint);

I was going to go full-blown promises here since this code doesn&apos;t handle errors well, but I&apos;m trying to restrain myself from allocation and command optimizations until we have some useful profiling data.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235707</attachid>
            <date>2014-07-29 15:56:49 -0700</date>
            <delta_ts>2014-07-29 21:24:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135396-20140729155610.patch</filename>
            <type>text/plain</type>
            <size>5989</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxNzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3
NTdkODJmY2Y2MDUwODNjNDQ3ZDVmMmFhMGEwMTcxY2ZjZjNjMTIyLi4xZGJhMDc1NTU0NDg3YWQ5
NDg4YjU1ZTY1YTEzZDgwNjZhMWM3NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxNC0wNy0yOSAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYnJlYWtwb2ludHMgYXJlIGFsd2F5cyBz
cGVjdWxhdGl2ZWx5IHJlc29sdmVkIHdoZW4gcmVzdG9yZWQgZnJvbSBsb2NhbCBzdG9yYWdlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUzOTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIGxvbmdzdGFu
ZGluZyBxdWlyay9vcHRpbWl6YXRpb24gaW4gdGhlIGZyb250ZW5kIGlzIHRoYXQgd2UgaW1tZWRp
YXRlbHkgc2V0IGEgYnJlYWtwb2ludAorICAgICAgICBhcyByZXNvbHZlZCBpZiB0aGUgYnJlYWtw
b2ludCB3YXMgc3VjY2Vzc2Z1bGx5IHNldCBpbiB0aGUgYmFja2VuZC4gVGhpcyBlbnN1cmVzIHRo
YXQgY2xpY2tpbmcgaW4KKyAgICAgICAgdGhlIGd1dHRlciBpbW1lZGlhdGVseSBwcm9kdWNlcyBh
IHJlc29sdmVkIGJyZWFrcG9pbnQgd2l0aCBvbmx5IG9uZSByb3VuZC10cmlwLgorCisgICAgICAg
IEhvd2V2ZXIsIG5vdCBhbGwgYnJlYWtwb2ludHMgc2hvdWxkIGJlIHNwZWN1bGF0aXZlbHkgcmVz
b2x2ZWQsIGJlY2F1c2UgdGhlIGNvcnJlc3BvbmRpbmcgcmVzb3VyY2UKKyAgICAgICAgbWF5IG5v
dCBiZSBsb2FkZWQgeWV0LiBUaGlzIHNpdHVhdGlvbiBjYXVzZXMgcHJvYmxlbXMgZm9yIGNvZGUg
dGhhdCBhc3N1bWVzIGEgcmVzb2x2ZWQgYnJlYWtwb2ludAorICAgICAgICBhbHNvIGhhcyBhIHZh
bGlkIHNvdXJjZUNvZGVMb2NhdGlvbi5zb3VyY2VDb2RlLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJNYW5hZ2VyLnJlc3RvcmVCcmVha3BvaW50c1Nvb24pOiBEb24ndCBsZWFrIHRo
ZSB2YXJpYWJsZSB0byBnbG9iYWwgc2NvcGUuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90
eXBlLnNwZWN1bGF0aXZlbHlSZXNvbHZlQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5hZGRCcmVha3BvaW50KTogU3BlY3VsYXRpdmVs
eSByZXNvbHZlIGhlcmUgaWYgcmVxdWVzdGVkCisgICAgICAgIHVzaW5nIHRoZSBzdWNjZXNzIGNh
bGxiYWNrIHBhc3NlZCB0byBfc2V0QnJlYWtwb2ludC4KKworICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuZGlkU2V0QnJlYWtwb2ludCk6IEVtaXQgc2ltdWxh
dGVkCisgICAgICAgIERlYnVnZ2VyLmJyZWFrcG9pbnRSZXNvbHZlZCBldmVudHMgc2luY2UgdGhl
eSBhcmUgb25seSBzZW50IGJ5IHRoZSBiYWNrZW5kIHdoZW4gYSBzY3JpcHQgaXMgcGFyc2VkLgor
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5fc2V0QnJl
YWtwb2ludCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4dEVk
aXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90
b3R5cGUudGV4dEVkaXRvckJyZWFrcG9pbnRBZGRlZCk6IFJlcXVlc3Qgc3BlY3VsYXRpdmUgcmVz
b2x2ZS4KKwogMjAxNC0wNy0yOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERpc2FibGUgQ29weSBSb3cgaW4gVGltZWxpbmVz
IERhdGFHcmlkcywgaXQgZG9lcyBub3QgY3VycmVudGx5IHByb3ZpZGUgdmFsdWUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVn
Z2VyTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcwppbmRleCBlNjVhYWMxYjViMzNkZWQ1ZjczMTZiYzFi
ZDJjMWRlODM4OTAxMzc0Li5kYmQxZjFkNGQ0N2IwZWRkMWI5ZGQ0M2M4ODFhNGI0ZmIzM2JmOTg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzCkBAIC02Nyw3ICs2Nyw3IEBA
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fdXBk
YXRlQnJlYWtPbkV4Y2VwdGlvbnNTdGF0ZSgpOwogCiAgICAgZnVuY3Rpb24gcmVzdG9yZUJyZWFr
cG9pbnRzU29vbigpIHsKLSAgICAgICAgZm9yIChjb29raWUgb2YgdGhpcy5fYnJlYWtwb2ludHNT
ZXR0aW5nLnZhbHVlKQorICAgICAgICBmb3IgKHZhciBjb29raWUgb2YgdGhpcy5fYnJlYWtwb2lu
dHNTZXR0aW5nLnZhbHVlKQogICAgICAgICAgICAgdGhpcy5hZGRCcmVha3BvaW50KG5ldyBXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludChjb29raWUpKTsKICAgICB9CiAKQEAgLTIyNyw3ICsyMjcsNyBA
QCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgRGVi
dWdnZXJBZ2VudC5jb250aW51ZVRvTG9jYXRpb24oe3NjcmlwdElkOiBzY3JpcHRJZGVudGlmaWVy
LCBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6IGNvbHVtbk51bWJlcn0pOwog
ICAgIH0sCiAKLSAgICBhZGRCcmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50LCBza2lwRXZl
bnREaXNwYXRjaCkKKyAgICBhZGRCcmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50LCBza2lw
RXZlbnREaXNwYXRjaCwgc2hvdWxkU3BlY3VsYXRpdmVseVJlc29sdmUpCiAgICAgewogICAgICAg
ICBjb25zb2xlLmFzc2VydChicmVha3BvaW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnQsICJCYWQgYXJndW1lbnQgdG8gRGVidWdnZXJNYW5nZXIuYWRkQnJlYWtwb2ludDogIiwg
YnJlYWtwb2ludCk7CiAgICAgICAgIGlmICghYnJlYWtwb2ludCkKQEAgLTI0OSw4ICsyNDksMTIg
QEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUgPSB7CiAKICAgICAgICAg
dGhpcy5fYnJlYWtwb2ludHMucHVzaChicmVha3BvaW50KTsKIAorICAgICAgICBmdW5jdGlvbiBz
cGVjdWxhdGl2ZWx5UmVzb2x2ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCkgeworICAgICAgICAgICAg
YnJlYWtwb2ludC5yZXNvbHZlZCA9IHRydWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoIWJy
ZWFrcG9pbnQuZGlzYWJsZWQpCi0gICAgICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50KGJyZWFr
cG9pbnQpOworICAgICAgICAgICAgdGhpcy5fc2V0QnJlYWtwb2ludChicmVha3BvaW50LCBzaG91
bGRTcGVjdWxhdGl2ZWx5UmVzb2x2ZSA/IHNwZWN1bGF0aXZlbHlSZXNvbHZlQnJlYWtwb2ludC5i
aW5kKG51bGwsIGJyZWFrcG9pbnQpIDogbnVsbCk7CiAKICAgICAgICAgaWYgKCFza2lwRXZlbnRE
aXNwYXRjaCkKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQnJlYWtwb2ludEFkZGVkLCB7YnJlYWtwb2lu
dDogYnJlYWtwb2ludH0pOwpAQCAtNTI0LDcgKzUyOCw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICAvLyBhIG11bHRpLXN0ZXAgcHJvY2VzcyBm
b3IgdGhlIHVzZXIgdGhhdCBjYW4gYmUgY29uZnVzaW5nLgogICAgICAgICB0aGlzLmJyZWFrcG9p
bnRzRW5hYmxlZCA9IHRydWU7CiAKLSAgICAgICAgZnVuY3Rpb24gZGlkU2V0QnJlYWtwb2ludChl
cnJvciwgYnJlYWtwb2ludElkZW50aWZpZXIpCisgICAgICAgIGZ1bmN0aW9uIGRpZFNldEJyZWFr
cG9pbnQoZXJyb3IsIGJyZWFrcG9pbnRJZGVudGlmaWVyLCBsb2NhdGlvbnMpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC01MzIs
NyArNTM2LDEzIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludElkTWFwW2JyZWFrcG9pbnRJZGVudGlmaWVyXSA9
IGJyZWFrcG9pbnQ7CiAKICAgICAgICAgICAgIGJyZWFrcG9pbnQuaWRlbnRpZmllciA9IGJyZWFr
cG9pbnRJZGVudGlmaWVyOwotICAgICAgICAgICAgYnJlYWtwb2ludC5yZXNvbHZlZCA9IHRydWU7
CisKKyAgICAgICAgICAgIC8vIERlYnVnZ2VyLnNldEJyZWFrcG9pbnQgcmV0dXJucyBhIHNpbmds
ZSBsb2NhdGlvbi4KKyAgICAgICAgICAgIGlmICghKGxvY2F0aW9ucyBpbnN0YW5jZW9mIEFycmF5
KSkKKyAgICAgICAgICAgICAgICBsb2NhdGlvbnMgPSBbbG9jYXRpb25zXTsKKworICAgICAgICAg
ICAgZm9yICh2YXIgbG9jYXRpb24gb2YgbG9jYXRpb25zKQorICAgICAgICAgICAgICAgIHRoaXMu
YnJlYWtwb2ludFJlc29sdmVkKGJyZWFrcG9pbnRJZGVudGlmaWVyLCBsb2NhdGlvbik7CiAKICAg
ICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICJmdW5jdGlvbiIpCiAgICAgICAgICAg
ICAgICAgY2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3IuanMKaW5kZXgg
ZmY1OWJmOWY5YWQyYjU4MmNmZGFiNDhkNWI3OGI0ZDFmMjhhMDI1My4uYTlmYjcxZDMxMDUyZDUy
NmEzNDExNzNhZGY1ZTljMzk3ODY5YjRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3IuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0
b3IuanMKQEAgLTgzOSw3ICs4MzksMTAgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUZXh0RWRp
dG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fYWRkQnJlYWtwb2ludFdpdGhFZGl0b3JM
aW5lSW5mbyhicmVha3BvaW50LCBsaW5lSW5mbyk7CiAKICAgICAgICAgdGhpcy5faWdub3JlQnJl
YWtwb2ludEFkZGVkQnJlYWtwb2ludCA9IGJyZWFrcG9pbnQ7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIuYWRkQnJlYWtwb2ludChicmVha3BvaW50KTsKKworICAgICAgICB2
YXIgc2hvdWxkU2tpcEV2ZW50RGlzcGF0Y2ggPSBmYWxzZTsKKyAgICAgICAgdmFyIHNob3VsZFNw
ZWN1bGF0aXZlbHlSZXNvbHZlQnJlYWtwb2ludCA9IHRydWU7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIuYWRkQnJlYWtwb2ludChicmVha3BvaW50LCBzaG91bGRTa2lwRXZl
bnREaXNwYXRjaCwgc2hvdWxkU3BlY3VsYXRpdmVseVJlc29sdmVCcmVha3BvaW50KTsKICAgICAg
ICAgZGVsZXRlIHRoaXMuX2lnbm9yZUJyZWFrcG9pbnRBZGRlZEJyZWFrcG9pbnQ7CiAKICAgICAg
ICAgLy8gUmV0dXJuIHRoZSBtb3JlIGFjY3VyYXRlIGxvY2F0aW9uIGFuZCBicmVha3BvaW50IGlu
Zm8uCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>