<?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>55473</bug_id>
          
          <creation_ts>2011-03-01 08:42:06 -0800</creation_ts>
          <short_desc>[GTK] Add support for external protocol handlers</short_desc>
          <delta_ts>2011-03-02 22:42:51 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>brettw</cc>
    
    <cc>eric</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>359913</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-03-01 08:42:06 -0800</bug_when>
    <thetext>In order to do that we need:
   * Some way to disable the default  handling of about: protocols in webcore (by default about: means empty document)
   * WebKitGtk+ API to disable the about: default behaviour commented above</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359916</commentid>
    <comment_count>1</comment_count>
      <attachid>84235</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-03-01 08:51:06 -0800</bug_when>
    <thetext>Created attachment 84235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359934</commentid>
    <comment_count>2</comment_count>
      <attachid>84235</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-03-01 09:21:52 -0800</bug_when>
    <thetext>Comment on attachment 84235
Patch

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

Instead of adding new API (though perhaps we still want to), would it make sense to just query soup for an installed &quot;about:&quot; handler while handling a request. If the handler is installed then remove it from the empty document schemas.

What does Chromium do to get around the empty document scheme issue?

&gt; Source/WebKit/gtk/webkit/webkitglobals.cpp:220
&gt; +void webkit_register_url_scheme_as_local (const gchar* scheme)
&gt; +{
&gt; +    webkitInit();
&gt; +    SchemeRegistry::registerURLSchemeAsLocal(String::fromUTF8(scheme));
&gt; +}
&gt; +
&gt; +void webkit_remove_url_scheme_registered_as_local (const gchar* scheme)
&gt; +{
&gt; +    webkitInit();
&gt; +    SchemeRegistry::removeURLSchemeRegisteredAsLocal(String::fromUTF8(scheme));
&gt; +}
&gt; +
&gt; +void webkit_register_url_scheme_as_empty_document (const gchar* scheme)
&gt; +{
&gt; +    webkitInit();
&gt; +    SchemeRegistry::registerURLSchemeAsEmptyDocument(String::fromUTF8(scheme));
&gt; +}
&gt; +
&gt; +void webkit_remove_url_scheme_registered_as_empty_document (const gchar* scheme)
&gt; +{
&gt; +    webkitInit();
&gt; +    SchemeRegistry::removeURLSchemeRegisteredAsEmptyDocument(String::fromUTF8(scheme));
&gt; +}

extra space after the function names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359989</commentid>
    <comment_count>3</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-03-01 10:15:49 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 84235 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84235&amp;action=review
&gt; 
&gt; Instead of adding new API (though perhaps we still want to), would it make sense to just query soup for an installed &quot;about:&quot; handler while handling a request. If the handler is installed then remove it from the empty document schemas.

That&apos;s indeed possible. I went for the new API approach because all the other ports offer that API, so I thought it&apos;d be sensible to have it also in WebKitGtk+.

&gt; What does Chromium do to get around the empty document scheme issue?

I didn&apos;t check that but Dan commented once that they just don&apos;t issue the request to webkit and handle it all at browser&apos;s level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360072</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-01 11:53:48 -0800</bug_when>
    <thetext>I&apos;m really not the protocol expert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360123</commentid>
    <comment_count>5</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-03-01 12:39:46 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 84235 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84235&amp;action=review
&gt; 
&gt; Instead of adding new API (though perhaps we still want to), would it make sense to just query soup for an installed &quot;about:&quot; handler while handling a request. If the handler is installed then remove it from the empty document schemas.

BTW forget about my answer, I missunderstood what you meant. What you suggest isn&apos;t possible because the request does not even reach the platform network layer as it&apos;s handled internally by WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360124</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-03-01 12:40:44 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; Instead of adding new API (though perhaps we still want to), would it make sense to just query soup for an installed &quot;about:&quot; handler while handling a request. If the handler is installed then remove it from the empty document schemas.
&gt; BTW forget about my answer, I missunderstood what you meant. What you suggest isn&apos;t possible because the request does not even reach the platform network layer as it&apos;s handled internally by WebCore.

I guess this could be handled in the WebKit layer. Perhaps FrameLoaderClient allows some access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360191</commentid>
    <comment_count>7</comment_count>
      <attachid>84235</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-01 13:37:12 -0800</bug_when>
    <thetext>Comment on attachment 84235
Patch

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

&gt; Source/WebCore/platform/SchemeRegistry.cpp:82
&gt; +    DEFINE_STATIC_LOCAL(bool, firstTime, (true));

I don&apos;t think this is needed for primitive types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360192</commentid>
    <comment_count>8</comment_count>
      <attachid>84235</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-01 13:39:39 -0800</bug_when>
    <thetext>Comment on attachment 84235
Patch

This isn&apos;t really a good idea.  That about scheme is super magical.  Putting non-empty documents in the about scheme doesn&apos;t really work.

The about:blah URLs in Chrome are handled by the embedder.  Typically, they&apos;re either translated to a data URL for WebKit or to another internal URL in the &quot;chrome&quot; scheme.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360669</commentid>
    <comment_count>9</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-03-02 02:17:24 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 84235 [details])
&gt; This isn&apos;t really a good idea.  That about scheme is super magical.  Putting non-empty documents in the about scheme doesn&apos;t really work.

Just for the sake of knowing a bit more about WebCore guts, what is special about the &quot;about:&quot; protocol? What kind of tricky stuff does it?

&gt; The about:blah URLs in Chrome are handled by the embedder.  Typically, they&apos;re either translated to a data URL for WebKit or to another internal URL in the &quot;chrome&quot; scheme.

Ok, I&apos;ll follow that approach then. Thanks for reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360670</commentid>
    <comment_count>10</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-03-02 02:19:32 -0800</bug_when>
    <thetext>Renaming the bug title. We&apos;re not going to change the &quot;about:&quot; behaviour but we still need to allow external protocol handlers. In order to do that we have to allow clients to create their own SoupRequesters that will be used to register new protocols.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360671</commentid>
    <comment_count>11</comment_count>
      <attachid>84384</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-03-02 02:21:07 -0800</bug_when>
    <thetext>Created attachment 84384
Patch

I just kept the ResourceHandleSoup part of the original patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360868</commentid>
    <comment_count>12</comment_count>
      <attachid>84384</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-03-02 10:03:27 -0800</bug_when>
    <thetext>Comment on attachment 84384
Patch

Clearing flags on attachment: 84384

Committed r80143: &lt;http://trac.webkit.org/changeset/80143&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360869</commentid>
    <comment_count>13</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-03-02 10:03:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361367</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-02 22:42:51 -0800</bug_when>
    <thetext>&gt; Just for the sake of knowing a bit more about WebCore guts, what is special about the &quot;about:&quot; protocol? What kind of tricky stuff does it?

Some examples:

1) Loads of about: URLs are synchronous instead of asynchronous.
2) about: URLs inherit the security context of their parent (or opener if there isn&apos;t a parent).
3) about: URLs are used internally by the WebKit in various situations where having a non-empty document would be problematic (e.g., frame initialization and in the XSS filter).

(2) is really scary if about: URLs start containing anything besides the empty document.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84235</attachid>
            <date>2011-03-01 08:51:06 -0800</date>
            <delta_ts>2011-03-02 02:21:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Fix-for-55473.patch</filename>
            <type>text/plain</type>
            <size>7488</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">RnJvbSAxYTFmYWY0NmY2YjhmNDE5OGUyNTdmZDI2ZTQyNzZkOGUzNmMyMjBmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnaW8gVmlsbGFyIFNlbmluIDxzdmlsbGFyQGlnYWxpYS5j
b20+CkRhdGU6IFR1ZSwgMSBNYXIgMjAxMSAxNzo1MDoxNSArMDEwMApTdWJqZWN0OiBbUEFUQ0hd
IEZpeCBmb3IgNTU0NzMKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE4ICsrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwICAgICAgICAgfCAgIDEwICsrKysrKystCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oICAgICAgICAgICB8ICAgIDEgKwogLi4u
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwICAgfCAgICA4ICsr
KystLQogU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDE3ICsrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xv
YmFscy5jcHAgICAgICAgICB8ICAgMjQgKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRnbG9iYWxzLmggICAgICAgICAgIHwgICAxMiArKysrKysrKysr
CiA3IGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGI4YjllZWQuLjA3ODNhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxMS0wMy0wMSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBBZGQg
c3VwcG9ydCBmb3IgYWJvdXQ6IHByb3RvY29sIGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTQ3MworCisgICAgICAgIEFkZGVkIG5ldyBX
ZWJDb3JlIEFQSSB0byByZW1vdmUgZW1wdHkgZG9jdW1lbnQgcHJvdG9jb2xzIGZyb20gdGhlCisg
ICAgICAgIFNjaGVtZVJlZ2lzdHJ5LiBBcGFydCBmcm9tIHRoYXQsIHRoZSBhYm91dDogcHJvdG9j
b2wgaXMgbm8gbG9uZ2VyCisgICAgICAgIHJlLWFkZGVkIHRvIHRoZSBsaXN0IG9mIGVtcHR5RG9j
dW1lbnQgc2NoZW1lcyB3aGVuIHJlbW92ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hlbWVS
ZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbXB0eURvY3VtZW50U2NoZW1lcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJl
ZEFzRW1wdHlEb2N1bWVudCk6CisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmVuc3VyZVNlc3Npb25Jc0luaXRpYWxpemVkKToKKwogMjAxMS0w
Mi0yOCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBO
b3QgcmV2aWV3ZWQ6IGNocm9taXVtIHJlYnVpbGRzIFhNTFZpZXdlciBhZnRlciBub29wLiBGaXhl
ZCBneXAgZmlsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJl
Z2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcApp
bmRleCAyYmM2NTVlLi4zYjIyODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY2hlbWVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1l
UmVnaXN0cnkuY3BwCkBAIC03OSw5ICs3OSwxMiBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2No
ZW1lc1dpdGhVbmlxdWVPcmlnaW5zKCkKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBlbXB0eURvY3Vt
ZW50U2NoZW1lcygpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBl
bXB0eURvY3VtZW50U2NoZW1lcywgKCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoYm9vbCwg
Zmlyc3RUaW1lLCAodHJ1ZSkpOwogCi0gICAgaWYgKGVtcHR5RG9jdW1lbnRTY2hlbWVzLmlzRW1w
dHkoKSkKKyAgICBpZiAoZmlyc3RUaW1lICYmIGVtcHR5RG9jdW1lbnRTY2hlbWVzLmlzRW1wdHko
KSkgewogICAgICAgICBlbXB0eURvY3VtZW50U2NoZW1lcy5hZGQoImFib3V0Iik7CisgICAgICAg
IGZpcnN0VGltZSA9IGZhbHNlOworICAgIH0KIAogICAgIHJldHVybiBlbXB0eURvY3VtZW50U2No
ZW1lczsKIH0KQEAgLTE3Myw2ICsxNzYsMTEgQEAgdm9pZCBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0
ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiAgICAgZW1w
dHlEb2N1bWVudFNjaGVtZXMoKS5hZGQoc2NoZW1lKTsKIH0KIAordm9pZCBTY2hlbWVSZWdpc3Ry
eTo6cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVudChjb25zdCBTdHJpbmcm
IHNjaGVtZSkKK3sKKyAgICBlbXB0eURvY3VtZW50U2NoZW1lcygpLnJlbW92ZShzY2hlbWUpOwor
fQorCiBib29sIFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRMb2FkVVJMU2NoZW1lQXNFbXB0eURvY3Vt
ZW50KGNvbnN0IFN0cmluZyYgc2NoZW1lKQogewogICAgIGlmIChzY2hlbWUuaXNFbXB0eSgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmgKaW5kZXggYzljYjQ3Ni4uMWMz
YTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCkBAIC01Nyw2
ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdFVSTFNjaGVtZUFz
RGlzcGxheUlzb2xhdGVkKGNvbnN0IFN0cmluZyYpOwogCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIHZv
aWQgcmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVudChjb25zdCBTdHJpbmcm
KTsKICAgICBzdGF0aWMgYm9vbCBzaG91bGRMb2FkVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KGNv
bnN0IFN0cmluZyYpOwogCiAgICAgLy8gU3VjaCBzY2hlbWVzIHNob3VsZCBkZWxlZ2F0ZSB0byBT
ZWN1cml0eU9yaWdpbjo6Y2FuUmVxdWVzdCBmb3IgYW55IFVSTApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAppbmRleCBjNTc5YzZlLi5kNDEwZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtMTcx
LDkgKzE3MSwxMSBAQCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uSXNJbml0aWFsaXplZChTb3Vw
U2Vzc2lvbiogc2Vzc2lvbikKICAgICAgICAgZ19vYmplY3RfdW5yZWYobG9nZ2VyKTsKICAgICB9
CiAKLSAgICBTb3VwUmVxdWVzdGVyKiByZXF1ZXN0ZXIgPSBzb3VwX3JlcXVlc3Rlcl9uZXcoKTsK
LSAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRV
UkUocmVxdWVzdGVyKSk7Ci0gICAgZ19vYmplY3RfdW5yZWYocmVxdWVzdGVyKTsKKyAgICBpZiAo
IXNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVfUkVRVUVTVEVSKSkg
eworICAgICAgICBTb3VwUmVxdWVzdGVyKiByZXF1ZXN0ZXIgPSBzb3VwX3JlcXVlc3Rlcl9uZXco
KTsKKyAgICAgICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfU0VTU0lP
Tl9GRUFUVVJFKHJlcXVlc3RlcikpOworICAgICAgICBnX29iamVjdF91bnJlZihyZXF1ZXN0ZXIp
OworICAgIH0KIAogICAgIGdfb2JqZWN0X3NldChzZXNzaW9uLAogICAgICAgICAgICAgICAgICBT
T1VQX1NFU1NJT05fTUFYX0NPTk5TLCBtYXhDb25uZWN0aW9ucywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRl
eCAwODU0NTA1Li44YTlmMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTEtMDMtMDEgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gQWRkIHN1
cHBvcnQgZm9yIGFib3V0OiBwcm90b2NvbCBoYW5kbGVycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTU0NzMKKworICAgICAgICBBZGRlZCBuZXcgQVBJ
IHRvIHJlZ2lzdGVyL3JlbW92ZSBVUkwgc2NoZW1lcyBhcyBsb2NhbCBvcgorICAgICAgICBlbXB0
eURvY3VtZW50LgorCisgICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgorICAgICAg
ICAod2Via2l0X3JlZ2lzdGVyX3VybF9zY2hlbWVfYXNfbG9jYWwpOgorICAgICAgICAod2Via2l0
X3JlbW92ZV91cmxfc2NoZW1lX3JlZ2lzdGVyZWRfYXNfbG9jYWwpOgorICAgICAgICAod2Via2l0
X3JlZ2lzdGVyX3VybF9zY2hlbWVfYXNfZW1wdHlfZG9jdW1lbnQpOgorICAgICAgICAod2Via2l0
X3JlbW92ZV91cmxfc2NoZW1lX3JlZ2lzdGVyZWRfYXNfZW1wdHlfZG9jdW1lbnQpOgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXRnbG9iYWxzLmg6CisKIDIwMTEtMDItMjggIENoYW5nIFNodSAgPGNz
aHVAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5jcHAKaW5kZXggMDUyODAwZC4uNTc1
Yzg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnbG9iYWxzLmNwcApAQCAt
MzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2Uu
aCIKKyNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIndlYmtpdGFwcGxpY2F0
aW9uY2FjaGUuaCIKICNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJpdmF0ZS5oIgogI2luY2x1ZGUg
IndlYmtpdHNvdXBhdXRoZGlhbG9nLmgiCkBAIC0xOTQsNiArMTk1LDI5IEBAIFdlYktpdFdlYlBs
dWdpbkRhdGFiYXNlKiB3ZWJraXRfZ2V0X3dlYl9wbHVnaW5fZGF0YWJhc2UoKQogICAgIHJldHVy
biBkYXRhYmFzZTsKIH0KIAordm9pZCB3ZWJraXRfcmVnaXN0ZXJfdXJsX3NjaGVtZV9hc19sb2Nh
bCAoY29uc3QgZ2NoYXIqIHNjaGVtZSkKK3sKKyAgICB3ZWJraXRJbml0KCk7CisgICAgU2NoZW1l
UmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbChTdHJpbmc6OmZyb21VVEY4KHNjaGVt
ZSkpOworfQorCit2b2lkIHdlYmtpdF9yZW1vdmVfdXJsX3NjaGVtZV9yZWdpc3RlcmVkX2FzX2xv
Y2FsIChjb25zdCBnY2hhciogc2NoZW1lKQoreworICAgIHdlYmtpdEluaXQoKTsKKyAgICBTY2hl
bWVSZWdpc3RyeTo6cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzTG9jYWwoU3RyaW5nOjpmcm9t
VVRGOChzY2hlbWUpKTsKK30KKwordm9pZCB3ZWJraXRfcmVnaXN0ZXJfdXJsX3NjaGVtZV9hc19l
bXB0eV9kb2N1bWVudCAoY29uc3QgZ2NoYXIqIHNjaGVtZSkKK3sKKyAgICB3ZWJraXRJbml0KCk7
CisgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KFN0
cmluZzo6ZnJvbVVURjgoc2NoZW1lKSk7Cit9CisKK3ZvaWQgd2Via2l0X3JlbW92ZV91cmxfc2No
ZW1lX3JlZ2lzdGVyZWRfYXNfZW1wdHlfZG9jdW1lbnQgKGNvbnN0IGdjaGFyKiBzY2hlbWUpCit7
CisgICAgd2Via2l0SW5pdCgpOworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZW1vdmVVUkxTY2hlbWVS
ZWdpc3RlcmVkQXNFbXB0eURvY3VtZW50KFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSk7Cit9CiAK
IHN0YXRpYyBHdGtXaWRnZXQqIGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKFdlYktpdFNvdXBBdXRo
RGlhbG9nKiBmZWF0dXJlLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgZ3BvaW50ZXIgdXNlckRhdGEp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5o
IGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMuaAppbmRleCA2MTJjMTk1
Li5kZDgyYzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xv
YmFscy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnbG9iYWxzLmgKQEAg
LTY0LDYgKzY0LDE4IEBAIHdlYmtpdF9zZXRfY2FjaGVfbW9kZWwgICAgICAgICAgICAgICAgICAg
ICAgICAgIChXZWJLaXRDYWNoZU1vZGVsICAgICBjYWNoZV9tb2RlCiBXRUJLSVRfQVBJIFdlYktp
dENhY2hlTW9kZWwKIHdlYmtpdF9nZXRfY2FjaGVfbW9kZWwgICAgICAgICAgICAgICAgICAgICAg
ICAgICh2b2lkKTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfcmVnaXN0ZXJfdXJsX3NjaGVt
ZV9hc19sb2NhbCAgICAgICAgICAgICAoY29uc3QgZ2NoYXIqIHNjaGVtZSk7CisKK1dFQktJVF9B
UEkgdm9pZAord2Via2l0X3JlbW92ZV91cmxfc2NoZW1lX3JlZ2lzdGVyZWRfYXNfbG9jYWwgICAg
KGNvbnN0IGdjaGFyKiBzY2hlbWUpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9yZWdpc3Rl
cl91cmxfc2NoZW1lX2FzX2VtcHR5X2RvY3VtZW50ICAgIChjb25zdCBnY2hhciogc2NoZW1lKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfcmVtb3ZlX3VybF9zY2hlbWVfcmVnaXN0ZXJlZF9h
c19lbXB0eV9kb2N1bWVudCAoY29uc3QgZ2NoYXIqIHNjaGVtZSk7CisKIEdfRU5EX0RFQ0xTCiAK
ICNlbmRpZgotLSAKMS43LjIuMwoK
</data>
<flag name="review"
          id="76203"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84384</attachid>
            <date>2011-03-02 02:21:07 -0800</date>
            <delta_ts>2011-03-02 10:03:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>handler.patch</filename>
            <type>text/plain</type>
            <size>1704</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMTlkY2Y1Li45ZmEyZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTEtMDMtMDIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10g
QWRkIHN1cHBvcnQgZm9yIGV4dGVybmFsIHByb3RvY29sIGhhbmRsZXJzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTQ3MworCisgICAgICAgIERvIG5v
dCB1bmNvbmRpdGlvbmFsbHkgY3JlYXRlIGFuZCByZXBsYWNlIHRoZSBTb3VwUmVxdWVzdGVyIG9m
IHRoZQorICAgICAgICBTb3VwU2Vzc2lvbiBpZiB0aGVyZSBpcyBhbHJlYWR5IG9uZS4gTm8gbmV3
IHRlc3RzIG5lZWRlZCBhcyB3ZQorICAgICAgICBqdXN0IGFsbG93IGNsaWVudHMgdG8gY3JlYXRl
IHRoZWlyIG91ciBTb3VwUmVxdWVzdGVycy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlU2Vz
c2lvbklzSW5pdGlhbGl6ZWQpOgorCiAyMDExLTAzLTAyICBSZW5hdGEgSG9kb3ZhbiAgPHJlbmlA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcAppbmRleCBjNTc5YzZlLi5kNDEwZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcApAQCAtMTcxLDkgKzE3MSwxMSBAQCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uSXNJbml0
aWFsaXplZChTb3VwU2Vzc2lvbiogc2Vzc2lvbikKICAgICAgICAgZ19vYmplY3RfdW5yZWYobG9n
Z2VyKTsKICAgICB9CiAKLSAgICBTb3VwUmVxdWVzdGVyKiByZXF1ZXN0ZXIgPSBzb3VwX3JlcXVl
c3Rlcl9uZXcoKTsKLSAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9T
RVNTSU9OX0ZFQVRVUkUocmVxdWVzdGVyKSk7Ci0gICAgZ19vYmplY3RfdW5yZWYocmVxdWVzdGVy
KTsKKyAgICBpZiAoIXNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVf
UkVRVUVTVEVSKSkgeworICAgICAgICBTb3VwUmVxdWVzdGVyKiByZXF1ZXN0ZXIgPSBzb3VwX3Jl
cXVlc3Rlcl9uZXcoKTsKKyAgICAgICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlKHNlc3Npb24s
IFNPVVBfU0VTU0lPTl9GRUFUVVJFKHJlcXVlc3RlcikpOworICAgICAgICBnX29iamVjdF91bnJl
ZihyZXF1ZXN0ZXIpOworICAgIH0KIAogICAgIGdfb2JqZWN0X3NldChzZXNzaW9uLAogICAgICAg
ICAgICAgICAgICBTT1VQX1NFU1NJT05fTUFYX0NPTk5TLCBtYXhDb25uZWN0aW9ucywK
</data>

          </attachment>
      

    </bug>

</bugzilla>