<?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>152386</bug_id>
          
          <creation_ts>2015-12-17 04:08:12 -0800</creation_ts>
          <short_desc>[WK2] Unable to add UserScripts for new Pages when Web Process is running</short_desc>
          <delta_ts>2016-09-05 22:51:38 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>153193</dup_id>
          <see_also>https://bugzilla.gnome.org/show_bug.cgi?id=769627</see_also>
          <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>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>aperez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1149964</commentid>
    <comment_count>0</comment_count>
      <attachid>267555</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2015-12-17 04:08:12 -0800</bug_when>
    <thetext>Created attachment 267555
Test case in C (using WebKit2GTK+ API)

[Note that, while I found this issue using WebKitGTK+, it does look to me that the root cause might be a cross-platform issue, so I&apos;m CCing some people from Apple I think might be interested too]

In the last stable relases of WebKitGTK+ (2.10.x, including 2.10.4), it is impossible to get user scripts working on applications that create more than one WebView where all of them share the same web process, since only the first WebView will actually execute the user script&apos;s code.

Looking closer at the code, it looks like there is a coordination issue between the UI and the Web process when it comes to adding a reference to the WebPage&apos;s WebUserContentController into the associated Web Process, leading to custom user scripts not being added to the WebCore::Page when a new webview is created AFTER its associated web process has been spawned and its running:

Using WebKitGTK+ (sorry again, that&apos;s the environment I have) as the code base to describe the process, lets start with the **use case that works** (first WebView):

  1. The first time a WebView loads its contents, it creates internally a WebPageProxy instance in the UI Process to deal with its counterpart in the Web Process (WebPage)
    1.1. Because no WebProcess exists yet at that point, the constructor of WebPageProxy does NOT execute m_process-&gt;addWebUserContentControllerProxy() yet, deferring this step until the Web Process has been spawned and reports it finished launching (callback WebPageProxy::processDidFinishLaunching()).
  2. After the Web process starts, a WebPage object is created in the Web Process matching the WebPageProxy object of the UI process related to the page being loaded (same page ID).
    2.1. While creating this WebPage, it registers a &quot;message receiver&quot; callback in the IPC layer to deal with any &quot;AddUserScripts&quot; message that might come later from the UI Process, related to that WebPage
  3. Now, once everything is setup in the Web Process, the WebPageProxy::processDidFinishLaunching() method is finally called, causing the WebUserContentController::AddUserScripts message to be sent from the UI process to the Web Process
    3.1. The message arrives in the WebPage from the Web Process, will be processed properly thanks to the callback installed in step 2.1
    3.2. As a result of processing the AddUserScript message, the WebPage finally installs the UserScript in WebCore::Page
  4. Finally, when the page loads, WebCore runs the user script installed in the WebCore::Page instance as expected and everything works great

Now, the **use case that does NOT work** (any other WebView created for the same web process):

  7. With the Web process already running, creating a new WebView will create a second WebPageProxy instance in the UI Process
    7.1. Because the WebProcess exists and it&apos;s running, the constructor of WebPageProxy does execute m_process-&gt;addWebUserContentControllerProxy() NOW.
    7.2. Calling addWebUserContentControllerProxy() means that a WebUserContentController::AddUserScripts message is sent now again, from the UI process to the Web Process
    7.3. But at this point, the associated WebPage object has NOT been created in the Web Process yet, meaning that no &quot;message receiver&quot; callback has been installed either to process any AddUserScript message for that page
  8. In the Web process, the AddUserScript message is received anyway and processed by the IPC layer
    8.1. As no &quot;message receiver&quot; callback is found for that pageID, the message is simply discarded and the user script does not get added anywhere
  9. Also in the Web Process, a WebPage is created for the WebPageProxy instance that was just created in the UI process
    9.1. As it happened for the first WebPage created in step 2, a &quot;message receiver&quot; callback is installed now too to deal with incoming AddUserScripts message, which is **too late** now as the message has already arrived and got discarded :( 
  10. Finally, when the page loads, no user script will be executed at all since the WebCore::Page instance does not have it installed, as the message got discarded already (step 8.1).


Last, one final note to say that I only have a WebKitGTK+ environment available, where I can easily reproduce it with any stable release including the last one (2.10.4), BUT I can&apos;t reproduce with trunk after r192761 (&quot;[GTK] Use the network process unconditionally&quot;), which initially made me think it could be a GTK-only issue in the stable branch. However, looking a bit closer to the code, my feeling is that enabling the Network Process might not be a &quot;fix&quot; per-se to the issue at hand but something that, for some reason, prevents it from happening, which is why I still reported this bug as a cross-platform problem.

But I might be wrong, of course. Either way, I would appreciate any feedback/help anyone knowing more than me about this could provide 


STEPS TO REPRODUCE (WebKitGTK+ specific, sorry!):

  1. Build the attached test case and run it using a stable release of WebKit2GTK+ (e.g. 2.10.4)
  2. Observe the alert dialog showing up before loading the HTML content
  3. Click on the &apos;Reload&apos; button several times (feel free to specify a URI too)
  4. Each time you &apos;Reload&apos; you see the alert dialog showing up before loading
  5. Now click on &apos;Replace WebView&apos; and let the webview load
  6. After the page loaded, click on the &apos;Reload&apos; button several times again

EXPECTED OUTCOME

You should see the JavaScript alert dialog showing up each time you reload, before the actual content is rendered on the WebView.

ACTUAL OUTCOME

No JavaScript alert dialog shows up this time before loading after having replaced the webview (step 4), neither it will show up with further attempts to &apos;Reload&apos; the webview.

Note that manually killing the Web Process from the terminal after Step 4 will make the JavaScript alert dialog to show up again on reload, as a new Web Process will be spawned when creating a new WebView after that.

FREQUENCY: 10/10

Using this test case and the steps mentioned above with WebKit2GTK 2.10.2 and 2.10.4 (versions I tested), I can reproduce the issue 100% of the times</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226337</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-04 20:25:12 -0700</bug_when>
    <thetext>Hm, the test case no longer works with 2.12.4, so it looks like this might have been fixed somehow... bug I&apos;m quite suspicious, because GNOME #769627 is soooo similar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226506</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-05 13:33:02 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Hm, the test case no longer works with 2.12.4, so it looks like this might
&gt; have been fixed somehow...

Yes, in bug #153193.

&gt; bug I&apos;m quite suspicious, because GNOME #769627
&gt; is soooo similar.

Still not sure what&apos;s going on here.

*** This bug has been marked as a duplicate of bug 153193 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226587</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-05 22:51:38 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Still not sure what&apos;s going on here.

It turned out to be an Epiphany bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>267555</attachid>
            <date>2015-12-17 04:08:12 -0800</date>
            <delta_ts>2015-12-17 04:08:12 -0800</delta_ts>
            <desc>Test case in C (using WebKit2GTK+ API)</desc>
            <filename>testcase.c</filename>
            <type>text/plain</type>
            <size>5180</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgoKI2RlZmluZSBIVE1MX0NPTlRFTlQgIiBcCjxo
dG1sPiBcCiAgPGJvZHk+IFwKICAgIDxoMT5UZXN0IGNhc2UgZm9yIFdlYktpdFVzZXJDb250ZW50
TWFuYWdlcjwvaDE+IFwKICAgIDxoMz5ERVNDUklQVElPTjo8L2gzPiBcCiAgICA8cD4gXAogICAg
ICBUaGlzIHRlc3QgY2FzZSBjaGVja3MgdGhhdCB0aGUgaW5qZWN0ZWQgSmF2YVNjcmlwdCBjb2Rl
IGlzIGJlIGV4ZWN1dGVkIGVhY2ggXAogICAgICB0aW1lIGJlZm9yZSB0aGUgd2VidmlldyBsb2Fk
cyBjb250ZW50LCBidXQgZm9yIG5vdyB0aGlzIGlzIG9ubHkgdHJ1ZSB3aGVuIGNvbnRlbnQgXAog
ICAgICBpcyA8Yj5sb2FkZWQgaW4gYSBXZWJWaWV3IGNyZWF0ZWQgQkVGT1JFIHRoZSBhc3NvY2lh
dGVkIFdlYiBQcm9jZXNzIGhhcyBiZWVuIHNwYXduZWQ8L2I+LiBcCiAgICA8L3A+IFwKICAgIDxw
PiBcCiAgICAgIFRoaXMgbWVhbnMgdGhhdCBjbGlja2luZyBvbiB0aGUgJ1JlbG9hZCcgYnV0dG9u
IHJpZ2h0IGFmdGVyIGxhdW5jaCB3aWxsIFwKICAgICAgZXhlY3V0ZSB0aGUgSmF2YVNjcmlwdCBj
b2RlIGV2ZXJ5IHRpbWUgaXQgbG9hZHMgdGhlIGNvbnRlbnQsIDxiPnVudGlsIHlvdSBcCiAgICAg
IGNsaWNrIG9uICdSZXBsYWNlIFdlYlZpZXcnPC9iPi4gT25jZSB5b3UgcmVwbGFjZSB0aGUgV2Vi
VmlldyBvbmNlLCBmdXJ0aGVyIFwKICAgICAgbG9hZHMgb2YgdGhlIGNvbnRlbnQgd2lsbCA8Yj5O
T1Q8L2I+IHJ1biB0aGUgSmF2YVNjcmlwdCBjb2RlLCB3aGljaCBpcyBhIGJ1Zy4gXAogICAgPC9w
PiBcCiAgICA8aDM+U1RFUFMgVE8gUkVQUk9EVUNFOjwvaDM+IFwKICAgIDxwPiBcCiAgICA8b2w+
IFwKICAgICAgPGxpPkxhdW5jaCB0aGUgdGVzdCBjYXNlIGFuZCBvYnNlcnZlIHRoZSBhbGVydCBk
aWFsb2cgc2hvd2luZyB1cCBiZWZvcmUgbG9hZGluZzwvbGk+IFwKICAgICAgPGxpPkNsaWNrIG9u
IHRoZSAnUmVsb2FkJyBidXR0b24gc2V2ZXJhbCB0aW1lcyAoZmVlbCBmcmVlIHRvIHNwZWNpZnkg
YSBVUkkgdG9vKTwvbGk+IFwKICAgICAgPGxpPkVhY2ggdGltZSB5b3UgJ1JlbG9hZCcgeW91IHNl
ZSB0aGUgYWxlcnQgZGlhbG9nIHNob3dpbmcgdXAgYmVmb3JlIGxvYWRpbmc8L2xpPiBcCiAgICAg
IDxsaT5Ob3cgY2xpY2sgb24gJ1JlcGxhY2UgV2ViVmlldycgYW5kIGxldCB0aGUgd2VidmlldyBs
b2FkPC9saT4gXAogICAgICA8bGk+Tm93IGNsaWNrIG9uIHRoZSAnUmVsb2FkJyBidXR0b24gc2V2
ZXJhbCB0aW1lcyBhZ2FpbjwvbGk+IFwKICAgIDwvb2w+IFwKICAgIDwvcD4gXAogICAgPGgzPkVY
UEVDVEVEIE9VVENPTUU8L2gzPiBcCiAgICA8cD4gXAogICAgWW91IHNob3VsZCBzZWUgdGhlIGFs
ZXJ0IGRpYWxvZyBzaG93aW5nIHVwIGVhY2ggdGltZSB5b3UgcmVsb2FkLCBiZWZvcmUgdGhlIGFj
dHVhbCBcCiAgICBjb250ZW50IGlzIHJlbmRlcmVnIG9uIHRoZSBXZWJWaWV3LiBcCiAgICA8L3A+
IFwKICAgIDxoMz5BQ1RVQUwgT1VUQ09NRTwvaDM+IFwKICAgIDxwPiBcCiAgICBObyBhbGVydCBk
aWFsb2cgc2hvd3MgdXAgdGhpcyB0aW1lIGJlZm9yZSBsb2FkaW5nIGFmdGVyIGhhdmluZyByZXBs
YWNlZCB0aGUgd2VidmlldyBcCiAgICAoc3RlcCA0KSwgbmVpdGhlciBpdCB3aWxsIHNob3cgdXAg
d2l0aCBmdXJ0aGVyIGF0dGVtcHRzIHRvICdSZWxvYWQnIHRoZSB3ZWJ2aWV3LiBcCiAgICA8L3A+
IFwKICAgIDxoMz5PdGhlciBjb21tZW50czwvaDM+IFwKICAgIDxwPiBcCiAgICBOb3RlIHRoYXQg
bWFudWFsbHkga2lsbGluZyB0aGUgV2ViIFByb2Nlc3MgZnJvbSB0aGUgdGVybWluYWwgYWZ0ZXIg
U3RlcCA0IHdpbGwgbWFrZVwKICAgIHRoZSBhbGVydCBkaWFsb2cgdG8gc2hvdyB1cCBhZ2FpbiBv
biByZWxvYWQsIGFzIGEgbmV3IFdlYiBQcm9jZXNzIHdpbGwgYmUgc3Bhd25lZC4gXAogICAgPC9w
PiBcCiAgPC9ib2R5PiBcCjwvaHRtbD4gXAoiCgojZGVmaW5lIEpBVkFTQ1JJUFRfVE9fSU5KRUNU
ICJhbGVydCgnWW91IHNob3VsZCBzZWUgbWUgZWFjaCB0aW1lIHlvdSByZWxvYWQsIHNlcmlvdXNs
eScpIgoKc3RhdGljIEd0a1dpZGdldCogd2VidmlldyA9IE5VTEw7CnN0YXRpYyBHdGtXaWRnZXQq
IGVudHJ5ID0gTlVMTDsKc3RhdGljIEd0a1dpZGdldCogbWFpbl92Ym94ID0gTlVMTDsKCnN0YXRp
YyBHdGtXaWRnZXQqIGNyZWF0ZV93ZWJ2aWV3KCkKewogIFdlYktpdFVzZXJDb250ZW50TWFuYWdl
ciogY29udGVudF9tYW5hZ2VyID0gd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX25ldygpOwog
IFdlYktpdFVzZXJTY3JpcHQgKnVzZXJfc2NyaXB0ID0gd2Via2l0X3VzZXJfc2NyaXB0X25ldyhK
QVZBU0NSSVBUX1RPX0lOSkVDVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfVE9QX0ZSQU1F
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXRUJLSVRfVVNFUl9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VNRU5UX1NUQVJULAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxM
KTsKICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3NjcmlwdChjb250ZW50X21hbmFn
ZXIsIHVzZXJfc2NyaXB0KTsKICB3ZWJ2aWV3ID0gd2Via2l0X3dlYl92aWV3X25ld193aXRoX3Vz
ZXJfY29udGVudF9tYW5hZ2VyKGNvbnRlbnRfbWFuYWdlcik7CiAgZ19vYmplY3RfcmVmX3Npbmso
d2Vidmlldyk7CgogIHJldHVybiB3ZWJ2aWV3Owp9CgpzdGF0aWMgdm9pZCByZWxvYWRfY29udGVu
dCgpCnsKICBnX2F1dG9mcmVlIGdjaGFyKiBjdXJyZW50X3VyaSA9IGdfc3RyZHVwKGd0a19lbnRy
eV9nZXRfdGV4dChHVEtfRU5UUlkoZW50cnkpKSk7CgogIGlmIChnX3N0cmNtcDAoZ19zdHJzdHJp
cChjdXJyZW50X3VyaSksICIiKSkgewogICAgZ19wcmludCgiTG9hZGluZyBleGlzdGluZyBVUkkg
KCVzKS4uLlxuXG4iLCBjdXJyZW50X3VyaSk7CiAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF91cmkg
KFdFQktJVF9XRUJfVklFVyh3ZWJ2aWV3KSwgY3VycmVudF91cmkpOwogIH0gZWxzZSB7CiAgICBn
X3ByaW50KCJMb2FkaW5nIGRlZmF1bHQgSFRNTCBjb250ZW50IChubyBVUkkgc3BlY2lmaWVkKS4u
LlxuXG4iKTsKICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX2h0bWwgKFdFQktJVF9XRUJfVklFVyh3
ZWJ2aWV3KSwgSFRNTF9DT05URU5ULCBOVUxMKTsKICB9Cn0KCnN0YXRpYyB2b2lkIHJlbG9hZF9i
dXR0b25fY2xpY2tlZF9jYihHdGtCdXR0b24qIGJ1dHRvbiwgZ3BvaW50ZXIgdW51c2VkKQp7CiAg
cmVsb2FkX2NvbnRlbnQoKTsKfQoKc3RhdGljIHZvaWQgcmVwbGFjZV93ZWJ2aWV3X2J1dHRvbl9j
bGlja2VkX2NiKEd0a0J1dHRvbiogYnV0dG9uLCBncG9pbnRlciB1bnVzZWQpCnsKICBnX3ByaW50
KCJSZW1vdmluZyBhbmQgZGVzdHJveWluZyBvbGQgd2Vidmlldy4uLlxuIik7CiAgZ3RrX2NvbnRh
aW5lcl9yZW1vdmUoR1RLX0NPTlRBSU5FUihtYWluX3Zib3gpLCB3ZWJ2aWV3KTsKCiAgZ19wcmlu
dCgiQ3JlYXRpbmcgbmV3IHdlYnZpZXcuLi5cbiIpOwogIGlmICh3ZWJ2aWV3KQogICAgZ19jbGVh
cl9vYmplY3QoJndlYnZpZXcpOwogIHdlYnZpZXcgPSBjcmVhdGVfd2VidmlldygpOwogIGd0a193
aWRnZXRfc2hvdyh3ZWJ2aWV3KTsKCiAgZ19wcmludCgiUmUtYXR0YWNoaW5nIG5ldyB3ZWJ2aWV3
Li4uXG4iKTsKICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWChtYWluX3Zib3gpLCB3ZWJ2aWV3
LCBUUlVFLCBUUlVFLCAwKTsKCiAgZ19wcmludCgiUmVsb2FkaW5nIGNvbnRlbnQuLi5cbiIpOwog
IHJlbG9hZF9jb250ZW50KCk7Cn0KCmludCBtYWluIChpbnQgYXJnYywgY2hhcioqIGFyZ3YpCnsK
ICBndGtfaW5pdCAoJmFyZ2MsICZhcmd2KTsKCiAgR3RrV2lkZ2V0KiB3aW5kb3cgPSBndGtfd2lu
ZG93X25ldyAoR1RLX1dJTkRPV19UT1BMRVZFTCk7CiAgbWFpbl92Ym94ID0gZ3RrX2JveF9uZXcg
KEdUS19PUklFTlRBVElPTl9WRVJUSUNBTCwgMCk7CiAgZ3RrX2NvbnRhaW5lcl9hZGQgKEdUS19D
T05UQUlORVIod2luZG93KSwgbWFpbl92Ym94KTsKCiAgR3RrV2lkZ2V0KiBoYm94ID0gZ3RrX2Jv
eF9uZXcgKEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMLCAwKTsKCiAgZW50cnkgPSBndGtfZW50
cnlfbmV3KCk7CiAgZ3RrX2JveF9wYWNrX3N0YXJ0IChHVEtfQk9YKGhib3gpLCBlbnRyeSwgVFJV
RSwgVFJVRSwgMCk7CgogIEd0a1dpZGdldCogcmVsb2FkX2J1dHRvbiA9IGd0a19idXR0b25fbmV3
X3dpdGhfbGFiZWwoIlJlbG9hZCIpOwogIGd0a19ib3hfcGFja19zdGFydCAoR1RLX0JPWChoYm94
KSwgcmVsb2FkX2J1dHRvbiwgRkFMU0UsIEZBTFNFLCAwKTsKCiAgR3RrV2lkZ2V0KiByZXBsYWNl
X3dlYnZpZXdfYnV0dG9uID0gZ3RrX2J1dHRvbl9uZXdfd2l0aF9sYWJlbCgiUmVwbGFjZSBXZWJW
aWV3Iik7CiAgZ3RrX2JveF9wYWNrX3N0YXJ0IChHVEtfQk9YKGhib3gpLCByZXBsYWNlX3dlYnZp
ZXdfYnV0dG9uLCBGQUxTRSwgRkFMU0UsIDApOwoKICBndGtfYm94X3BhY2tfc3RhcnQgKEdUS19C
T1gobWFpbl92Ym94KSwgaGJveCwgRkFMU0UsIEZBTFNFLCAwKTsKCiAgd2VidmlldyA9IGNyZWF0
ZV93ZWJ2aWV3KCk7CiAgZ3RrX2JveF9wYWNrX3N0YXJ0IChHVEtfQk9YKG1haW5fdmJveCksIHdl
YnZpZXcsIFRSVUUsIFRSVUUsIDApOwoKICBnX3NpZ25hbF9jb25uZWN0IChyZWxvYWRfYnV0dG9u
LCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0socmVsb2FkX2J1dHRvbl9jbGlja2VkX2NiKSwgTlVMTCk7
CiAgZ19zaWduYWxfY29ubmVjdCAocmVwbGFjZV93ZWJ2aWV3X2J1dHRvbiwgImNsaWNrZWQiLCBH
X0NBTExCQUNLKHJlcGxhY2Vfd2Vidmlld19idXR0b25fY2xpY2tlZF9jYiksIE5VTEwpOwogIGdf
c2lnbmFsX2Nvbm5lY3QgKHdpbmRvdywgImRlbGV0ZS1ldmVudCIsIEdfQ0FMTEJBQ0soZ3RrX21h
aW5fcXVpdCksIE5VTEwpOwoKICBndGtfd2luZG93X3NldF9kZWZhdWx0X3NpemUgKEdUS19XSU5E
T1cgKHdpbmRvdyksIDgwMCwgNjAwKTsKICBndGtfd2lkZ2V0X3Nob3dfYWxsICh3aW5kb3cpOwoK
ICByZWxvYWRfY29udGVudCgpOwoKICBndGtfbWFpbigpOwoKICByZXR1cm4gMDsKfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>