<?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>173757</bug_id>
          
          <creation_ts>2017-06-22 23:47:45 -0700</creation_ts>
          <short_desc>[WPE] Use JSC API to send script messages from web extension in tests</short_desc>
          <delta_ts>2017-06-23 15:34:33 -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>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>173712</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1322211</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-22 23:47:45 -0700</bug_when>
    <thetext>The GTK+ port uses DOM bindings for that. This will fix /wpe/WebKitSecurityManager/file-xhr and all TestConsoleMessage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322212</commentid>
    <comment_count>1</comment_count>
      <attachid>313694</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-22 23:52:00 -0700</bug_when>
    <thetext>Created attachment 313694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322235</commentid>
    <comment_count>2</comment_count>
      <attachid>313694</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-06-23 03:10:01 -0700</bug_when>
    <thetext>Comment on attachment 313694
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:266
&gt; +    GUniquePtr&lt;char&gt; escapedMessageString(static_cast&lt;char*&gt;(g_malloc(strlen(messageString.get()) * 2 + 1)));
&gt; +    char* src = messageString.get();
&gt; +    char* dest = escapedMessageString.get();
&gt; +    while (*src) {
&gt; +        if (*src == &apos;&quot;&apos;) {
&gt; +            *dest++ = &apos;\\&apos;;
&gt; +            *dest++ = &apos;&quot;&apos;;
&gt; +        } else
&gt; +            *dest++ = *src;
&gt; +        src++;
&gt; +    }
&gt; +    *dest = &apos;\0&apos;;

Would it be possible to use something like g_strescape() here? And use g_strcompress() on the receiving end, if necessary or possible?

Apart from that, src++ should be ++src.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322242</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-23 04:06:45 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #2)
&gt; Comment on attachment 313694 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=313694&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:266
&gt; &gt; +    GUniquePtr&lt;char&gt; escapedMessageString(static_cast&lt;char*&gt;(g_malloc(strlen(messageString.get()) * 2 + 1)));
&gt; &gt; +    char* src = messageString.get();
&gt; &gt; +    char* dest = escapedMessageString.get();
&gt; &gt; +    while (*src) {
&gt; &gt; +        if (*src == &apos;&quot;&apos;) {
&gt; &gt; +            *dest++ = &apos;\\&apos;;
&gt; &gt; +            *dest++ = &apos;&quot;&apos;;
&gt; &gt; +        } else
&gt; &gt; +            *dest++ = *src;
&gt; &gt; +        src++;
&gt; &gt; +    }
&gt; &gt; +    *dest = &apos;\0&apos;;
&gt; 
&gt; Would it be possible to use something like g_strescape() here? And use
&gt; g_strcompress() on the receiving end, if necessary or possible?

The problem is not the receiving end, but JSC. If we pass something like

&quot;Foo&quot;bar&quot;Baz&quot; 

the script fails to run, so it never gets to the other end. We don&apos;t receive anything escaped in the other end. Also we would need to add ifdefs in the UI process side too. I started using g_strescape(), but the problem is that it escapes all non ascii characters, making the test fail, because one of the error messages uses utf8. So, since what we only need is escaping &quot; because we are passing &quot;%s&quot; to JSC, I thought it was simple enough to do it here.

&gt; Apart from that, src++ should be ++src.

Ok, just curiosity, does it make any difference in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322259</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-23 05:03:28 -0700</bug_when>
    <thetext>Committed r218743: &lt;http://trac.webkit.org/changeset/218743&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322260</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-06-23 05:05:32 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; &gt; Apart from that, src++ should be ++src.
&gt; 
&gt; Ok, just curiosity, does it make any difference in this case?

Not in terms of correctness, but it&apos;s good practice to always use the prefixed increment for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322261</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-06-23 05:05:50 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #5)
&gt; (In reply to Carlos Garcia Campos from comment #3)
&gt; &gt; &gt; Apart from that, src++ should be ++src.
&gt; &gt; 
&gt; &gt; Ok, just curiosity, does it make any difference in this case?
&gt; 
&gt; Not in terms of correctness, but it&apos;s good practice to always use the
&gt; prefixed increment for this.

... where possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322473</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-06-23 15:34:33 -0700</bug_when>
    <thetext>Maybe for with user-defined increment operators, but for a primitive type like int, I don&apos;t think so... all compilers should know that they are the same if the value is not used as part of another expression, so I&apos;d be surprised if the generated code was different, and the postincrement form is more natural and familiar.

Doesn&apos;t matter, though.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313694</attachid>
            <date>2017-06-22 23:52:00 -0700</date>
            <delta_ts>2017-06-23 03:10:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wpe-js-user-scripts.diff</filename>
            <type>text/plain</type>
            <size>7381</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhYzQ0
MDA3NDFiZC4uMmRkNWZhZTNlMWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMSBAQAogMjAxNy0wNi0yMiAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW1dQRV0gVXNlIEpTQyBB
UEkgdG8gc2VuZCBzY3JpcHQgbWVzc2FnZXMgZnJvbSB3ZWIgZXh0ZW5zaW9uIGluIHRlc3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM3NTcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgR1RLKyB1
c2VzIERPTSBiaW5kaW5ncyB0byBzZW5kIHRoZSBtZXNzYWdlcy4gV2UgY2FuIGp1c3QgYnVpbGQg
dGhlIG1lc3NhZ2Ugc3RyaW5nIGFuZCB1c2UgSlNFdmFsdWF0ZVNjcmlwdAorICAgICAgICB0byBy
dW4gcG9zdE1lc3NhZ2UoKS4KKworICAgICAgICBGaXhlczogL3dwZS9XZWJLaXRTZWN1cml0eU1h
bmFnZXIvZmlsZS14aHIKKyAgICAgICAgICAgICAgIC93cGUvV2ViS2l0Q29uc29sZU1lc3NhZ2Uv
Y29uc29sZS1hcGkKKyAgICAgICAgICAgICAgIC93cGUvV2ViS2l0Q29uc29sZU1lc3NhZ2UvanMt
ZXhjZXB0aW9uCisgICAgICAgICAgICAgICAvd3BlL1dlYktpdENvbnNvbGVNZXNzYWdlL25ldHdv
cmstZXJyb3IKKyAgICAgICAgICAgICAgIC93cGUvV2ViS2l0Q29uc29sZU1lc3NhZ2Uvc2VjdXJp
dHktZXJyb3IKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
Q29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAodGVzdFdlYktpdENvbnNvbGVNZXNzYWdlU2Vj
dXJpdHlFcnJvcik6IFJlbW92ZSBpZmRlZnMuCisgICAgICAgIChiZWZvcmVBbGwpOiBEaXR0by4K
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNv
bnRleHQuY3BwOgorICAgICAgICAodGVzdFdlYkNvbnRleHRTZWN1cml0eUZpbGVYSFIpOiBEaXR0
by4KKyAgICAgICAgKGJlZm9yZUFsbCk6IERpdHRvLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcDoKKyAgICAgICAgKGNvbnNvbGVN
ZXNzYWdlU2VudENhbGxiYWNrKTogVXNlIEpTRXZhbHVhdGVTY3JpcHQgaW4gV1BFLiBXZSBuZWVk
IHRvIGVzY2FwZSB0aGUgJyInIGluIHRoZSBtZXNzYWdlIHN0cmluZy4KKyAgICAgICAgKHBhZ2VD
cmVhdGVkQ2FsbGJhY2spOiBSZW1vdmUgaWZkZWZzLgorCisyMDE3LTA2LTIyICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbV1BFXSBVcGRhdGUg
V1BFQmFja2VuZC1tZXNhCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzM3MDUKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RDb25zb2xlTWVzc2FnZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdENvbnNvbGVNZXNzYWdlLmNwcAppbmRleCBhODljODE5MjIyOC4u
ODY4MTQ5M2MxN2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0Q29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0Q29uc29sZU1lc3NhZ2UuY3BwCkBAIC0yMSw3ICsyMSw2IEBACiAK
ICNpbmNsdWRlICJXZWJWaWV3VGVzdC5oIgogCi0jaWYgUExBVEZPUk0oR1RLKQogY2xhc3MgQ29u
c29sZU1lc3NhZ2VUZXN0IDogcHVibGljIFdlYlZpZXdUZXN0IHsKIHB1YmxpYzoKICAgICBNQUtF
X0dMSUJfVEVTVF9GSVhUVVJFKENvbnNvbGVNZXNzYWdlVGVzdCk7CkBAIC0xNDAsMTcgKzEzOSwx
MyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0Q29uc29sZU1lc3NhZ2VTZWN1cml0eUVycm9yKENv
bnNvbGVNZXNzYWdlVGVzdCogdGVzdCwgZ2NvbgogICAgIHRlc3QtPndhaXRVbnRpbENvbnNvbGVN
ZXNzYWdlUmVjZWl2ZWQoKTsKICAgICBnX2Fzc2VydCh0ZXN0LT5tX2NvbnNvbGVNZXNzYWdlID09
IHJlZmVyZW5jZU1lc3NhZ2UpOwogfQotI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKIAogdm9pZCBi
ZWZvcmVBbGwoKQogewotICAgIC8vIEZJWE1FOiBVc2UgSlNDIEFQSSB0byBzZW5kIHNjcmlwdCBt
ZXNzYWdlcyBmcm9tIEphdmFTY3JpcHQuCi0jaWYgUExBVEZPUk0oR1RLKQogICAgIENvbnNvbGVN
ZXNzYWdlVGVzdDo6YWRkKCJXZWJLaXRDb25zb2xlTWVzc2FnZSIsICJjb25zb2xlLWFwaSIsIHRl
c3RXZWJLaXRDb25zb2xlTWVzc2FnZUNvbnNvbGVBUEkpOwogICAgIENvbnNvbGVNZXNzYWdlVGVz
dDo6YWRkKCJXZWJLaXRDb25zb2xlTWVzc2FnZSIsICJqcy1leGNlcHRpb24iLCB0ZXN0V2ViS2l0
Q29uc29sZU1lc3NhZ2VKYXZhU2NyaXB0RXhjZXB0aW9uKTsKICAgICBDb25zb2xlTWVzc2FnZVRl
c3Q6OmFkZCgiV2ViS2l0Q29uc29sZU1lc3NhZ2UiLCAibmV0d29yay1lcnJvciIsIHRlc3RXZWJL
aXRDb25zb2xlTWVzc2FnZU5ldHdvcmtFcnJvcik7CiAgICAgQ29uc29sZU1lc3NhZ2VUZXN0Ojph
ZGQoIldlYktpdENvbnNvbGVNZXNzYWdlIiwgInNlY3VyaXR5LWVycm9yIiwgdGVzdFdlYktpdENv
bnNvbGVNZXNzYWdlU2VjdXJpdHlFcnJvcik7Ci0jZW5kaWYKIH0KIAogdm9pZCBhZnRlckFsbCgp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdl
YktpdFdlYkNvbnRleHQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBlY2YzNTE0ODA3MC4uY2JhNGIwM2JjNTcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2Vi
S2l0V2ViQ29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtNTgwLDcgKzU4MCw2IEBAIHN0YXRpYyB2
b2lkIHRlc3RXZWJDb250ZXh0U2VjdXJpdHlQb2xpY3koU2VjdXJpdHlQb2xpY3lUZXN0KiB0ZXN0
LCBnY29uc3Rwb2ludGVyCiAgICAgICAgIHwgU2VjdXJpdHlQb2xpY3lUZXN0OjpDT1JTRW5hYmxl
ZCB8IFNlY3VyaXR5UG9saWN5VGVzdDo6RW1wdHlEb2N1bWVudCk7CiB9CiAKLSNpZiBQTEFURk9S
TShHVEspCiBzdGF0aWMgdm9pZCBjb25zb2xlTWVzc2FnZVJlY2VpdmVkQ2FsbGJhY2soV2ViS2l0
VXNlckNvbnRlbnRNYW5hZ2VyKiwgV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCogbWVzc2FnZSwgV2Vi
S2l0SmF2YXNjcmlwdFJlc3VsdCoqIHJlc3VsdCkKIHsKICAgICBnX2Fzc2VydChyZXN1bHQpOwpA
QCAtNjQ5LDcgKzY0OCw2IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJDb250ZXh0U2VjdXJpdHlGaWxl
WEhSKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogCiAgICAgd2Via2l0X3NldHRp
bmdzX3NldF9hbGxvd19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJscyh3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3NldHRpbmdzKHRlc3QtPm1fd2ViVmlldyksIEZBTFNFKTsKIH0KLSNlbmRpZiAvLyBQTEFU
Rk9STShHVEspCiAKIGNsYXNzIFByb3h5VGVzdCA6IHB1YmxpYyBXZWJWaWV3VGVzdCB7CiBwdWJs
aWM6CkBAIC03ODQsMTAgKzc4Miw3IEBAIHZvaWQgYmVmb3JlQWxsKCkKICNlbmRpZgogICAgIFdl
YlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkNvbnRleHQiLCAibGFuZ3VhZ2VzIiwgdGVzdFdlYkNv
bnRleHRMYW5ndWFnZXMpOwogICAgIFNlY3VyaXR5UG9saWN5VGVzdDo6YWRkKCJXZWJLaXRTZWN1
cml0eU1hbmFnZXIiLCAic2VjdXJpdHktcG9saWN5IiwgdGVzdFdlYkNvbnRleHRTZWN1cml0eVBv
bGljeSk7Ci0gICAgLy8gRklYTUU6IGZpeCBzY3JpcHQgbWVzc2FnZXMgaW4gV1BFLgotI2lmIFBM
QVRGT1JNKEdUSykKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRTZWN1cml0eU1hbmFnZXIi
LCAiZmlsZS14aHIiLCB0ZXN0V2ViQ29udGV4dFNlY3VyaXR5RmlsZVhIUik7Ci0jZW5kaWYKICAg
ICBQcm94eVRlc3Q6OmFkZCgiV2ViS2l0V2ViQ29udGV4dCIsICJwcm94eSIsIHRlc3RXZWJDb250
ZXh0UHJveHlTZXR0aW5ncyk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcAppbmRleCBkOWYyYzZhYzcy
Yi4uOTMxMzQxOTBjYTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKQEAgLTI0MCw4ICsyNDAsNiBAQCBz
dGF0aWMgZ2Jvb2xlYW4gY29udGV4dE1lbnVDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiBwYWdlLCBX
ZWJLaXRDb250ZXh0TWVudSogbWVudQogfQogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKIAotLy8g
RklYTUU6IFVzZSBKU0MgQVBJIHRvIHNlbmQgc2NyaXB0IG1lc3NhZ2VzIGZyb20gSmF2YVNjcmlw
dC4KLSNpZiBQTEFURk9STShHVEspCiBzdGF0aWMgdm9pZCBjb25zb2xlTWVzc2FnZVNlbnRDYWxs
YmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBXZWJLaXRDb25zb2xlTWVzc2FnZSogY29uc29s
ZU1lc3NhZ2UpCiB7CiAgICAgZ19hc3NlcnQoY29uc29sZU1lc3NhZ2UpOwpAQCAtMjQ5LDExICsy
NDcsMjkgQEAgc3RhdGljIHZvaWQgY29uc29sZU1lc3NhZ2VTZW50Q2FsbGJhY2soV2ViS2l0V2Vi
UGFnZSogd2ViUGFnZSwgV2ViS2l0Q29uc29sZU1lc3MKICAgICAgICAgd2Via2l0X2NvbnNvbGVf
bWVzc2FnZV9nZXRfbGV2ZWwoY29uc29sZU1lc3NhZ2UpLCB3ZWJraXRfY29uc29sZV9tZXNzYWdl
X2dldF90ZXh0KGNvbnNvbGVNZXNzYWdlKSwKICAgICAgICAgd2Via2l0X2NvbnNvbGVfbWVzc2Fn
ZV9nZXRfbGluZShjb25zb2xlTWVzc2FnZSksIHdlYmtpdF9jb25zb2xlX21lc3NhZ2VfZ2V0X3Nv
dXJjZV9pZChjb25zb2xlTWVzc2FnZSkpOwogICAgIEdVbmlxdWVQdHI8Y2hhcj4gbWVzc2FnZVN0
cmluZyhnX3ZhcmlhbnRfcHJpbnQodmFyaWFudC5nZXQoKSwgRkFMU0UpKTsKKyNpZiBQTEFURk9S
TShHVEspCiAgICAgR1JlZlB0cjxXZWJLaXRET01ET01XaW5kb3c+IHdpbmRvdyA9IGFkb3B0R1Jl
Zih3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kZWZhdWx0X3ZpZXcod2Via2l0X3dlYl9wYWdlX2dl
dF9kb21fZG9jdW1lbnQod2ViUGFnZSkpKTsKICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RP
TV9XSU5ET1cod2luZG93LmdldCgpKSk7CiAgICAgd2Via2l0X2RvbV9kb21fd2luZG93X3dlYmtp
dF9tZXNzYWdlX2hhbmRsZXJzX3Bvc3RfbWVzc2FnZSh3aW5kb3cuZ2V0KCksICJjb25zb2xlIiwg
bWVzc2FnZVN0cmluZy5nZXQoKSk7Ci19CisjZWxzZQorICAgIEdVbmlxdWVQdHI8Y2hhcj4gZXNj
YXBlZE1lc3NhZ2VTdHJpbmcoc3RhdGljX2Nhc3Q8Y2hhcio+KGdfbWFsbG9jKHN0cmxlbihtZXNz
YWdlU3RyaW5nLmdldCgpKSAqIDIgKyAxKSkpOworICAgIGNoYXIqIHNyYyA9IG1lc3NhZ2VTdHJp
bmcuZ2V0KCk7CisgICAgY2hhciogZGVzdCA9IGVzY2FwZWRNZXNzYWdlU3RyaW5nLmdldCgpOwor
ICAgIHdoaWxlICgqc3JjKSB7CisgICAgICAgIGlmICgqc3JjID09ICciJykgeworICAgICAgICAg
ICAgKmRlc3QrKyA9ICdcXCc7CisgICAgICAgICAgICAqZGVzdCsrID0gJyInOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICpkZXN0KysgPSAqc3JjOworICAgICAgICBzcmMrKzsKKyAgICB9
CisgICAgKmRlc3QgPSAnXDAnOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2NyaXB0KGdfc3RyZHVw
X3ByaW50Zigid2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuY29uc29sZS5wb3N0TWVzc2Fn
ZShcIiVzXCIpOyIsIGVzY2FwZWRNZXNzYWdlU3RyaW5nLmdldCgpKSk7CisgICAgSlNHbG9iYWxD
b250ZXh0UmVmIGpzQ29udGV4dCA9IHdlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxf
Y29udGV4dCh3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUod2ViUGFnZSkpOworICAgIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1NjcmlwdChBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc2NyaXB0LmdldCgpKSk7CisgICAgSlNFdmFsdWF0ZVNjcmlwdChqc0NvbnRl
eHQsIGpzU2NyaXB0LmdldCgpLCBudWxscHRyLCBudWxscHRyLCAxLCBudWxscHRyKTsKICNlbmRp
ZgorfQogCiAjaWYgUExBVEZPUk0oR1RLKQogc3RhdGljIHZvaWQgZW1pdEZvcm1Db250cm9sc0Fz
c29jaWF0ZWQoR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiBmb3JtSWRz
KQpAQCAtMjk3LDkgKzMxMyw5IEBAIHN0YXRpYyB2b2lkIHBhZ2VDcmVhdGVkQ2FsbGJhY2soV2Vi
S2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sIFdlYktpdFdlYlBhZ2UqIHdlCiAgICAgZ19zaWdu
YWxfY29ubmVjdCh3ZWJQYWdlLCAiZG9jdW1lbnQtbG9hZGVkIiwgR19DQUxMQkFDSyhkb2N1bWVu
dExvYWRlZENhbGxiYWNrKSwgZXh0ZW5zaW9uKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBh
Z2UsICJub3RpZnk6OnVyaSIsIEdfQ0FMTEJBQ0sodXJpQ2hhbmdlZENhbGxiYWNrKSwgZXh0ZW5z
aW9uKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJzZW5kLXJlcXVlc3QiLCBHX0NB
TExCQUNLKHNlbmRSZXF1ZXN0Q2FsbGJhY2spLCBudWxscHRyKTsKKyAgICBnX3NpZ25hbF9jb25u
ZWN0KHdlYlBhZ2UsICJjb25zb2xlLW1lc3NhZ2Utc2VudCIsIEdfQ0FMTEJBQ0soY29uc29sZU1l
c3NhZ2VTZW50Q2FsbGJhY2spLCBudWxscHRyKTsKICNpZiBQTEFURk9STShHVEspCiAgICAgZ19z
aWduYWxfY29ubmVjdCh3ZWJQYWdlLCAiY29udGV4dC1tZW51IiwgR19DQUxMQkFDSyhjb250ZXh0
TWVudUNhbGxiYWNrKSwgbnVsbHB0cik7Ci0gICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAi
Y29uc29sZS1tZXNzYWdlLXNlbnQiLCBHX0NBTExCQUNLKGNvbnNvbGVNZXNzYWdlU2VudENhbGxi
YWNrKSwgbnVsbHB0cik7CiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAiZm9ybS1jb250
cm9scy1hc3NvY2lhdGVkIiwgR19DQUxMQkFDSyhmb3JtQ29udHJvbHNBc3NvY2lhdGVkQ2FsbGJh
Y2spLCBleHRlbnNpb24pOwogI2VuZGlmCiB9Cg==
</data>
<flag name="review"
          id="334582"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>