<?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>37228</bug_id>
          
          <creation_ts>2010-04-07 12:07:56 -0700</creation_ts>
          <short_desc>Allow white listing access from origin to local origin</short_desc>
          <delta_ts>2010-04-07 15:59:41 -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>Page Loading</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>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Erik Arvidsson">arv</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>209769</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-04-07 12:07:56 -0700</bug_when>
    <thetext>Allow white listing access from domain to local files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209795</commentid>
    <comment_count>1</comment_count>
      <attachid>52774</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-04-07 13:06:29 -0700</bug_when>
    <thetext>Created attachment 52774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209806</commentid>
    <comment_count>2</comment_count>
      <attachid>52774</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-07 13:24:15 -0700</bug_when>
    <thetext>Comment on attachment 52774
Patch

I like the approach.  Two comments:

 301         if (OriginAccessWhiteList* list = originAccessMap().get(documentOrigin-&gt;toString())) {
 302             PassRefPtr&lt;SecurityOrigin&gt; targetOrigin = SecurityOrigin::create(url);
 303             for (size_t i = 0; i &lt; list-&gt;size();  ++i) {
 304                 if (list-&gt;at(i).matchesOrigin(*targetOrigin))
 305                     return true;
 306             }
 307         }

This looks like copy/paste code.  Can we abstract that into a private method?

+var localImageLocation = layoutTestController.pathToLocalResource(&apos;file:///tmp/LayoutTests/http/tests/security/resources/compass.jpg&apos;);

Will this file URL work on all platforms (e.g., Windows)?  Is this how other tests do this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209831</commentid>
    <comment_count>3</comment_count>
      <attachid>52780</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-04-07 14:16:17 -0700</bug_when>
    <thetext>Created attachment 52780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209834</commentid>
    <comment_count>4</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-04-07 14:19:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 52774 [details])
&gt; I like the approach.  Two comments:
&gt; 
&gt;  301         if (OriginAccessWhiteList* list =
&gt; originAccessMap().get(documentOrigin-&gt;toString())) {
&gt;  302             PassRefPtr&lt;SecurityOrigin&gt; targetOrigin =
&gt; SecurityOrigin::create(url);
&gt;  303             for (size_t i = 0; i &lt; list-&gt;size();  ++i) {
&gt;  304                 if (list-&gt;at(i).matchesOrigin(*targetOrigin))
&gt;  305                     return true;
&gt;  306             }
&gt;  307         }
&gt; 
&gt; This looks like copy/paste code.  Can we abstract that into a private method?

Done.

I was initially reluctant to do this since it requires us to always create the targetOrigin SecuritOrigin even if the list is empty but I don&apos;t think this is an issue since we only get here for local files and creating a SecurityOrigin seems pretty cheap since it is done a lot already.

&gt; 
&gt; +var localImageLocation =
&gt; layoutTestController.pathToLocalResource(&apos;file:///tmp/LayoutTests/http/tests/security/resources/compass.jpg&apos;);
&gt; 
&gt; Will this file URL work on all platforms (e.g., Windows)?  Is this how other
&gt; tests do this?

This is how other tests do it. I only ran the test on Mac though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209839</commentid>
    <comment_count>5</comment_count>
      <attachid>52780</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-07 14:22:46 -0700</bug_when>
    <thetext>Comment on attachment 52780
Patch

+ bool isAccessWhiteListed(const SecurityOrigin&amp; targetOrigin) const;

We should be passing around SecurityOrigin as a SecurityOrigin* not a const SecurityOrigin&amp; because its a pointer type, not a reference type.

What was the resolution on

+var localImageLocation = layoutTestController.pathToLocalResource(&apos;file:///tmp/LayoutTests/http/tests/security/resources/compass.jpg&apos;);

?

+        PassRefPtr&lt;SecurityOrigin&gt; targetOrigin = SecurityOrigin::create(url);

This should be a RefPtr.  PassRefPtr is only for parameter.  You might find it useful to read this documentation:

http://webkit.org/coding/RefPtr.html

Other than that, this patch is looking good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209840</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-07 14:23:26 -0700</bug_when>
    <thetext>&gt; This is how other tests do it. I only ran the test on Mac though.

Ah, ok.  Good.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209855</commentid>
    <comment_count>7</comment_count>
      <attachid>52785</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-04-07 14:51:33 -0700</bug_when>
    <thetext>Created attachment 52785
Changed to RefPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209875</commentid>
    <comment_count>8</comment_count>
      <attachid>52785</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-07 15:35:11 -0700</bug_when>
    <thetext>Comment on attachment 52785
Changed to RefPtr

Great.  Thanks for the patch.

+ const SecurityOrigin*

We don&apos;t usually use const pointers as parameters, but I see that there&apos;s already an example of this in the file.  Would you be willing to make a followup patch (in a new bug) that removes all the examples in this file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209879</commentid>
    <comment_count>9</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-04-07 15:40:02 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 52785 [details])
&gt; Great.  Thanks for the patch.
&gt; 
&gt; + const SecurityOrigin*
&gt; 
&gt; We don&apos;t usually use const pointers as parameters, but I see that there&apos;s
&gt; already an example of this in the file.  Would you be willing to make a
&gt; followup patch (in a new bug) that removes all the examples in this file?

OK. Will do.

Thanks for the review and the pointer to the PassRefPtr/RefPtr doc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209891</commentid>
    <comment_count>10</comment_count>
      <attachid>52785</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-07 15:59:36 -0700</bug_when>
    <thetext>Comment on attachment 52785
Changed to RefPtr

Clearing flags on attachment: 52785

Committed r57238: &lt;http://trac.webkit.org/changeset/57238&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209892</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-07 15:59:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52774</attachid>
            <date>2010-04-07 13:06:29 -0700</date>
            <delta_ts>2010-04-07 14:16:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37228-20100407130627.patch</filename>
            <type>text/plain</type>
            <size>5236</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NDNmZmFkLi41MTk0NGU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDQt
MDcgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyB3aGl0ZSBsaXN0aW5nIGFjY2Vz
cyBmcm9tIGRvbWFpbiB0byBsb2NhbCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMjgKKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3Rl
LXdoaXRlbGlzdGVkLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA0LTAxICBZdXpvIEZ1amlzaGltYSAg
PHl1em9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJv
bS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU1ZTM3NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJv
bS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitUaGlz
IHRlc3QgaXMgdG8gc2VlIGlmIGEgcmVtb3RlIGZpbGUgY2FuIGluY2x1ZGUgYSBsb2NhbCBpbWFn
ZSB3aGVuIHRoZSBhY2Nlc3MgaGFzIGJlZW4gd2hpdGUgbGlzdGVkIHVzaW5nIHdoaXRlTGlzdEFj
Y2Vzc0Zyb21PcmlnaW4uCisKK1Rlc3QgUGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3Rl
bHkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWlt
YWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmViY2NkMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUt
d2hpdGVsaXN0ZWQuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+CisKKzxzY3JpcHQ+CisKK2xheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKK2xheW91dFRlc3RDb250cm9sbGVyLndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oJ2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUpOworCit2YXIgbG9jYWxJbWFnZUxv
Y2F0aW9uID0gbGF5b3V0VGVzdENvbnRyb2xsZXIucGF0aFRvTG9jYWxSZXNvdXJjZSgnZmlsZTov
Ly90bXAvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5q
cGcnKTsKKwordmFyIGxvY2FsSW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aW1nJyk7Citsb2NhbEltYWdlRWxlbWVudC5zcmMgPSBsb2NhbEltYWdlTG9jYXRpb247Citkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGxvY2FsSW1hZ2VFbGVtZW50KTsKKword2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzdWx0Jyk7CisgICAgaWYgKGxvY2FsSW1hZ2VFbGVtZW50LmhlaWdodCA9PSAwICYmIGxv
Y2FsSW1hZ2VFbGVtZW50LndpZHRoID09IDApCisgICAgICAgIHJlc3VsdC50ZXh0Q29udGVudCA9
ICdUZXN0IEZhaWxlZDogTG9jYWwgaW1hZ2Ugbm90IGxvYWRlZCByZW1vdGVseS4nOworICAgIGVs
c2UKKyAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gJ1Rlc3QgUGFzc2VkLiBMb2NhbCBpbWFn
ZSBsb2FkZWQgcmVtb3RlbHkuJzsKK307CisKKzwvc2NyaXB0PgorCis8cD5UaGlzIHRlc3QgaXMg
dG8gc2VlIGlmIGEgcmVtb3RlIGZpbGUgY2FuIGluY2x1ZGUgYSBsb2NhbCBpbWFnZSB3aGVuIHRo
ZQorYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZCB1c2luZyB3aGl0ZUxpc3RBY2Nlc3NGcm9t
T3JpZ2luLgorCis8cCBpZD1yZXN1bHQ+VGVzdCBoYXMgbm90IHJ1bi4KKworPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA5ODViODI4Li4xYzU2MjM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA0LTA3ICBFcmlrIEFy
dmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgd2hpdGUgbGlzdGluZyBhY2Nlc3MgZnJvbSBkb21h
aW4gdG8gbG9jYWwgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM3MjI4CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS9sb2Nh
bC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sCisKKyAgICAgICAgKiBwYWdlL09y
aWdpbkFjY2Vzc0VudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9yaWdpbkFjY2Vzc0VudHJ5
OjpPcmlnaW5BY2Nlc3NFbnRyeSk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuTG9hZCk6CisKIDIwMTAtMDQt
MDYgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9PcmlnaW5BY2Nl
c3NFbnRyeS5jcHAgYi9XZWJDb3JlL3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwCmluZGV4IDk4
YzI4MGMuLjdmZjY3Y2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9PcmlnaW5BY2Nlc3NFbnRy
eS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcApAQCAtNDAsNyAr
NDAsNiBAQCBPcmlnaW5BY2Nlc3NFbnRyeTo6T3JpZ2luQWNjZXNzRW50cnkoY29uc3QgU3RyaW5n
JiBwcm90b2NvbCwgY29uc3QgU3RyaW5nJiBob3N0LAogICAgICwgbV9ob3N0KGhvc3QubG93ZXIo
KSkKICAgICAsIG1fc3ViZG9tYWluU2V0dGluZ3Moc3ViZG9tYWluU2V0dGluZykKIHsKLSAgICBB
U1NFUlQobV9wcm90b2NvbCA9PSAiaHR0cCIgfHwgbV9wcm90b2NvbCA9PSAiaHR0cHMiKTsKICAg
ICBBU1NFUlQoc3ViZG9tYWluU2V0dGluZyA9PSBBbGxvd1N1YmRvbWFpbnMgfHwgc3ViZG9tYWlu
U2V0dGluZyA9PSBEaXNhbGxvd1N1YmRvbWFpbnMpOwogCiAgICAgLy8gQXNzdW1lIHRoYXQgYW55
IGhvc3QgdGhhdCBlbmRzIHdpdGggYSBkaWdpdCBpcyB0cnlpbmcgdG8gYmUgYW4gSVAgYWRkcmVz
cy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAgYi9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDkxMjg5NWMuLjYyYmZlNTMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1Nl
Y3VyaXR5T3JpZ2luLmNwcApAQCAtMjkzLDEwICsyOTMsMjAgQEAgYm9vbCBTZWN1cml0eU9yaWdp
bjo6Y2FuTG9hZChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIERvY3Vt
ZW50KgogICAgIGlmICghc2hvdWxkVHJlYXRVUkxBc0xvY2FsKHVybC5zdHJpbmcoKSkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gSWYgd2Ugd2VyZSBwcm92aWRlZCBhIGRvY3VtZW50
LCB3ZSBsZXQgaXRzIGxvY2FsIGZpbGUgcG9saWN5IGRpY3RhdGUgdGhlIHJlc3VsdCwKLSAgICAv
LyBvdGhlcndpc2Ugd2UgYWxsb3cgbG9jYWwgbG9hZHMgb25seSBpZiB0aGUgc3VwcGxpZWQgcmVm
ZXJyZXIgaXMgYWxzbyBsb2NhbC4KLSAgICBpZiAoZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBk
b2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuTG9hZExvY2FsUmVzb3VyY2VzKCk7CisgICAg
Ly8gSWYgd2Ugd2VyZSBwcm92aWRlZCBhIGRvY3VtZW50LCB3ZSBmaXJzdCBjaGVjayBpZiB0aGUg
YWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZC4KKyAgICAvLyBUaGVuIHdlIGxldCBpdHMgbG9j
YWwgZmlsZSBwb2xpY2UgZGljdGF0ZSB0aGUgcmVzdWx0LgorICAgIC8vIE90aGVyd2lzZSB3ZSBh
bGxvdyBsb2NhbCBsb2FkcyBvbmx5IGlmIHRoZSBzdXBwbGllZCByZWZlcnJlciBpcyBhbHNvIGxv
Y2FsLgorICAgIGlmIChkb2N1bWVudCkgeworICAgICAgICBTZWN1cml0eU9yaWdpbiogZG9jdW1l
bnRPcmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICAgICAgaWYgKE9yaWdp
bkFjY2Vzc1doaXRlTGlzdCogbGlzdCA9IG9yaWdpbkFjY2Vzc01hcCgpLmdldChkb2N1bWVudE9y
aWdpbi0+dG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IHRhcmdldE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKTsKKyAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgpOyAgKytpKSB7CisgICAgICAg
ICAgICAgICAgaWYgKGxpc3QtPmF0KGkpLm1hdGNoZXNPcmlnaW4oKnRhcmdldE9yaWdpbikpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIHJldHVybiBkb2N1bWVudE9yaWdpbi0+Y2FuTG9hZExvY2FsUmVzb3VyY2VzKCk7
CisgICAgfQogICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gc2hv
dWxkVHJlYXRVUkxBc0xvY2FsKHJlZmVycmVyKTsKICAgICByZXR1cm4gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52780</attachid>
            <date>2010-04-07 14:16:17 -0700</date>
            <delta_ts>2010-04-07 14:51:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37228-20100407141615.patch</filename>
            <type>text/plain</type>
            <size>7184</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NDNmZmFkLi42MDc1ZTk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQt
MDcgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyB3aGl0ZSBsaXN0aW5nIGFjY2Vz
cyBmcm9tIG9yaWdpbiB0byBsb2NhbCBvcmlnaW4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzIyOAorCisgICAgICAgIFRoaXMgbWFrZXMgaXQgcG9z
c2libGUgdG8gbG9hZCBhIGxvY2FsIHJlc291cmNlIGZyb20gYSBub24gbG9jYWwKKyAgICAgICAg
b3JpZ2luIGlmIHRoZSBhY2Nlc3MgaGFzIHByZXZpb3VzbHkgYmVlbiB3aGl0ZSBsaXN0ZWQgYnkg
Y2FsbGluZworICAgICAgICBTZWN1cml0eU9yaWdpbjo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdp
bi4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1v
dGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWw6IEFkZGVk
LgorCiAyMDEwLTA0LTAxICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1m
cm9tLXJlbW90ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNjU1ZTM3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitUaGlzIHRlc3QgaXMgdG8gc2VlIGlmIGEgcmVt
b3RlIGZpbGUgY2FuIGluY2x1ZGUgYSBsb2NhbCBpbWFnZSB3aGVuIHRoZSBhY2Nlc3MgaGFzIGJl
ZW4gd2hpdGUgbGlzdGVkIHVzaW5nIHdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4uCisKK1Rlc3Qg
UGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3RlbHkuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlz
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZy
b20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNmViY2NkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQuaHRtbApAQCAtMCww
ICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+CisKKzxzY3JpcHQ+CisK
K2xheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2xheW91dFRlc3RDb250cm9sbGVy
LndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxl
JywgJycsIHRydWUpOworCit2YXIgbG9jYWxJbWFnZUxvY2F0aW9uID0gbGF5b3V0VGVzdENvbnRy
b2xsZXIucGF0aFRvTG9jYWxSZXNvdXJjZSgnZmlsZTovLy90bXAvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5qcGcnKTsKKwordmFyIGxvY2FsSW1hZ2VF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Citsb2NhbEltYWdlRWxlbWVu
dC5zcmMgPSBsb2NhbEltYWdlTG9jYXRpb247Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxv
Y2FsSW1hZ2VFbGVtZW50KTsKKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHZh
ciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0Jyk7CisgICAgaWYgKGxv
Y2FsSW1hZ2VFbGVtZW50LmhlaWdodCA9PSAwICYmIGxvY2FsSW1hZ2VFbGVtZW50LndpZHRoID09
IDApCisgICAgICAgIHJlc3VsdC50ZXh0Q29udGVudCA9ICdUZXN0IEZhaWxlZDogTG9jYWwgaW1h
Z2Ugbm90IGxvYWRlZCByZW1vdGVseS4nOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0LnRleHRD
b250ZW50ID0gJ1Rlc3QgUGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3RlbHkuJzsKK307
CisKKzwvc2NyaXB0PgorCis8cD5UaGlzIHRlc3QgaXMgdG8gc2VlIGlmIGEgcmVtb3RlIGZpbGUg
Y2FuIGluY2x1ZGUgYSBsb2NhbCBpbWFnZSB3aGVuIHRoZQorYWNjZXNzIGhhcyBiZWVuIHdoaXRl
IGxpc3RlZCB1c2luZyB3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luLgorCis8cCBpZD1yZXN1bHQ+
VGVzdCBoYXMgbm90IHJ1bi4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ODViODI4Li5lYjFjZDA4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDEwLTA0LTA3ICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxs
b3cgd2hpdGUgbGlzdGluZyBhY2Nlc3MgZnJvbSBvcmlnaW4gdG8gbG9jYWwgb3JpZ2luLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMjgKKworICAg
ICAgICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGxvYWQgYSBsb2NhbCByZXNvdXJjZSBmcm9t
IGEgbm9uIGxvY2FsCisgICAgICAgIG9yaWdpbiBpZiB0aGUgYWNjZXNzIGhhcyBwcmV2aW91c2x5
IGJlZW4gd2hpdGUgbGlzdGVkIGJ5IGNhbGxpbmcKKyAgICAgICAgU2VjdXJpdHlPcmlnaW46Ondo
aXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4uCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1
cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sCisKKyAgICAgICAg
KiBwYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9yaWdpbkFj
Y2Vzc0VudHJ5OjpPcmlnaW5BY2Nlc3NFbnRyeSk6IFJlbW92ZWQgYXNzZXJ0IHRoYXQgb25seSB0
aGUgaHR0cCBhbmQgaHR0cHMgcHJvdG9jb2wgYXJlIHZhbGlkLgorICAgICAgICAqIHBhZ2UvU2Vj
dXJpdHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNhblJl
cXVlc3QpOiBVc2UgaXNBY2Nlc3NXaGl0ZUxpc3RlZAorICAgICAgICAoV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW46OmlzQWNjZXNzV2hpdGVMaXN0ZWQpOiBFeHRyYWN0ZWQgY29kZSB0aGF0IGdvZXMg
dGhyb3VnaCB0aGUgb3JpZ2luQWNjZXNzTWFwIHRvIGRvIHRoZSBvcmlnaW4gbWF0Y2hpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuTG9hZCk6IENoZWNrIGlmIGFjY2Vz
cyBoYXMgYmVlbiB3aGl0ZSBsaXN0ZWQuCisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5o
OiBBZGQgcHJpdmF0ZSBmdW5jdGlvbiBpc0FjY2Vzc1doaXRlTGlzdGVkCisKIDIwMTAtMDQtMDYg
IEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9PcmlnaW5BY2Nlc3NF
bnRyeS5jcHAgYi9XZWJDb3JlL3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwCmluZGV4IDk4YzI4
MGMuLjdmZjY3Y2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcApAQCAtNDAsNyArNDAs
NiBAQCBPcmlnaW5BY2Nlc3NFbnRyeTo6T3JpZ2luQWNjZXNzRW50cnkoY29uc3QgU3RyaW5nJiBw
cm90b2NvbCwgY29uc3QgU3RyaW5nJiBob3N0LAogICAgICwgbV9ob3N0KGhvc3QubG93ZXIoKSkK
ICAgICAsIG1fc3ViZG9tYWluU2V0dGluZ3Moc3ViZG9tYWluU2V0dGluZykKIHsKLSAgICBBU1NF
UlQobV9wcm90b2NvbCA9PSAiaHR0cCIgfHwgbV9wcm90b2NvbCA9PSAiaHR0cHMiKTsKICAgICBB
U1NFUlQoc3ViZG9tYWluU2V0dGluZyA9PSBBbGxvd1N1YmRvbWFpbnMgfHwgc3ViZG9tYWluU2V0
dGluZyA9PSBEaXNhbGxvd1N1YmRvbWFpbnMpOwogCiAgICAgLy8gQXNzdW1lIHRoYXQgYW55IGhv
c3QgdGhhdCBlbmRzIHdpdGggYSBkaWdpdCBpcyB0cnlpbmcgdG8gYmUgYW4gSVAgYWRkcmVzcy4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAgYi9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDkxMjg5NWMuLjc2Y2ZiYWYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NlY3Vy
aXR5T3JpZ2luLmNwcApAQCAtMjYxLDEyICsyNjEsOCBAQCBib29sIFNlY3VyaXR5T3JpZ2luOjpj
YW5SZXF1ZXN0KGNvbnN0IEtVUkwmIHVybCkgY29uc3QKICAgICBpZiAoaXNTYW1lU2NoZW1lSG9z
dFBvcnQodGFyZ2V0T3JpZ2luLmdldCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBp
ZiAoT3JpZ2luQWNjZXNzV2hpdGVMaXN0KiBsaXN0ID0gb3JpZ2luQWNjZXNzTWFwKCkuZ2V0KHRv
U3RyaW5nKCkpKSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgp
OyArK2kpIHsKLSAgICAgICAgICAgIGlmIChsaXN0LT5hdChpKS5tYXRjaGVzT3JpZ2luKCp0YXJn
ZXRPcmlnaW4pKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAg
fQorICAgIGlmIChpc0FjY2Vzc1doaXRlTGlzdGVkKCp0YXJnZXRPcmlnaW4pKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTI4OCwxNSArMjg0LDMyIEBA
IGJvb2wgU2VjdXJpdHlPcmlnaW46OnRhaW50c0NhbnZhcyhjb25zdCBLVVJMJiB1cmwpIGNvbnN0
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgU2VjdXJpdHlPcmlnaW46OmlzQWNjZXNzV2hp
dGVMaXN0ZWQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRhcmdldE9yaWdpbikgY29uc3QKK3sKKyAg
ICBpZiAoT3JpZ2luQWNjZXNzV2hpdGVMaXN0KiBsaXN0ID0gb3JpZ2luQWNjZXNzTWFwKCkuZ2V0
KHRvU3RyaW5nKCkpKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6
ZSgpOyAgKytpKSB7CisgICAgICAgICAgIGlmIChsaXN0LT5hdChpKS5tYXRjaGVzT3JpZ2luKHRh
cmdldE9yaWdpbikpCisgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICB9CisgICAg
fQorICAgIHJldHVybiBmYWxzZTsKK30KKyAgCiBib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5Mb2Fk
KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQogewogICAgIGlmICghc2hvdWxkVHJlYXRVUkxBc0xvY2FsKHVybC5zdHJpbmcoKSkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gSWYgd2Ugd2VyZSBwcm92aWRlZCBhIGRvY3Vt
ZW50LCB3ZSBsZXQgaXRzIGxvY2FsIGZpbGUgcG9saWN5IGRpY3RhdGUgdGhlIHJlc3VsdCwKLSAg
ICAvLyBvdGhlcndpc2Ugd2UgYWxsb3cgbG9jYWwgbG9hZHMgb25seSBpZiB0aGUgc3VwcGxpZWQg
cmVmZXJyZXIgaXMgYWxzbyBsb2NhbC4KLSAgICBpZiAoZG9jdW1lbnQpCi0gICAgICAgIHJldHVy
biBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuTG9hZExvY2FsUmVzb3VyY2VzKCk7Cisg
ICAgLy8gSWYgd2Ugd2VyZSBwcm92aWRlZCBhIGRvY3VtZW50LCB3ZSBmaXJzdCBjaGVjayBpZiB0
aGUgYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZC4KKyAgICAvLyBUaGVuIHdlIGxldCBpdHMg
bG9jYWwgZmlsZSBwb2xpY2UgZGljdGF0ZSB0aGUgcmVzdWx0LgorICAgIC8vIE90aGVyd2lzZSB3
ZSBhbGxvdyBsb2NhbCBsb2FkcyBvbmx5IGlmIHRoZSBzdXBwbGllZCByZWZlcnJlciBpcyBhbHNv
IGxvY2FsLgorICAgIGlmIChkb2N1bWVudCkgeworICAgICAgICBTZWN1cml0eU9yaWdpbiogZG9j
dW1lbnRPcmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICAgICAgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gdGFyZ2V0T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZSh1cmwpOworICAgICAgICBpZiAoZG9jdW1lbnRPcmlnaW4tPmlzQWNjZXNzV2hpdGVMaXN0ZWQo
KnRhcmdldE9yaWdpbikpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
IGRvY3VtZW50T3JpZ2luLT5jYW5Mb2FkTG9jYWxSZXNvdXJjZXMoKTsKKyAgICB9CiAgICAgaWYg
KCFyZWZlcnJlci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBzaG91bGRUcmVhdFVSTEFzTG9j
YWwocmVmZXJyZXIpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9TZWN1cml0eU9yaWdpbi5oIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKaW5kZXgg
OTYzMDlmOC4uZjcyM2QzMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2lu
LmgKKysrIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKQEAgLTIwMyw2ICsyMDMsOCBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBwYXNzZXNGaWxlQ2hlY2soY29uc3QgU2VjdXJpdHlPcmln
aW4qIG90aGVyKSBjb25zdDsKIAorICAgIGJvb2wgaXNBY2Nlc3NXaGl0ZUxpc3RlZChjb25zdCBT
ZWN1cml0eU9yaWdpbiYgdGFyZ2V0T3JpZ2luKSBjb25zdDsKKwogICAgIFNhbmRib3hGbGFncyBt
X3NhbmRib3hGbGFnczsKICAgICBTdHJpbmcgbV9wcm90b2NvbDsKICAgICBTdHJpbmcgbV9ob3N0
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52785</attachid>
            <date>2010-04-07 14:51:33 -0700</date>
            <delta_ts>2010-04-07 15:59:36 -0700</delta_ts>
            <desc>Changed to RefPtr</desc>
            <filename>bug-37228-20100407145132.patch</filename>
            <type>text/plain</type>
            <size>7191</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NDNmZmFkLi42MDc1ZTk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQt
MDcgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyB3aGl0ZSBsaXN0aW5nIGFjY2Vz
cyBmcm9tIG9yaWdpbiB0byBsb2NhbCBvcmlnaW4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzIyOAorCisgICAgICAgIFRoaXMgbWFrZXMgaXQgcG9z
c2libGUgdG8gbG9hZCBhIGxvY2FsIHJlc291cmNlIGZyb20gYSBub24gbG9jYWwKKyAgICAgICAg
b3JpZ2luIGlmIHRoZSBhY2Nlc3MgaGFzIHByZXZpb3VzbHkgYmVlbiB3aGl0ZSBsaXN0ZWQgYnkg
Y2FsbGluZworICAgICAgICBTZWN1cml0eU9yaWdpbjo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdp
bi4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1v
dGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWw6IEFkZGVk
LgorCiAyMDEwLTA0LTAxICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1m
cm9tLXJlbW90ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNjU1ZTM3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitUaGlzIHRlc3QgaXMgdG8gc2VlIGlmIGEgcmVt
b3RlIGZpbGUgY2FuIGluY2x1ZGUgYSBsb2NhbCBpbWFnZSB3aGVuIHRoZSBhY2Nlc3MgaGFzIGJl
ZW4gd2hpdGUgbGlzdGVkIHVzaW5nIHdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4uCisKK1Rlc3Qg
UGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3RlbHkuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlz
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZy
b20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNmViY2NkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQuaHRtbApAQCAtMCww
ICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+CisKKzxzY3JpcHQ+CisK
K2xheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2xheW91dFRlc3RDb250cm9sbGVy
LndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxl
JywgJycsIHRydWUpOworCit2YXIgbG9jYWxJbWFnZUxvY2F0aW9uID0gbGF5b3V0VGVzdENvbnRy
b2xsZXIucGF0aFRvTG9jYWxSZXNvdXJjZSgnZmlsZTovLy90bXAvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5qcGcnKTsKKwordmFyIGxvY2FsSW1hZ2VF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Citsb2NhbEltYWdlRWxlbWVu
dC5zcmMgPSBsb2NhbEltYWdlTG9jYXRpb247Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxv
Y2FsSW1hZ2VFbGVtZW50KTsKKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHZh
ciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0Jyk7CisgICAgaWYgKGxv
Y2FsSW1hZ2VFbGVtZW50LmhlaWdodCA9PSAwICYmIGxvY2FsSW1hZ2VFbGVtZW50LndpZHRoID09
IDApCisgICAgICAgIHJlc3VsdC50ZXh0Q29udGVudCA9ICdUZXN0IEZhaWxlZDogTG9jYWwgaW1h
Z2Ugbm90IGxvYWRlZCByZW1vdGVseS4nOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0LnRleHRD
b250ZW50ID0gJ1Rlc3QgUGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3RlbHkuJzsKK307
CisKKzwvc2NyaXB0PgorCis8cD5UaGlzIHRlc3QgaXMgdG8gc2VlIGlmIGEgcmVtb3RlIGZpbGUg
Y2FuIGluY2x1ZGUgYSBsb2NhbCBpbWFnZSB3aGVuIHRoZQorYWNjZXNzIGhhcyBiZWVuIHdoaXRl
IGxpc3RlZCB1c2luZyB3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luLgorCis8cCBpZD1yZXN1bHQ+
VGVzdCBoYXMgbm90IHJ1bi4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ODViODI4Li5lYjFjZDA4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDEwLTA0LTA3ICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxs
b3cgd2hpdGUgbGlzdGluZyBhY2Nlc3MgZnJvbSBvcmlnaW4gdG8gbG9jYWwgb3JpZ2luLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMjgKKworICAg
ICAgICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGxvYWQgYSBsb2NhbCByZXNvdXJjZSBmcm9t
IGEgbm9uIGxvY2FsCisgICAgICAgIG9yaWdpbiBpZiB0aGUgYWNjZXNzIGhhcyBwcmV2aW91c2x5
IGJlZW4gd2hpdGUgbGlzdGVkIGJ5IGNhbGxpbmcKKyAgICAgICAgU2VjdXJpdHlPcmlnaW46Ondo
aXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4uCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1
cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sCisKKyAgICAgICAg
KiBwYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9yaWdpbkFj
Y2Vzc0VudHJ5OjpPcmlnaW5BY2Nlc3NFbnRyeSk6IFJlbW92ZWQgYXNzZXJ0IHRoYXQgb25seSB0
aGUgaHR0cCBhbmQgaHR0cHMgcHJvdG9jb2wgYXJlIHZhbGlkLgorICAgICAgICAqIHBhZ2UvU2Vj
dXJpdHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNhblJl
cXVlc3QpOiBVc2UgaXNBY2Nlc3NXaGl0ZUxpc3RlZAorICAgICAgICAoV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW46OmlzQWNjZXNzV2hpdGVMaXN0ZWQpOiBFeHRyYWN0ZWQgY29kZSB0aGF0IGdvZXMg
dGhyb3VnaCB0aGUgb3JpZ2luQWNjZXNzTWFwIHRvIGRvIHRoZSBvcmlnaW4gbWF0Y2hpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuTG9hZCk6IENoZWNrIGlmIGFjY2Vz
cyBoYXMgYmVlbiB3aGl0ZSBsaXN0ZWQuCisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5o
OiBBZGQgcHJpdmF0ZSBmdW5jdGlvbiBpc0FjY2Vzc1doaXRlTGlzdGVkCisKIDIwMTAtMDQtMDYg
IEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9PcmlnaW5BY2Nlc3NF
bnRyeS5jcHAgYi9XZWJDb3JlL3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwCmluZGV4IDk4YzI4
MGMuLjdmZjY3Y2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcApAQCAtNDAsNyArNDAs
NiBAQCBPcmlnaW5BY2Nlc3NFbnRyeTo6T3JpZ2luQWNjZXNzRW50cnkoY29uc3QgU3RyaW5nJiBw
cm90b2NvbCwgY29uc3QgU3RyaW5nJiBob3N0LAogICAgICwgbV9ob3N0KGhvc3QubG93ZXIoKSkK
ICAgICAsIG1fc3ViZG9tYWluU2V0dGluZ3Moc3ViZG9tYWluU2V0dGluZykKIHsKLSAgICBBU1NF
UlQobV9wcm90b2NvbCA9PSAiaHR0cCIgfHwgbV9wcm90b2NvbCA9PSAiaHR0cHMiKTsKICAgICBB
U1NFUlQoc3ViZG9tYWluU2V0dGluZyA9PSBBbGxvd1N1YmRvbWFpbnMgfHwgc3ViZG9tYWluU2V0
dGluZyA9PSBEaXNhbGxvd1N1YmRvbWFpbnMpOwogCiAgICAgLy8gQXNzdW1lIHRoYXQgYW55IGhv
c3QgdGhhdCBlbmRzIHdpdGggYSBkaWdpdCBpcyB0cnlpbmcgdG8gYmUgYW4gSVAgYWRkcmVzcy4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAgYi9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDkxMjg5NWMuLjkxZmJhZjkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NlY3Vy
aXR5T3JpZ2luLmNwcApAQCAtMjYxLDEyICsyNjEsOCBAQCBib29sIFNlY3VyaXR5T3JpZ2luOjpj
YW5SZXF1ZXN0KGNvbnN0IEtVUkwmIHVybCkgY29uc3QKICAgICBpZiAoaXNTYW1lU2NoZW1lSG9z
dFBvcnQodGFyZ2V0T3JpZ2luLmdldCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBp
ZiAoT3JpZ2luQWNjZXNzV2hpdGVMaXN0KiBsaXN0ID0gb3JpZ2luQWNjZXNzTWFwKCkuZ2V0KHRv
U3RyaW5nKCkpKSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgp
OyArK2kpIHsKLSAgICAgICAgICAgIGlmIChsaXN0LT5hdChpKS5tYXRjaGVzT3JpZ2luKCp0YXJn
ZXRPcmlnaW4pKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAg
fQorICAgIGlmIChpc0FjY2Vzc1doaXRlTGlzdGVkKHRhcmdldE9yaWdpbi5nZXQoKSkpCisgICAg
ICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMjg4LDE1ICsyODQs
MzIgQEAgYm9vbCBTZWN1cml0eU9yaWdpbjo6dGFpbnRzQ2FudmFzKGNvbnN0IEtVUkwmIHVybCkg
Y29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBTZWN1cml0eU9yaWdpbjo6aXNBY2Nl
c3NXaGl0ZUxpc3RlZChjb25zdCBTZWN1cml0eU9yaWdpbiogdGFyZ2V0T3JpZ2luKSBjb25zdAor
eworICAgIGlmIChPcmlnaW5BY2Nlc3NXaGl0ZUxpc3QqIGxpc3QgPSBvcmlnaW5BY2Nlc3NNYXAo
KS5nZXQodG9TdHJpbmcoKSkpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0
LT5zaXplKCk7ICArK2kpIHsKKyAgICAgICAgICAgaWYgKGxpc3QtPmF0KGkpLm1hdGNoZXNPcmln
aW4oKnRhcmdldE9yaWdpbikpCisgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICB9
CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyAgCiBib29sIFNlY3VyaXR5T3JpZ2luOjpj
YW5Mb2FkKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRG9jdW1lbnQq
IGRvY3VtZW50KQogewogICAgIGlmICghc2hvdWxkVHJlYXRVUkxBc0xvY2FsKHVybC5zdHJpbmco
KSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gSWYgd2Ugd2VyZSBwcm92aWRlZCBh
IGRvY3VtZW50LCB3ZSBsZXQgaXRzIGxvY2FsIGZpbGUgcG9saWN5IGRpY3RhdGUgdGhlIHJlc3Vs
dCwKLSAgICAvLyBvdGhlcndpc2Ugd2UgYWxsb3cgbG9jYWwgbG9hZHMgb25seSBpZiB0aGUgc3Vw
cGxpZWQgcmVmZXJyZXIgaXMgYWxzbyBsb2NhbC4KLSAgICBpZiAoZG9jdW1lbnQpCi0gICAgICAg
IHJldHVybiBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuTG9hZExvY2FsUmVzb3VyY2Vz
KCk7CisgICAgLy8gSWYgd2Ugd2VyZSBwcm92aWRlZCBhIGRvY3VtZW50LCB3ZSBmaXJzdCBjaGVj
ayBpZiB0aGUgYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZC4KKyAgICAvLyBUaGVuIHdlIGxl
dCBpdHMgbG9jYWwgZmlsZSBwb2xpY2UgZGljdGF0ZSB0aGUgcmVzdWx0LgorICAgIC8vIE90aGVy
d2lzZSB3ZSBhbGxvdyBsb2NhbCBsb2FkcyBvbmx5IGlmIHRoZSBzdXBwbGllZCByZWZlcnJlciBp
cyBhbHNvIGxvY2FsLgorICAgIGlmIChkb2N1bWVudCkgeworICAgICAgICBTZWN1cml0eU9yaWdp
biogZG9jdW1lbnRPcmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICAgICAg
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0YXJnZXRPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKHVybCk7CisgICAgICAgIGlmIChkb2N1bWVudE9yaWdpbi0+aXNBY2Nlc3NXaGl0ZUxpc3Rl
ZCh0YXJnZXRPcmlnaW4uZ2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IHJldHVybiBkb2N1bWVudE9yaWdpbi0+Y2FuTG9hZExvY2FsUmVzb3VyY2VzKCk7CisgICAgfQog
ICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gc2hvdWxkVHJlYXRV
UkxBc0xvY2FsKHJlZmVycmVyKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBiL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5o
CmluZGV4IDk2MzA5ZjguLjBlM2Q2ZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZWN1cml0
eU9yaWdpbi5oCisrKyBiL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC0yMDMsNiAr
MjAzLDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcGFzc2VzRmlsZUNoZWNrKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luKiBvdGhlcikgY29uc3Q7CiAKKyAgICBib29sIGlzQWNjZXNzV2hpdGVMaXN0ZWQo
Y29uc3QgU2VjdXJpdHlPcmlnaW4qIHRhcmdldE9yaWdpbikgY29uc3Q7CisKICAgICBTYW5kYm94
RmxhZ3MgbV9zYW5kYm94RmxhZ3M7CiAgICAgU3RyaW5nIG1fcHJvdG9jb2w7CiAgICAgU3RyaW5n
IG1faG9zdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>