<?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>53072</bug_id>
          
          <creation_ts>2011-01-25 02:41:56 -0800</creation_ts>
          <short_desc>Web Inspector: evaluate in console may not work when window.console is substituted</short_desc>
          <delta_ts>2011-01-26 10:26:09 -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 (Deprecated)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>339560</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-25 02:41:56 -0800</bug_when>
    <thetext>Web Inspector: evaluate in console may not work when window.console is substituted

Initial bug - http://code.google.com/p/chromium/issues/detail?id=70629.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339561</commentid>
    <comment_count>1</comment_count>
      <attachid>80039</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-25 02:42:48 -0800</bug_when>
    <thetext>Created attachment 80039
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339587</commentid>
    <comment_count>2</comment_count>
      <attachid>80039</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-25 04:24:10 -0800</bug_when>
    <thetext>Comment on attachment 80039
Patch.

Can you provide a test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339590</commentid>
    <comment_count>3</comment_count>
      <attachid>80039</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-25 04:27:19 -0800</bug_when>
    <thetext>Comment on attachment 80039
Patch.

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

&gt; Source/WebCore/inspector/InjectedScriptSource.js:261
&gt; +        expression = &quot;with ((window &amp;&amp; window.console &amp;&amp; window.console._commandLineAPI) || {}) {\n&quot; + expression + &quot;\n}&quot;;

If .console is undefined then this method will fail at line 256 and not get here:

inspectedWindow.console._commandLineAPI = this._commandLineAPI;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339602</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-25 05:03:19 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 80039 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80039&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InjectedScriptSource.js:261
&gt; &gt; +        expression = &quot;with ((window &amp;&amp; window.console &amp;&amp; window.console._commandLineAPI) || {}) {\n&quot; + expression + &quot;\n}&quot;;
&gt; 
&gt; If .console is undefined then this method will fail at line 256 and not get here:
&gt; 
&gt; inspectedWindow.console._commandLineAPI = this._commandLineAPI;

Not undefined, but substituted. In any case this patch looks safe and fixes the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339640</commentid>
    <comment_count>5</comment_count>
      <attachid>80063</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-25 07:18:30 -0800</bug_when>
    <thetext>Created attachment 80063
Added test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339652</commentid>
    <comment_count>6</comment_count>
      <attachid>80063</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-25 08:01:51 -0800</bug_when>
    <thetext>Comment on attachment 80063
Added test.

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

&gt; LayoutTests/inspector/console-substituted.html:21
&gt; +    InspectorTest.evaluateInConsole(&quot;setTimeout(deleteConsole, 0)&quot;, step1);

Why do you need setTimeout here?

&gt; LayoutTests/inspector/console-substituted.html:31
&gt; +        InspectorTest.evaluateInConsole(&quot;setTimeout(substituteConsole, 0)&quot;, step3);

The same question for this call.

&gt; Source/WebCore/inspector/InjectedScriptSource.js:261
&gt; +            expression = &quot;with (window || {}) {\n&quot; + expression + &quot;\n} &quot;;

is there a real scenario when there are no window?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339654</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-25 08:08:26 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 80063 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80063&amp;action=review
&gt; 
&gt; &gt; LayoutTests/inspector/console-substituted.html:21
&gt; &gt; +    InspectorTest.evaluateInConsole(&quot;setTimeout(deleteConsole, 0)&quot;, step1);
&gt; 
&gt; Why do you need setTimeout here?
&gt; 
&gt; &gt; LayoutTests/inspector/console-substituted.html:31
&gt; &gt; +        InspectorTest.evaluateInConsole(&quot;setTimeout(substituteConsole, 0)&quot;, step3);
&gt; 
&gt; The same question for this call.
&gt; 
&gt; &gt; Source/WebCore/inspector/InjectedScriptSource.js:261
&gt; &gt; +            expression = &quot;with (window || {}) {\n&quot; + expression + &quot;\n} &quot;;
&gt; 
&gt; is there a real scenario when there are no window?

Sure, you may be inside a closure created in function with &quot;window&quot; argument, which is not used by that closure. In that case &quot;window&quot; will be undefined (v8 will drop it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340174</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-26 01:45:05 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 80063 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80063&amp;action=review
&gt; 
&gt; &gt; LayoutTests/inspector/console-substituted.html:21
&gt; &gt; +    InspectorTest.evaluateInConsole(&quot;setTimeout(deleteConsole, 0)&quot;, step1);
&gt; 
&gt; Why do you need setTimeout here?

Replaced with direct call.

&gt; 
&gt; &gt; LayoutTests/inspector/console-substituted.html:31
&gt; &gt; +        InspectorTest.evaluateInConsole(&quot;setTimeout(substituteConsole, 0)&quot;, step3);
&gt; 
&gt; The same question for this call.

Replaced with direct call.

&gt; 
&gt; &gt; Source/WebCore/inspector/InjectedScriptSource.js:261
&gt; &gt; +            expression = &quot;with (window || {}) {\n&quot; + expression + &quot;\n} &quot;;
&gt; 
&gt; is there a real scenario when there are no window?

Fixed. Since this is behind !isEvalOnCallFrame, there is probably no such scenario.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340175</commentid>
    <comment_count>9</comment_count>
      <attachid>80176</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-26 01:45:57 -0800</bug_when>
    <thetext>Created attachment 80176
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340182</commentid>
    <comment_count>10</comment_count>
      <attachid>80176</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-01-26 02:16:59 -0800</bug_when>
    <thetext>Comment on attachment 80176
Patch.

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

&gt; Source/WebCore/inspector/InjectedScriptSource.js:257
&gt; +            inspectedWindow.console._commandLineAPI = this._commandLineAPI;

Nit: defining non-enumerable property would be even better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340334</commentid>
    <comment_count>11</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-26 10:26:09 -0800</bug_when>
    <thetext>Committed r76699: &lt;http://trac.webkit.org/changeset/76699&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80039</attachid>
            <date>2011-01-25 02:42:48 -0800</date>
            <delta_ts>2011-01-25 07:18:30 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>1423</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZjE2NjI4Li4zMmE1MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDEtMjUgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZXZhbHVhdGUgaW4gY29uc29sZSBtYXkgbm90IHdvcmsgd2hlbiB3aW5kb3cuY29u
c29sZSBpcyBzdWJzdGl0dXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTMwNzIKKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNv
dXJjZS5qczoKKyAgICAgICAgKC4pOgorCiAyMDExLTAxLTI0ICBLZW50IFRhbXVyYSAgPHRrZW50
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5k
ZXggM2FhMjRhNi4uMzhmNDZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtMjU4LDcgKzI1OCw3IEBAIEluamVjdGVkU2NyaXB0
LnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCBsb2NhbCB2YXJpYWJsZXMg
dG8gYmUgc2hhZG93ZWQgYnkgZ2xvYmFsIG9uZXMgd2hlbiBldmFsdWF0aW5nIG9uIENhbGxGcmFt
ZS4KICAgICAgICAgaWYgKCFpc0V2YWxPbkNhbGxGcmFtZSkKICAgICAgICAgICAgIGV4cHJlc3Np
b24gPSAid2l0aCAod2luZG93KSB7XG4iICsgZXhwcmVzc2lvbiArICJcbn0gIjsKLSAgICAgICAg
ZXhwcmVzc2lvbiA9ICJ3aXRoICh3aW5kb3cgPyB3aW5kb3cuY29uc29sZS5fY29tbWFuZExpbmVB
UEkgOiB7fSkge1xuIiArIGV4cHJlc3Npb24gKyAiXG59IjsKKyAgICAgICAgZXhwcmVzc2lvbiA9
ICJ3aXRoICgod2luZG93ICYmIHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLl9jb21t
YW5kTGluZUFQSSkgfHwge30pIHtcbiIgKyBleHByZXNzaW9uICsgIlxufSI7CiAgICAgICAgIHZh
ciB2YWx1ZSA9IGV2YWxGdW5jdGlvbi5jYWxsKG9iamVjdCwgZXhwcmVzc2lvbik7CiAgICAgCiAg
ICAgICAgIGRlbGV0ZSBpbnNwZWN0ZWRXaW5kb3cuY29uc29sZS5fY29tbWFuZExpbmVBUEk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80063</attachid>
            <date>2011-01-25 07:18:30 -0800</date>
            <delta_ts>2011-01-26 01:45:57 -0800</delta_ts>
            <desc>Added test.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>4650</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NzFiY2YyLi5lMzcyYTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDEt
MjUgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZXZh
bHVhdGUgaW4gY29uc29sZSBtYXkgbm90IHdvcmsgd2hlbiB3aW5kb3cuY29uc29sZSBpcyBzdWJz
dGl0dXRlZCBvciBkZWxldGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTMwNzIKKworICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlLXN1YnN0aXR1
dGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUtc3Vi
c3RpdHV0ZWQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDEtMjQgIE1hY2llaiBTdGFjaG93aWFrICA8
bWpzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4u
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1zdWJzdGl0dXRlZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1zdWJzdGl0dXRlZC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E1NDA5Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLXN1YnN0aXR1
dGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3RzIHRoYXQgZXZhbHVhdGUgaW4g
Y29uc29sZSB3b3JrcyBldmVuIGlmIHdpbmRvdy5jb25zb2xlIGlzIHN1YnN0aXR1dGVkIG9yIGRl
bGV0ZWQuIEJ1ZyA1MzA3MgorCisxCisyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLXN1YnN0aXR1dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1zdWJzdGl0dXRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAu
LmI3MzdjODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS1zdWJzdGl0dXRlZC5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGRlbGV0ZUNvbnNvbGUoKQoreworICAgIHdpbmRv
dy5jb25zb2xlID0gdW5kZWZpbmVkOworfQorCitmdW5jdGlvbiBzdWJzdGl0dXRlQ29uc29sZSgp
Cit7CisgICAgd2luZG93LmNvbnNvbGUgPSB7CisgICAgICAgIGdldCBfY29tbWFuZExpbmVBUEko
KSB7IHJldHVybiB1bmRlZmluZWQ7IH0sCisgICAgICAgIHNldCBfY29tbWFuZExpbmVBUEkoKSB7
fQorICAgIH07Cit9CisKK3ZhciB0ZXN0ID0gZnVuY3Rpb24oKQoreworICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJbkNvbnNvbGUoInNldFRpbWVvdXQoZGVsZXRlQ29uc29sZSwgMCkiLCBzdGVw
MSk7CisKKyAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5Db25zb2xlKCIxIiwgc3RlcDIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
ZXAyKHJlc3VsdCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlc3Vs
dCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoInNldFRpbWVvdXQo
c3Vic3RpdHV0ZUNvbnNvbGUsIDApIiwgc3RlcDMpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
ZXAzKHJlc3VsdCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNv
bGUoIjIiLCBzdGVwNCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDQocmVzdWx0KQorICAg
IHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVzdWx0KTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFk
PgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRoYXQgZXZhbHVhdGUg
aW4gY29uc29sZSB3b3JrcyBldmVuIGlmIHdpbmRvdy5jb25zb2xlIGlzIHN1YnN0aXR1dGVkIG9y
IGRlbGV0ZWQuCis8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTMwNzIiPkJ1ZyA1MzA3MjwvYT4KKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDZiNDEyYWIuLjRlYWZlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
MS0wMS0yNSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBldmFsdWF0ZSBpbiBjb25zb2xlIG1heSBub3Qgd29yayB3aGVuIHdpbmRvdy5jb25zb2xlIGlz
IHN1YnN0aXR1dGVkIG9yIGRlbGV0ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MzA3MgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9jb25zb2xl
LXN1YnN0aXR1dGVkLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNv
dXJjZS5qczoKKyAgICAgICAgKC4pOgorCiAyMDExLTAxLTI0ICBQYXZlbCBQb2Rpdmlsb3YgIDxw
b2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRt
YW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRT
b3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anMKaW5kZXggM2FhMjRhNi4uNmQ3MDg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtMjUzLDE1ICsyNTMsMTcgQEAgSW5qZWN0
ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICAvLyBPbmx5IGluc3RhbGwgY29tbWFuZCBs
aW5lIGFwaSBvYmplY3QgZm9yIHRoZSB0aW1lIG9mIGV2YWx1YXRpb24uCiAgICAgICAgIC8vIFN1
cnJvdW5kIHRoZSBleHByZXNzaW9uIGluIHdpdGggc3RhdGVtZW50cyB0byBpbmplY3Qgb3VyIGNv
bW1hbmQgbGluZSBBUEkgc28gdGhhdAogICAgICAgICAvLyB0aGUgd2luZG93IG9iamVjdCBwcm9w
ZXJ0aWVzIHN0aWxsIHRha2UgbW9yZSBwcmVjZWRlbnQgdGhhbiBvdXIgQVBJIGZ1bmN0aW9ucy4K
LSAgICAgICAgaW5zcGVjdGVkV2luZG93LmNvbnNvbGUuX2NvbW1hbmRMaW5lQVBJID0gdGhpcy5f
Y29tbWFuZExpbmVBUEk7CisgICAgICAgIGlmIChpbnNwZWN0ZWRXaW5kb3cuY29uc29sZSkKKyAg
ICAgICAgICAgIGluc3BlY3RlZFdpbmRvdy5jb25zb2xlLl9jb21tYW5kTGluZUFQSSA9IHRoaXMu
X2NvbW1hbmRMaW5lQVBJOwogICAgIAogICAgICAgICAvLyBXZSBkb24ndCB3YW50IGxvY2FsIHZh
cmlhYmxlcyB0byBiZSBzaGFkb3dlZCBieSBnbG9iYWwgb25lcyB3aGVuIGV2YWx1YXRpbmcgb24g
Q2FsbEZyYW1lLgogICAgICAgICBpZiAoIWlzRXZhbE9uQ2FsbEZyYW1lKQotICAgICAgICAgICAg
ZXhwcmVzc2lvbiA9ICJ3aXRoICh3aW5kb3cpIHtcbiIgKyBleHByZXNzaW9uICsgIlxufSAiOwot
ICAgICAgICBleHByZXNzaW9uID0gIndpdGggKHdpbmRvdyA/IHdpbmRvdy5jb25zb2xlLl9jb21t
YW5kTGluZUFQSSA6IHt9KSB7XG4iICsgZXhwcmVzc2lvbiArICJcbn0iOworICAgICAgICAgICAg
ZXhwcmVzc2lvbiA9ICJ3aXRoICh3aW5kb3cgfHwge30pIHtcbiIgKyBleHByZXNzaW9uICsgIlxu
fSAiOworICAgICAgICBleHByZXNzaW9uID0gIndpdGggKCh3aW5kb3cgJiYgd2luZG93LmNvbnNv
bGUgJiYgd2luZG93LmNvbnNvbGUuX2NvbW1hbmRMaW5lQVBJKSB8fCB7fSkge1xuIiArIGV4cHJl
c3Npb24gKyAiXG59IjsKICAgICAgICAgdmFyIHZhbHVlID0gZXZhbEZ1bmN0aW9uLmNhbGwob2Jq
ZWN0LCBleHByZXNzaW9uKTsKICAgICAKLSAgICAgICAgZGVsZXRlIGluc3BlY3RlZFdpbmRvdy5j
b25zb2xlLl9jb21tYW5kTGluZUFQSTsKKyAgICAgICAgaWYgKGluc3BlY3RlZFdpbmRvdy5jb25z
b2xlKQorICAgICAgICAgICAgZGVsZXRlIGluc3BlY3RlZFdpbmRvdy5jb25zb2xlLl9jb21tYW5k
TGluZUFQSTsKICAgICAKICAgICAgICAgLy8gV2hlbiBldmFsdWF0aW5nIG9uIGNhbGwgZnJhbWUg
ZXJyb3IgaXMgbm90IHRocm93biwgYnV0IHJldHVybmVkIGFzIGEgdmFsdWUuCiAgICAgICAgIGlm
ICh0aGlzLl90eXBlKHZhbHVlKSA9PT0gImVycm9yIikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80176</attachid>
            <date>2011-01-26 01:45:57 -0800</date>
            <delta_ts>2011-01-26 02:16:59 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>4552</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxY2FhZjkzLi42ODNhY2M4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDEt
MjUgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZXZh
bHVhdGUgaW4gY29uc29sZSBtYXkgbm90IHdvcmsgd2hlbiB3aW5kb3cuY29uc29sZSBpcyBzdWJz
dGl0dXRlZCBvciBkZWxldGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTMwNzIKKworICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlLXN1YnN0aXR1
dGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUtc3Vi
c3RpdHV0ZWQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDEtMjUgIEtlbnQgVGFtdXJhICA8dGtlbnRA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb24gdXBk
YXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtc3Vic3RpdHV0
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtc3Vic3RpdHV0
ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhNTQw
OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1zdWJz
dGl0dXRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IGV2YWx1YXRl
IGluIGNvbnNvbGUgd29ya3MgZXZlbiBpZiB3aW5kb3cuY29uc29sZSBpcyBzdWJzdGl0dXRlZCBv
ciBkZWxldGVkLiBCdWcgNTMwNzIKKworMQorMgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS1zdWJzdGl0dXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtc3Vic3RpdHV0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwLi44MDUzMWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUtc3Vic3RpdHV0ZWQuaHRtbApAQCAtMCwwICsxLDU2IEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Mi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBkZWxldGVDb25zb2xlKCkKK3sKKyAgICB3
aW5kb3cuY29uc29sZSA9IHVuZGVmaW5lZDsKK30KKworZnVuY3Rpb24gc3Vic3RpdHV0ZUNvbnNv
bGUoKQoreworICAgIHdpbmRvdy5jb25zb2xlID0geworICAgICAgICBnZXQgX2NvbW1hbmRMaW5l
QVBJKCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9LAorICAgICAgICBzZXQgX2NvbW1hbmRMaW5lQVBJ
KCkge30KKyAgICB9OworfQorCit2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJkZWxldGVDb25zb2xlKCkiLCBzdGVwMSk7CisKKyAg
ICBmdW5jdGlvbiBzdGVwMSgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5Db25zb2xlKCIxIiwgc3RlcDIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAyKHJlc3Vs
dCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlc3VsdCk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoInN1YnN0aXR1dGVDb25zb2xlKCki
LCBzdGVwMyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDMocmVzdWx0KQorICAgIHsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgiMiIsIHN0ZXA0KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwNChyZXN1bHQpCisgICAgeworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdChyZXN1bHQpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxwPgorVGVzdHMgdGhhdCBldmFsdWF0ZSBpbiBjb25zb2xlIHdvcmtzIGV2ZW4g
aWYgd2luZG93LmNvbnNvbGUgaXMgc3Vic3RpdHV0ZWQgb3IgZGVsZXRlZC4KKzxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzA3MiI+QnVnIDUzMDcyPC9h
PgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNjZWQxMy4uZWE1MDZk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTAxLTI1ICBQYXZlbCBQb2Rpdmls
b3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV2YWx1YXRlIGluIGNvbnNvbGUg
bWF5IG5vdCB3b3JrIHdoZW4gd2luZG93LmNvbnNvbGUgaXMgc3Vic3RpdHV0ZWQgb3IgZGVsZXRl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMDcy
CisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2NvbnNvbGUtc3Vic3RpdHV0ZWQuaHRtbAorCisg
ICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgorICAgICAgICAoLik6
CisKIDIwMTEtMDEtMjUgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXaW5kb3dzIHByb2R1Y3Rpb24gYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4IDNhYTI0YTYuLjBiYzFh
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNv
dXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3Vy
Y2UuanMKQEAgLTI1MywxNSArMjUzLDE3IEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgLy8gT25seSBpbnN0YWxsIGNvbW1hbmQgbGluZSBhcGkgb2JqZWN0IGZvciB0aGUg
dGltZSBvZiBldmFsdWF0aW9uLgogICAgICAgICAvLyBTdXJyb3VuZCB0aGUgZXhwcmVzc2lvbiBp
biB3aXRoIHN0YXRlbWVudHMgdG8gaW5qZWN0IG91ciBjb21tYW5kIGxpbmUgQVBJIHNvIHRoYXQK
ICAgICAgICAgLy8gdGhlIHdpbmRvdyBvYmplY3QgcHJvcGVydGllcyBzdGlsbCB0YWtlIG1vcmUg
cHJlY2VkZW50IHRoYW4gb3VyIEFQSSBmdW5jdGlvbnMuCi0gICAgICAgIGluc3BlY3RlZFdpbmRv
dy5jb25zb2xlLl9jb21tYW5kTGluZUFQSSA9IHRoaXMuX2NvbW1hbmRMaW5lQVBJOworICAgICAg
ICBpZiAoaW5zcGVjdGVkV2luZG93LmNvbnNvbGUpCisgICAgICAgICAgICBpbnNwZWN0ZWRXaW5k
b3cuY29uc29sZS5fY29tbWFuZExpbmVBUEkgPSB0aGlzLl9jb21tYW5kTGluZUFQSTsKICAgICAK
ICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCBsb2NhbCB2YXJpYWJsZXMgdG8gYmUgc2hhZG93ZWQg
YnkgZ2xvYmFsIG9uZXMgd2hlbiBldmFsdWF0aW5nIG9uIENhbGxGcmFtZS4KICAgICAgICAgaWYg
KCFpc0V2YWxPbkNhbGxGcmFtZSkKICAgICAgICAgICAgIGV4cHJlc3Npb24gPSAid2l0aCAod2lu
ZG93KSB7XG4iICsgZXhwcmVzc2lvbiArICJcbn0gIjsKLSAgICAgICAgZXhwcmVzc2lvbiA9ICJ3
aXRoICh3aW5kb3cgPyB3aW5kb3cuY29uc29sZS5fY29tbWFuZExpbmVBUEkgOiB7fSkge1xuIiAr
IGV4cHJlc3Npb24gKyAiXG59IjsKKyAgICAgICAgZXhwcmVzc2lvbiA9ICJ3aXRoICgod2luZG93
ICYmIHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLl9jb21tYW5kTGluZUFQSSkgfHwg
e30pIHtcbiIgKyBleHByZXNzaW9uICsgIlxufSI7CiAgICAgICAgIHZhciB2YWx1ZSA9IGV2YWxG
dW5jdGlvbi5jYWxsKG9iamVjdCwgZXhwcmVzc2lvbik7CiAgICAgCi0gICAgICAgIGRlbGV0ZSBp
bnNwZWN0ZWRXaW5kb3cuY29uc29sZS5fY29tbWFuZExpbmVBUEk7CisgICAgICAgIGlmIChpbnNw
ZWN0ZWRXaW5kb3cuY29uc29sZSkKKyAgICAgICAgICAgIGRlbGV0ZSBpbnNwZWN0ZWRXaW5kb3cu
Y29uc29sZS5fY29tbWFuZExpbmVBUEk7CiAgICAgCiAgICAgICAgIC8vIFdoZW4gZXZhbHVhdGlu
ZyBvbiBjYWxsIGZyYW1lIGVycm9yIGlzIG5vdCB0aHJvd24sIGJ1dCByZXR1cm5lZCBhcyBhIHZh
bHVlLgogICAgICAgICBpZiAodGhpcy5fdHlwZSh2YWx1ZSkgPT09ICJlcnJvciIpCg==
</data>
<flag name="review"
          id="71643"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>