<?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>32398</bug_id>
          
          <creation_ts>2009-12-10 16:11:44 -0800</creation_ts>
          <short_desc>[Chromium] Expose SecurityOrigin::shouldHideReferrer() in chromium port api.</short_desc>
          <delta_ts>2009-12-18 10:55:59 -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>WebKit Misc.</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="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>abarth</cc>
    
    <cc>dimich</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>170568</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2009-12-10 16:11:44 -0800</bug_when>
    <thetext>Chromium is currently clearing document.referrer on redirect (http://crbug.com/7357).   To fix properly (i.e., ensure we don&apos;t set the referrer when it ought to be suppressed), we should have access to SecurityOrigin::shouldHideReferrer().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170571</commentid>
    <comment_count>1</comment_count>
      <attachid>44646</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2009-12-10 16:17:37 -0800</bug_when>
    <thetext>Created attachment 44646
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170572</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-10 16:17:59 -0800</bug_when>
    <thetext>Attachment 44646 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/src/WebSecurityOrigin.cpp:96:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170606</commentid>
    <comment_count>3</comment_count>
      <attachid>44646</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-12-10 18:01:22 -0800</bug_when>
    <thetext>Comment on attachment 44646
patch

A few style nits:

&gt; Index: WebKit/chromium/src/WebSecurityOrigin.cpp
&gt; +bool WebSecurityOrigin::shouldHideReferrer(const WebURL&amp; url, const WebString&amp; referrer) {

&apos;}&apos; should go on the next line as bot said ^^^

&gt; +    return SecurityOrigin::shouldHideReferrer(WebCore::KURL(url.spec(), url.parsed(), url.isValid()), 

You could simply pass WebURL into SecurityOrigin::shouldHideReferer since WebURL has conversion operator to convert to KURL.

&gt; +        WebCore::String(referrer));

WebKit code usually does not wrap a long line like this.

&gt; Index: WebKit/chromium/public/WebSecurityOrigin.h

&gt; +    // Returns whether the url should be allowed to see the referrer
&gt; +    // based on their respective protocols.
&gt; +    WEBKIT_API static bool shouldHideReferrer(const WebURL&amp; url, 
&gt; +        const WebString&amp; referrer);

No need to wrap lines like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170786</commentid>
    <comment_count>4</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2009-12-11 09:25:41 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 44646 [details])
&gt; A few style nits:
&gt; 
&gt; &gt; Index: WebKit/chromium/src/WebSecurityOrigin.cpp
&gt; &gt; +bool WebSecurityOrigin::shouldHideReferrer(const WebURL&amp; url, const WebString&amp; referrer) {
&gt; 
&gt; &apos;}&apos; should go on the next line as bot said ^^^
&gt; 
&gt; &gt; +    return SecurityOrigin::shouldHideReferrer(WebCore::KURL(url.spec(), url.parsed(), url.isValid()), 
&gt; 
&gt; You could simply pass WebURL into SecurityOrigin::shouldHideReferer since
&gt; WebURL has conversion operator to convert to KURL.

Are you sure about this one?  If I just try to pass the WebURL into SecurityOrigin::shouldHideReferrer(), I&apos;m getting compile errors (claims it can&apos;t do the conversion).

&gt; 
&gt; &gt; +        WebCore::String(referrer));
&gt; 
&gt; WebKit code usually does not wrap a long line like this.
&gt; 
&gt; &gt; Index: WebKit/chromium/public/WebSecurityOrigin.h
&gt; 
&gt; &gt; +    // Returns whether the url should be allowed to see the referrer
&gt; &gt; +    // based on their respective protocols.
&gt; &gt; +    WEBKIT_API static bool shouldHideReferrer(const WebURL&amp; url, 
&gt; &gt; +        const WebString&amp; referrer);
&gt; 
&gt; No need to wrap lines like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170805</commentid>
    <comment_count>5</comment_count>
      <attachid>44695</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2009-12-11 10:08:14 -0800</bug_when>
    <thetext>Created attachment 44695
patch2

Never mind, I got it.  All your comments should be resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170809</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-11 10:12:58 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44695 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170862</commentid>
    <comment_count>7</comment_count>
      <attachid>44695</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-12-11 11:42:45 -0800</bug_when>
    <thetext>Comment on attachment 44695
patch2

&gt; Index: WebKit/chromium/public/WebSecurityOrigin.h
...
&gt; +    // Returns whether the url should be allowed to see the referrer
&gt; +    // based on their respective protocols.
&gt; +    WEBKIT_API static bool shouldHideReferrer(const WebURL&amp; url, const WebString&amp; referrer);

Even though WebCore uses String for referrer, please use a WebURL here
because it is in fact supposed to be an URL.  The WebKit API tries to
use WebURL everywhere it is true that a parameter is an URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170863</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-12-11 11:43:51 -0800</bug_when>
    <thetext>Also, I think this method would be better on WebSecurityPolicy.  The WebKit API has policy related stuff on that interface instead of lumping them on WebSecurityOrigin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170868</commentid>
    <comment_count>9</comment_count>
      <attachid>44700</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2009-12-11 12:15:21 -0800</bug_when>
    <thetext>Created attachment 44700
patch3

fishd and I discussed it off thread and concluded that it makes sense to leave the referrer as a WebString.

This patch moves the change to WebSecurityPolicy, as requested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170869</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-11 12:16:00 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44700 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170897</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-11 13:28:38 -0800</bug_when>
    <thetext>&gt; fishd and I discussed it off thread and concluded that it makes sense to leave
&gt; the referrer as a WebString.

Just so I know for the future, what was the reasoning here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170924</commentid>
    <comment_count>12</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2009-12-11 14:12:01 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; fishd and I discussed it off thread and concluded that it makes sense to leave
&gt; &gt; the referrer as a WebString.
&gt; 
&gt; Just so I know for the future, what was the reasoning here?

As I understood it, the rationale was that in WebHistoryItem and WebURLRequest (two of the places that store referrers), we are returning the referrer as a WebString, and it didn&apos;t make sense to do a WebString-&gt;WebUrl-&gt;WebString-&gt;WebCore::String translation, particularly since translating between WebString and WebURL is not well supported at this time.

fishd, feel free to correct me if I misundestood the logic. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170934</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-12-11 14:35:01 -0800</bug_when>
    <thetext>&gt; fishd, feel free to correct me if I misundestood the logic. :-)

yeah, that&apos;s basically it.  in general, i would prefer to pass around anything that is an url as a {Web,K,G}URL, but in this case WebString seems like the more practical choice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173221</commentid>
    <comment_count>14</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2009-12-18 10:55:59 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; fishd, feel free to correct me if I misundestood the logic. :-)
&gt; 
&gt; yeah, that&apos;s basically it.  in general, i would prefer to pass around anything
&gt; that is an url as a {Web,K,G}URL, but in this case WebString seems like the
&gt; more practical choice.

http://trac.webkit.org/changeset/52027</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44646</attachid>
            <date>2009-12-10 16:17:37 -0800</date>
            <delta_ts>2009-12-11 10:08:14 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2524</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTE5NzEpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTItMTAgIE5hdGUg
Q2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2Ugc2hvdWxkSGlkZVJlZmVycmVyKCkgaW4gV2Vi
U2VjdXJpdHlPcmlnaW4uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMyMzk4CisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2VjdXJpdHlPcmlnaW4uaDog
QWRkIHNob3VsZEhpZGVSZWZlcnJlcigpLgorICAgICAgICAqIHNyYy9XZWJTZWN1cml0eU9yaWdp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luOjpzaG91bGRIaWRlUmVm
ZXJyZXIpOiBBZGRlZC4KKwogMjAwOS0xMi0xMCAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5T3JpZ2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5T3JpZ2luLmNwcAkocmV2aXNpb24gNTE5NzApCisrKyBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5T3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEsOCArMzEsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJTZWN1
cml0eU9yaWdpbi5oIgogCisjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViVVJMLmgiCiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05
MSw2ICs5MywxMSBAQAogICAgIHJldHVybiBtX3ByaXZhdGUtPmRhdGFiYXNlSWRlbnRpZmllcigp
OwogfQogCitib29sIFdlYlNlY3VyaXR5T3JpZ2luOjpzaG91bGRIaWRlUmVmZXJyZXIoY29uc3Qg
V2ViVVJMJiB1cmwsIGNvbnN0IFdlYlN0cmluZyYgcmVmZXJyZXIpIHsKKyAgICByZXR1cm4gU2Vj
dXJpdHlPcmlnaW46OnNob3VsZEhpZGVSZWZlcnJlcihXZWJDb3JlOjpLVVJMKHVybC5zcGVjKCks
IHVybC5wYXJzZWQoKSwgdXJsLmlzVmFsaWQoKSksIAorICAgICAgICBXZWJDb3JlOjpTdHJpbmco
cmVmZXJyZXIpKTsKK30KKwogV2ViU2VjdXJpdHlPcmlnaW46OldlYlNlY3VyaXR5T3JpZ2luKGNv
bnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mIG9yaWdpbikKICAg
ICA6IG1fcHJpdmF0ZShzdGF0aWNfY2FzdDxXZWJTZWN1cml0eU9yaWdpblByaXZhdGUqPihvcmln
aW4ucmVsZWFzZVJlZigpKSkKIHsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2Vj
dXJpdHlPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNl
Y3VyaXR5T3JpZ2luLmgJKHJldmlzaW9uIDUxOTcwKQorKysgV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZWN1cml0eU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBACiAK
IGNsYXNzIFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZTsKIGNsYXNzIFdlYlN0cmluZzsKK2NsYXNz
IFdlYlVSTDsKIAogY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW4gewogcHVibGljOgpAQCAtNzYsNiAr
NzcsMTEgQEAKICAgICAvLyBiZSB1c2VkIGFzIGEgZmlsZS4gIFNob3VsZCBiZSB1c2VkIGluIHN0
b3JhZ2UgQVBJcyBvbmx5LgogICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIGRhdGFiYXNlSWRlbnRp
ZmllcigpOwogCisgICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZSB1cmwgc2hvdWxkIGJlIGFsbG93
ZWQgdG8gc2VlIHRoZSByZWZlcnJlcgorICAgIC8vIGJhc2VkIG9uIHRoZWlyIHJlc3BlY3RpdmUg
cHJvdG9jb2xzLgorICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgc2hvdWxkSGlkZVJlZmVycmVy
KGNvbnN0IFdlYlVSTCYgdXJsLCAKKyAgICAgICAgY29uc3QgV2ViU3RyaW5nJiByZWZlcnJlcik7
CisKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJTZWN1cml0eU9yaWdpbihjb25z
dCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+Jik7CiAgICAgV2ViU2Vj
dXJpdHlPcmlnaW4mIG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+Jik7Cg==
</data>
<flag name="review"
          id="26544"
          type_id="1"
          status="-"
          setter="dimich"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44695</attachid>
            <date>2009-12-11 10:08:14 -0800</date>
            <delta_ts>2009-12-11 12:15:41 -0800</delta_ts>
            <desc>patch2</desc>
            <filename>patch2.txt</filename>
            <type>text/plain</type>
            <size>2437</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTE5NzEpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTItMTAgIE5hdGUg
Q2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2Ugc2hvdWxkSGlkZVJlZmVycmVyKCkgaW4gV2Vi
U2VjdXJpdHlPcmlnaW4uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMyMzk4CisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2VjdXJpdHlPcmlnaW4uaDog
QWRkIHNob3VsZEhpZGVSZWZlcnJlcigpLgorICAgICAgICAqIHNyYy9XZWJTZWN1cml0eU9yaWdp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luOjpzaG91bGRIaWRlUmVm
ZXJyZXIpOiBBZGRlZC4KKwogMjAwOS0xMi0xMCAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5T3JpZ2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5T3JpZ2luLmNwcAkocmV2aXNpb24gNTE5NzApCisrKyBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5T3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEsOCArMzEsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJTZWN1
cml0eU9yaWdpbi5oIgogCisjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViVVJMLmgiCiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05
MSw2ICs5MywxMSBAQAogICAgIHJldHVybiBtX3ByaXZhdGUtPmRhdGFiYXNlSWRlbnRpZmllcigp
OwogfQogCitib29sIFdlYlNlY3VyaXR5T3JpZ2luOjpzaG91bGRIaWRlUmVmZXJyZXIoY29uc3Qg
V2ViVVJMJiB1cmwsIGNvbnN0IFdlYlN0cmluZyYgcmVmZXJyZXIpCit7CisgICAgcmV0dXJuIFNl
Y3VyaXR5T3JpZ2luOjpzaG91bGRIaWRlUmVmZXJyZXIodXJsLCByZWZlcnJlcik7Cit9CisKIFdl
YlNlY3VyaXR5T3JpZ2luOjpXZWJTZWN1cml0eU9yaWdpbihjb25zdCBXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiBvcmlnaW4pCiAgICAgOiBtX3ByaXZhdGUoc3RhdGlj
X2Nhc3Q8V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlKj4ob3JpZ2luLnJlbGVhc2VSZWYoKSkpCiB7
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3VyaXR5T3JpZ2luLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eU9yaWdpbi5oCShyZXZp
c2lvbiA1MTk3MCkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlPcmlnaW4u
aAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQAogCiBjbGFzcyBXZWJTZWN1cml0eU9y
aWdpblByaXZhdGU7CiBjbGFzcyBXZWJTdHJpbmc7CitjbGFzcyBXZWJVUkw7CiAKIGNsYXNzIFdl
YlNlY3VyaXR5T3JpZ2luIHsKIHB1YmxpYzoKQEAgLTc2LDYgKzc3LDEwIEBACiAgICAgLy8gYmUg
dXNlZCBhcyBhIGZpbGUuICBTaG91bGQgYmUgdXNlZCBpbiBzdG9yYWdlIEFQSXMgb25seS4KICAg
ICBXRUJLSVRfQVBJIFdlYlN0cmluZyBkYXRhYmFzZUlkZW50aWZpZXIoKTsKIAorICAgIC8vIFJl
dHVybnMgd2hldGhlciB0aGUgdXJsIHNob3VsZCBiZSBhbGxvd2VkIHRvIHNlZSB0aGUgcmVmZXJy
ZXIKKyAgICAvLyBiYXNlZCBvbiB0aGVpciByZXNwZWN0aXZlIHByb3RvY29scy4KKyAgICBXRUJL
SVRfQVBJIHN0YXRpYyBib29sIHNob3VsZEhpZGVSZWZlcnJlcihjb25zdCBXZWJVUkwmIHVybCwg
Y29uc3QgV2ViU3RyaW5nJiByZWZlcnJlcik7CisKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04K
ICAgICBXZWJTZWN1cml0eU9yaWdpbihjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+Jik7CiAgICAgV2ViU2VjdXJpdHlPcmlnaW4mIG9wZXJhdG9yPShjb25zdCBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+Jik7Cg==
</data>
<flag name="review"
          id="26596"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44700</attachid>
            <date>2009-12-11 12:15:21 -0800</date>
            <delta_ts>2009-12-11 14:35:21 -0800</delta_ts>
            <desc>patch3</desc>
            <filename>patch3.txt</filename>
            <type>text/plain</type>
            <size>1898</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTE5NzEpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTItMTAgIE5hdGUg
Q2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2Ugc2hvdWxkSGlkZVJlZmVycmVyKCkgaW4gV2Vi
U2VjdXJpdHlQb2xpY3kuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMyMzk4CisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaDog
QWRkIHNob3VsZEhpZGVSZWZlcnJlcigpLgorICAgICAgICAqIHNyYy9XZWJTZWN1cml0eVBvbGlj
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OiBXZWJTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJl
ZmVycmVyKTogQWRkZWQuCisKIDIwMDktMTItMTAgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29n
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAJKHJldmlzaW9uIDUxOTcwKQorKysg
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY2LDQgKzY2LDkgQEAKICAgICBTZWN1cml0eU9yaWdpbjo6cmVzZXRPcmlnaW5BY2Nlc3NX
aGl0ZUxpc3RzKCk7CiB9CiAKK2Jvb2wgV2ViU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZl
cnJlcihjb25zdCBXZWJVUkwmIHVybCwgY29uc3QgV2ViU3RyaW5nJiByZWZlcnJlcikKK3sKKyAg
ICByZXR1cm4gU2VjdXJpdHlPcmlnaW46OnNob3VsZEhpZGVSZWZlcnJlcih1cmwsIHJlZmVycmVy
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlNlY3VyaXR5UG9saWN5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZWN1cml0eVBvbGljeS5oCShyZXZpc2lvbiA1MTk3MCkKKysrIFdlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiAr
NTUsMTAgQEAKICAgICAgICAgY29uc3QgV2ViVVJMJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFdlYlN0
cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwKICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBkZXN0
aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIFdFQktJ
VF9BUEkgc3RhdGljIHZvaWQgcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzKCk7CisgICAgCisg
ICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZSB1cmwgc2hvdWxkIGJlIGFsbG93ZWQgdG8gc2VlIHRo
ZSByZWZlcnJlcgorICAgIC8vIGJhc2VkIG9uIHRoZWlyIHJlc3BlY3RpdmUgcHJvdG9jb2xzLgor
ICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgc2hvdWxkSGlkZVJlZmVycmVyKGNvbnN0IFdlYlVS
TCYgdXJsLCBjb25zdCBXZWJTdHJpbmcmIHJlZmVycmVyKTsKIAogcHJpdmF0ZToKICAgICBXZWJT
ZWN1cml0eVBvbGljeSgpOwo=
</data>
<flag name="review"
          id="26604"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>