<?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>33523</bug_id>
          
          <creation_ts>2010-01-12 00:29:26 -0800</creation_ts>
          <short_desc>[V8]  Support injection of inspector scripts into the inspected context</short_desc>
          <delta_ts>2010-01-12 04:42:17 -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>
          
          <blocked>32554</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>pfeldman</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>179716</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-01-12 00:29:26 -0800</bug_when>
    <thetext>Part of Web Inspector is implemented in JavaScript and needs direct access to
the inspected JS objects. To facilitate this there should be a way to compile
the inspector utilities(called injected script) in the global scope of the
inspected ScriptState and somehow store a reference to it(we need to keep the
reference since the injected script keeps some state related to the inspected
DOM, CSS styles and JS objects).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179717</commentid>
    <comment_count>1</comment_count>
      <attachid>46347</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-01-12 00:46:12 -0800</bug_when>
    <thetext>Created attachment 46347
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179718</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-12 00:50:11 -0800</bug_when>
    <thetext>Attachment 46347 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/182350</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179722</commentid>
    <comment_count>3</comment_count>
      <attachid>46349</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-01-12 01:23:46 -0800</bug_when>
    <thetext>Created attachment 46349
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179740</commentid>
    <comment_count>4</comment_count>
      <attachid>46349</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-01-12 01:53:28 -0800</bug_when>
    <thetext>Comment on attachment 46349
patch

&gt; +    // Create a weak reference to the v8 wrapper of InspectorBackend to deref
&gt; +    // InspectorBackend when the wrapper is garbage collected.

InspectorBackend?

&gt; +    // Call custom code to create inspector backend wrapper in the utility context

inspector backend wrapper ?

&gt; +    ASSERT(!v.IsEmpty());
&gt; +    ASSERT(v-&gt;IsFunction());
&gt; +

So this script source should evaluate into function? Could you on comment why it is so?

Otherwise looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179761</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-01-12 02:50:06 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 46349 [details])
&gt; &gt; +    // Create a weak reference to the v8 wrapper of InspectorBackend to deref
&gt; &gt; +    // InspectorBackend when the wrapper is garbage collected.
&gt; 
&gt; InspectorBackend?
&gt; 
Done. Changed to InjectedScriptHost.

&gt; &gt; +    // Call custom code to create inspector backend wrapper in the utility context
&gt; 
&gt; inspector backend wrapper ?
&gt; 
Fixed.

&gt; &gt; +    ASSERT(!v.IsEmpty());
&gt; &gt; +    ASSERT(v-&gt;IsFunction());
&gt; &gt; +
&gt; 
&gt; So this script source should evaluate into function? Could you on comment why
&gt; it is so?
&gt;
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179791</commentid>
    <comment_count>6</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-01-12 04:42:17 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
Committed r53135</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46347</attachid>
            <date>2010-01-12 00:46:12 -0800</date>
            <delta_ts>2010-01-12 01:23:46 -0800</delta_ts>
            <desc>patch</desc>
            <filename>injected-script-factory-v8.patch</filename>
            <type>text/plain</type>
            <size>5664</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWQ4YjU2MC4uNmI1OTVkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxMC0wMS0xMiAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGluamVjdGlvbiBvZiBpbnNwZWN0b3Igc2NyaXB0
cyBpbnRvIHRoZSBpbnNwZWN0ZWQgY29udGV4dC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM1MjMKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWFrUmVmZXJlbmNlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSW5qZWN0ZWRT
Y3JpcHRIb3N0VjhXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUluamVjdGVkU2Ny
aXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0SG9zdDo6aW5qZWN0ZWRTY3Jp
cHRGb3IpOgorCisyMDEwLTAxLTEyICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0u
b3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgogCiAgICAgICAgIEFs
bG93IGNyZWF0aW5nIGluamVjdGVkIHNjcmlwdCBmb3IgdGhlIGluc3BlY3RlZCBzY3JpcHQgc3Rh
dGUuIFRoZSBJbmplY3RlZFNjcmlwdCBpcwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCmluZGV4IDM2YzMyYzgu
Ljc5YTlmOGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0
ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJWOEluamVjdGVkU2NyaXB0SG9zdC5oIgogCi0jaW5jbHVk
ZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEYXRhYmFz
ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRIb3N0Lmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgpAQCAtNDUsNiArNDUsNzAgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgdm9pZCBXZWFrUmVmZXJlbmNlQ2FsbGJhY2so
djg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiBvYmplY3QsIHZvaWQqIHBhcmFtZXRlcikKK3sKKyAg
ICBJTkNfU1RBVFMoIkluamVjdGVkU2NyaXB0SG9zdC5pbnNwZWN0ZWRXaW5kb3coKSIpOworICAg
IEluamVjdGVkU2NyaXB0SG9zdCogbmF0aXZlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SW5qZWN0ZWRT
Y3JpcHRIb3N0Kj4ocGFyYW1ldGVyKTsKKyAgICBuYXRpdmVPYmplY3QtPmRlcmVmKCk7CisgICAg
b2JqZWN0LkRpc3Bvc2UoKTsKK30KKworc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBjcmVh
dGVJbmplY3RlZFNjcmlwdEhvc3RWOFdyYXBwZXIoSW5qZWN0ZWRTY3JpcHRIb3N0KiBob3N0KQor
eworICAgIFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSBkZXNjcmlwdG9yVHlwZSA9IFY4Q2xh
c3NJbmRleDo6SU5KRUNURURTQ1JJUFRIT1NUOworICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+
IGZ1bmN0aW9uID0gVjhET01XcmFwcGVyOjpnZXRUZW1wbGF0ZShkZXNjcmlwdG9yVHlwZSktPkdl
dEZ1bmN0aW9uKCk7CisgICAgaWYgKGZ1bmN0aW9uLklzRW1wdHkoKSkgeworICAgICAgICAvLyBS
ZXR1cm4gaWYgYWxsb2NhdGlvbiBmYWlsZWQuCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6
Ok9iamVjdD4oKTsKKyAgICB9CisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbmNlID0g
U2FmZUFsbG9jYXRpb246Om5ld0luc3RhbmNlKGZ1bmN0aW9uKTsKKyAgICBpZiAoaW5zdGFuY2Uu
SXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEF2b2lkIHNldHRpbmcgdGhlIHdyYXBwZXIgaWYgYWxs
b2NhdGlvbiBmYWlsZWQuCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsK
KyAgICB9CisgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGluc3RhbmNlLCBWOENsYXNz
SW5kZXg6OlRvSW50KGRlc2NyaXB0b3JUeXBlKSwgaG9zdCk7CisgICAgLy8gQ3JlYXRlIGEgd2Vh
ayByZWZlcmVuY2UgdG8gdGhlIHY4IHdyYXBwZXIgb2YgSW5zcGVjdG9yQmFja2VuZCB0byBkZXJl
ZgorICAgIC8vIEluc3BlY3RvckJhY2tlbmQgd2hlbiB0aGUgd3JhcHBlciBpcyBnYXJiYWdlIGNv
bGxlY3RlZC4KKyAgICBob3N0LT5yZWYoKTsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0
PiB3ZWFrSGFuZGxlID0gdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhpbnN0YW5jZSk7
CisgICAgd2Vha0hhbmRsZS5NYWtlV2Vhayhob3N0LCAmV2Vha1JlZmVyZW5jZUNhbGxiYWNrKTsK
KyAgICByZXR1cm4gaW5zdGFuY2U7Cit9CisKK3N0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlSW5q
ZWN0ZWRTY3JpcHQoY29uc3QgU3RyaW5nJiBzY3JpcHRTb3VyY2UsIEluamVjdGVkU2NyaXB0SG9z
dCogaW5qZWN0ZWRTY3JpcHRIb3N0LCBTY3JpcHRTdGF0ZSogaW5zcGVjdGVkU2NyaXB0U3RhdGUs
IGxvbmcgaWQpCit7CisgICAgSU5DX1NUQVRTKCJJbmplY3RlZFNjcmlwdEhvc3Qud3JhcENhbGxi
YWNrKCkiKTsKKyAgICByZXR1cm4gYXJnc1swXTsKKyAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7
CisKKyAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGluc3BlY3RlZENvbnRleHQgPSBpbnNwZWN0
ZWRTY3JpcHRTdGF0ZS0+Y29udGV4dCgpOworICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0
U2NvcGUoaW5zcGVjdGVkQ29udGV4dCk7CisKKyAgICAvLyBDYWxsIGN1c3RvbSBjb2RlIHRvIGNy
ZWF0ZSBpbnNwZWN0b3IgYmFja2VuZCB3cmFwcGVyIGluIHRoZSB1dGlsaXR5IGNvbnRleHQKKyAg
ICAvLyBpbnN0ZWFkIG9mIGNhbGxpbmcgVjhET01XcmFwcGVyOjpjb252ZXJ0VG9WOE9iamVjdCB0
aGF0IHdvdWxkIGNyZWF0ZSB0aGUKKyAgICAvLyB3cmFwcGVyIGluIHRoZSBQYWdlIG1haW4gZnJh
bWUgY29udGV4dC4KKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gc2NyaXB0SG9zdFdyYXBwZXIg
PSBjcmVhdGVJbmplY3RlZFNjcmlwdEhvc3RWOFdyYXBwZXIoaW5qZWN0ZWRTY3JpcHRIb3N0KTsK
KyAgICBpZiAoc2NyaXB0SG9zdFdyYXBwZXIuSXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gU2Ny
aXB0T2JqZWN0KCk7CisKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gd2luZG93R2xvYmFsID0g
aW5zcGVjdGVkQ29udGV4dC0+R2xvYmFsKCk7CisKKyAgICAvLyBJbmplY3QgamF2YXNjcmlwdCBp
bnRvIHRoZSBjb250ZXh0LgorICAgIHY4OjpMb2NhbDx2ODo6U2NyaXB0PiBzY3JpcHQgPSB2ODo6
U2NyaXB0OjpDb21waWxlKHY4U3RyaW5nKHNjcmlwdFNvdXJjZSkpOworICAgIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IHYgPSBzY3JpcHQtPlJ1bigpOworICAgIEFTU0VSVCghdi5Jc0VtcHR5KCkpOwor
ICAgIEFTU0VSVCh2LT5Jc0Z1bmN0aW9uKCkpOworCisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGFyZ3NbXSA9IHsKKyAgICAgIHNjcmlwdEhvc3RXcmFwcGVyLAorICAgICAgd2luZG93R2xvYmFs
LAorICAgICAgdjg6Ok51bWJlcjo6TmV3KGlkKQorICAgIH07CisgICAgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gaW5qZWN0ZWRTY3JpcHRWYWx1ZSA9IHY4OjpGdW5jdGlvbjo6Q2FzdCgqdiktPkNhbGwo
d2luZG93R2xvYmFsLCAzLCBhcmdzKTsKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gaW5qZWN0
ZWRTY3JpcHQodjg6Ok9iamVjdDo6Q2FzdCgqaW5qZWN0ZWRTY3JpcHRWYWx1ZSkpOworICAgIHJl
dHVybiBTY3JpcHRPYmplY3QoaW5zcGVjdGVkU2NyaXB0U3RhdGUsIGluamVjdGVkU2NyaXB0KTsK
K30KKwogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW5qZWN0ZWRTY3JpcHRIb3N0OjppbnNwZWN0
ZWRXaW5kb3dDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19T
VEFUUygiSW5qZWN0ZWRTY3JpcHRIb3N0Lmluc3BlY3RlZFdpbmRvdygpIik7CkBAIC0xNjIsNCAr
MjI2LDI4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEluamVjdGVkU2NyaXB0SG9zdDo6c2Vs
ZWN0RE9NU3RvcmFnZUNhbGxiYWNrKGNvbnN0IHY4OjpBCiB9CiAjZW5kaWYKIAorU2NyaXB0T2Jq
ZWN0IEluamVjdGVkU2NyaXB0SG9zdDo6aW5qZWN0ZWRTY3JpcHRGb3IoU2NyaXB0U3RhdGUqIGlu
c3BlY3RlZFNjcmlwdFN0YXRlKQoreworICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsK
KyAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSBpbnNwZWN0ZWRTY3JpcHRTdGF0
ZS0+Y29udGV4dCgpOworICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4
dCk7CisKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gZ2xvYmFsID0gY29udGV4dC0+R2xvYmFs
KCk7CisgICAgLy8gU2tpcCBwcm94eSBvYmplY3QuIFRoZSBwcm94eSBvYmplY3Qgd2lsbCBzdXJ2
aXZlIHBhZ2UgbmF2aWdhdGlvbiB3aGlsZSB3ZSBuZWVkCisgICAgLy8gYW4gb2JqZWN0IHdob3Nl
IGxpZmV0aW1lIGNvbnNpZGVzIHdpdGggdGhhdCBvZiB0aGUgaW5zcGVjdGVkIGNvbnRleHQuCisg
ICAgZ2xvYmFsID0gdjg6OkxvY2FsPHY4OjpPYmplY3Q+OjpDYXN0KGdsb2JhbC0+R2V0UHJvdG90
eXBlKCkpOworCisgICAgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IGtleSA9IHY4OjpTdHJpbmc6Ok5l
dygiRGV2dG9vbHNfSW5qZWN0ZWRTY3JpcHQiKTsKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2
YWwgPSBnbG9iYWwtPkdldEhpZGRlblZhbHVlKGtleSk7CisgICAgaWYgKCF2YWwuSXNFbXB0eSgp
ICYmIHZhbC0+SXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIFNjcmlwdE9iamVjdChpbnNwZWN0
ZWRTY3JpcHRTdGF0ZSwgdjg6OkxvY2FsPHY4OjpPYmplY3Q+OjpDYXN0KHZhbCkpOworCisgICAg
QVNTRVJUKCFtX2luamVjdGVkU2NyaXB0U291cmNlLmlzRW1wdHkoKSk7CisgICAgU2NyaXB0T2Jq
ZWN0IGluamVjdGVkU2NyaXB0T2JqZWN0ID0gY3JlYXRlSW5qZWN0ZWRTY3JpcHQobV9pbmplY3Rl
ZFNjcmlwdFNvdXJjZSwgdGhpcywgaW5zcGVjdGVkU2NyaXB0U3RhdGUsIG1fbmV4dEluamVjdGVk
U2NyaXB0SWQpOworICAgIG1faWRUb0luamVjdGVkU2NyaXB0LnNldChtX25leHRJbmplY3RlZFNj
cmlwdElkLCBpbmplY3RlZFNjcmlwdE9iamVjdCk7CisgICAgKyttX25leHRJbmplY3RlZFNjcmlw
dElkOworICAgIGdsb2JhbC0+U2V0SGlkZGVuVmFsdWUoa2V5LCBpbmplY3RlZFNjcmlwdE9iamVj
dC52OE9iamVjdCgpKTsKKyAgICByZXR1cm4gaW5qZWN0ZWRTY3JpcHRPYmplY3Q7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46349</attachid>
            <date>2010-01-12 01:23:46 -0800</date>
            <delta_ts>2010-01-12 01:53:27 -0800</delta_ts>
            <desc>patch</desc>
            <filename>injected-script-factory-v82.patch</filename>
            <type>text/plain</type>
            <size>5590</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWQ4YjU2MC4uNmI1OTVkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxMC0wMS0xMiAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGluamVjdGlvbiBvZiBpbnNwZWN0b3Igc2NyaXB0
cyBpbnRvIHRoZSBpbnNwZWN0ZWQgY29udGV4dC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM1MjMKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWFrUmVmZXJlbmNlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSW5qZWN0ZWRT
Y3JpcHRIb3N0VjhXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUluamVjdGVkU2Ny
aXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0SG9zdDo6aW5qZWN0ZWRTY3Jp
cHRGb3IpOgorCisyMDEwLTAxLTEyICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0u
b3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgogCiAgICAgICAgIEFs
bG93IGNyZWF0aW5nIGluamVjdGVkIHNjcmlwdCBmb3IgdGhlIGluc3BlY3RlZCBzY3JpcHQgc3Rh
dGUuIFRoZSBJbmplY3RlZFNjcmlwdCBpcwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCmluZGV4IDM2YzMyYzgu
LmQ1N2YwNmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0
ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJWOEluamVjdGVkU2NyaXB0SG9zdC5oIgogCi0jaW5jbHVk
ZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEYXRhYmFz
ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRIb3N0Lmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgpAQCAtNDUsNiArNDUsNjggQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgdm9pZCBXZWFrUmVmZXJlbmNlQ2FsbGJhY2so
djg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiBvYmplY3QsIHZvaWQqIHBhcmFtZXRlcikKK3sKKyAg
ICBJTkNfU1RBVFMoIkluamVjdGVkU2NyaXB0SG9zdC5pbnNwZWN0ZWRXaW5kb3coKSIpOworICAg
IEluamVjdGVkU2NyaXB0SG9zdCogbmF0aXZlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SW5qZWN0ZWRT
Y3JpcHRIb3N0Kj4ocGFyYW1ldGVyKTsKKyAgICBuYXRpdmVPYmplY3QtPmRlcmVmKCk7CisgICAg
b2JqZWN0LkRpc3Bvc2UoKTsKK30KKworc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBjcmVh
dGVJbmplY3RlZFNjcmlwdEhvc3RWOFdyYXBwZXIoSW5qZWN0ZWRTY3JpcHRIb3N0KiBob3N0KQor
eworICAgIFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSBkZXNjcmlwdG9yVHlwZSA9IFY4Q2xh
c3NJbmRleDo6SU5KRUNURURTQ1JJUFRIT1NUOworICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+
IGZ1bmN0aW9uID0gVjhET01XcmFwcGVyOjpnZXRUZW1wbGF0ZShkZXNjcmlwdG9yVHlwZSktPkdl
dEZ1bmN0aW9uKCk7CisgICAgaWYgKGZ1bmN0aW9uLklzRW1wdHkoKSkgeworICAgICAgICAvLyBS
ZXR1cm4gaWYgYWxsb2NhdGlvbiBmYWlsZWQuCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6
Ok9iamVjdD4oKTsKKyAgICB9CisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbmNlID0g
U2FmZUFsbG9jYXRpb246Om5ld0luc3RhbmNlKGZ1bmN0aW9uKTsKKyAgICBpZiAoaW5zdGFuY2Uu
SXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEF2b2lkIHNldHRpbmcgdGhlIHdyYXBwZXIgaWYgYWxs
b2NhdGlvbiBmYWlsZWQuCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsK
KyAgICB9CisgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGluc3RhbmNlLCBWOENsYXNz
SW5kZXg6OlRvSW50KGRlc2NyaXB0b3JUeXBlKSwgaG9zdCk7CisgICAgLy8gQ3JlYXRlIGEgd2Vh
ayByZWZlcmVuY2UgdG8gdGhlIHY4IHdyYXBwZXIgb2YgSW5zcGVjdG9yQmFja2VuZCB0byBkZXJl
ZgorICAgIC8vIEluc3BlY3RvckJhY2tlbmQgd2hlbiB0aGUgd3JhcHBlciBpcyBnYXJiYWdlIGNv
bGxlY3RlZC4KKyAgICBob3N0LT5yZWYoKTsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0
PiB3ZWFrSGFuZGxlID0gdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhpbnN0YW5jZSk7
CisgICAgd2Vha0hhbmRsZS5NYWtlV2Vhayhob3N0LCAmV2Vha1JlZmVyZW5jZUNhbGxiYWNrKTsK
KyAgICByZXR1cm4gaW5zdGFuY2U7Cit9CisKK3N0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlSW5q
ZWN0ZWRTY3JpcHQoY29uc3QgU3RyaW5nJiBzY3JpcHRTb3VyY2UsIEluamVjdGVkU2NyaXB0SG9z
dCogaW5qZWN0ZWRTY3JpcHRIb3N0LCBTY3JpcHRTdGF0ZSogaW5zcGVjdGVkU2NyaXB0U3RhdGUs
IGxvbmcgaWQpCit7CisgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOworCisgICAgdjg6OkxvY2Fs
PHY4OjpDb250ZXh0PiBpbnNwZWN0ZWRDb250ZXh0ID0gaW5zcGVjdGVkU2NyaXB0U3RhdGUtPmNv
bnRleHQoKTsKKyAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3BlKGluc3BlY3RlZENv
bnRleHQpOworCisgICAgLy8gQ2FsbCBjdXN0b20gY29kZSB0byBjcmVhdGUgaW5zcGVjdG9yIGJh
Y2tlbmQgd3JhcHBlciBpbiB0aGUgdXRpbGl0eSBjb250ZXh0CisgICAgLy8gaW5zdGVhZCBvZiBj
YWxsaW5nIFY4RE9NV3JhcHBlcjo6Y29udmVydFRvVjhPYmplY3QgdGhhdCB3b3VsZCBjcmVhdGUg
dGhlCisgICAgLy8gd3JhcHBlciBpbiB0aGUgUGFnZSBtYWluIGZyYW1lIGNvbnRleHQuCisgICAg
djg6OkxvY2FsPHY4OjpPYmplY3Q+IHNjcmlwdEhvc3RXcmFwcGVyID0gY3JlYXRlSW5qZWN0ZWRT
Y3JpcHRIb3N0VjhXcmFwcGVyKGluamVjdGVkU2NyaXB0SG9zdCk7CisgICAgaWYgKHNjcmlwdEhv
c3RXcmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFNjcmlwdE9iamVjdCgpOworCisg
ICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IHdpbmRvd0dsb2JhbCA9IGluc3BlY3RlZENvbnRleHQt
Pkdsb2JhbCgpOworCisgICAgLy8gSW5qZWN0IGphdmFzY3JpcHQgaW50byB0aGUgY29udGV4dC4K
KyAgICB2ODo6TG9jYWw8djg6OlNjcmlwdD4gc2NyaXB0ID0gdjg6OlNjcmlwdDo6Q29tcGlsZSh2
OFN0cmluZyhzY3JpcHRTb3VyY2UpKTsKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2ID0gc2Ny
aXB0LT5SdW4oKTsKKyAgICBBU1NFUlQoIXYuSXNFbXB0eSgpKTsKKyAgICBBU1NFUlQodi0+SXNG
dW5jdGlvbigpKTsKKworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmdzW10gPSB7CisgICAg
ICBzY3JpcHRIb3N0V3JhcHBlciwKKyAgICAgIHdpbmRvd0dsb2JhbCwKKyAgICAgIHY4OjpOdW1i
ZXI6Ok5ldyhpZCkKKyAgICB9OworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGluamVjdGVkU2Ny
aXB0VmFsdWUgPSB2ODo6RnVuY3Rpb246OkNhc3QoKnYpLT5DYWxsKHdpbmRvd0dsb2JhbCwgMywg
YXJncyk7CisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGluamVjdGVkU2NyaXB0KHY4OjpPYmpl
Y3Q6OkNhc3QoKmluamVjdGVkU2NyaXB0VmFsdWUpKTsKKyAgICByZXR1cm4gU2NyaXB0T2JqZWN0
KGluc3BlY3RlZFNjcmlwdFN0YXRlLCBpbmplY3RlZFNjcmlwdCk7Cit9CisKIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOEluamVjdGVkU2NyaXB0SG9zdDo6aW5zcGVjdGVkV2luZG93Q2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkluamVjdGVkU2Ny
aXB0SG9zdC5pbnNwZWN0ZWRXaW5kb3coKSIpOwpAQCAtMTYyLDQgKzIyNCwyOCBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OnNlbGVjdERPTVN0b3JhZ2VDYWxs
YmFjayhjb25zdCB2ODo6QQogfQogI2VuZGlmCiAKK1NjcmlwdE9iamVjdCBJbmplY3RlZFNjcmlw
dEhvc3Q6OmluamVjdGVkU2NyaXB0Rm9yKFNjcmlwdFN0YXRlKiBpbnNwZWN0ZWRTY3JpcHRTdGF0
ZSkKK3sKKyAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CisgICAgdjg6OkxvY2FsPHY4
OjpDb250ZXh0PiBjb250ZXh0ID0gaW5zcGVjdGVkU2NyaXB0U3RhdGUtPmNvbnRleHQoKTsKKyAg
ICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3BlKGNvbnRleHQpOworCisgICAgdjg6Okxv
Y2FsPHY4OjpPYmplY3Q+IGdsb2JhbCA9IGNvbnRleHQtPkdsb2JhbCgpOworICAgIC8vIFNraXAg
cHJveHkgb2JqZWN0LiBUaGUgcHJveHkgb2JqZWN0IHdpbGwgc3Vydml2ZSBwYWdlIG5hdmlnYXRp
b24gd2hpbGUgd2UgbmVlZAorICAgIC8vIGFuIG9iamVjdCB3aG9zZSBsaWZldGltZSBjb25zaWRl
cyB3aXRoIHRoYXQgb2YgdGhlIGluc3BlY3RlZCBjb250ZXh0LgorICAgIGdsb2JhbCA9IHY4OjpM
b2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdChnbG9iYWwtPkdldFByb3RvdHlwZSgpKTsKKworICAgIHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBrZXkgPSB2ODo6U3RyaW5nOjpOZXcoIkRldnRvb2xzX0luamVj
dGVkU2NyaXB0Iik7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsID0gZ2xvYmFsLT5HZXRI
aWRkZW5WYWx1ZShrZXkpOworICAgIGlmICghdmFsLklzRW1wdHkoKSAmJiB2YWwtPklzT2JqZWN0
KCkpCisgICAgICAgIHJldHVybiBTY3JpcHRPYmplY3QoaW5zcGVjdGVkU2NyaXB0U3RhdGUsIHY4
OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWwpKTsKKworICAgIEFTU0VSVCghbV9pbmplY3Rl
ZFNjcmlwdFNvdXJjZS5pc0VtcHR5KCkpOworICAgIFNjcmlwdE9iamVjdCBpbmplY3RlZFNjcmlw
dE9iamVjdCA9IGNyZWF0ZUluamVjdGVkU2NyaXB0KG1faW5qZWN0ZWRTY3JpcHRTb3VyY2UsIHRo
aXMsIGluc3BlY3RlZFNjcmlwdFN0YXRlLCBtX25leHRJbmplY3RlZFNjcmlwdElkKTsKKyAgICBt
X2lkVG9JbmplY3RlZFNjcmlwdC5zZXQobV9uZXh0SW5qZWN0ZWRTY3JpcHRJZCwgaW5qZWN0ZWRT
Y3JpcHRPYmplY3QpOworICAgICsrbV9uZXh0SW5qZWN0ZWRTY3JpcHRJZDsKKyAgICBnbG9iYWwt
PlNldEhpZGRlblZhbHVlKGtleSwgaW5qZWN0ZWRTY3JpcHRPYmplY3QudjhPYmplY3QoKSk7Cisg
ICAgcmV0dXJuIGluamVjdGVkU2NyaXB0T2JqZWN0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCg==
</data>
<flag name="review"
          id="28593"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>