<?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>51090</bug_id>
          
          <creation_ts>2010-12-14 20:29:14 -0800</creation_ts>
          <short_desc>WebKit2: WebPageWin needs implementations of hasLocalDataForURL and canHandleRequest</short_desc>
          <delta_ts>2010-12-15 11:35:08 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Weinstein">bweinstein</reporter>
          <assigned_to name="Brian Weinstein">bweinstein</assigned_to>
          <cc>aroben</cc>
    
    <cc>beidson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>322471</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-12-14 20:29:14 -0800</bug_when>
    <thetext>Mac has these implementations, Windows needs them as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322472</commentid>
    <comment_count>1</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-12-14 20:29:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/8770831&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322475</commentid>
    <comment_count>2</comment_count>
      <attachid>76622</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-12-14 20:34:56 -0800</bug_when>
    <thetext>Created attachment 76622
[PATCH] Fix

I&apos;m not sure why the #include of ArchiveResource is needed, but it doesn&apos;t compile without it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322615</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-12-15 08:43:21 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;m not sure why the #include of ArchiveResource is needed, but it doesn&apos;t compile without it.

What error do you get when you omit it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322618</commentid>
    <comment_count>4</comment_count>
      <attachid>76622</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-12-15 08:46:13 -0800</bug_when>
    <thetext>Comment on attachment 76622
[PATCH] Fix

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

&gt; WebKit2/ChangeLog:14
&gt; +        (WebKit::WebPage::hasLocalDataForURL): See if the URL is a file URL, then see if it&apos;s in the WebCore cache,
&gt; +            and then fall back to the CFURL cache.
&gt; +        (WebKit::WebPage::canHandleRequest): Return the value of CFURLProtocolCanHandleRequest and add a FIXME
&gt; +            for improving this function if needed.

Did this code come from somewhere else? You should mention it if so.

&gt; WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:256
&gt; +    if (url.isLocalFile())
&gt; +        return true;
&gt; +
&gt; +    FrameLoader* frameLoader = m_page-&gt;mainFrame()-&gt;loader();
&gt; +    DocumentLoader* documentLoader = frameLoader ? frameLoader-&gt;documentLoader() : 0;
&gt; +    if (documentLoader &amp;&amp; documentLoader-&gt;subresource(url))
&gt; +        return true;

Seems like this code could all be cross-platform. Why is it sitting in this platform-specific file?

&gt; WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:258
&gt; +    RetainPtr&lt;CFMutableURLRequestRef&gt; request(AdoptCF, CFURLRequestCreateMutable(0, url.createCFURL(), kCFURLRequestCachePolicyReloadIgnoringCache, 60, 0));

Looks like you&apos;re leaking the CFURL here.

&gt; WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:259
&gt; +    CFURLRequestSetHTTPHeaderFieldValue(request.get(), CFSTR(&quot;User-Agent&quot;), userAgent().createCFString());

Looks like you&apos;re leaking the CFString here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322642</commentid>
    <comment_count>5</comment_count>
      <attachid>76622</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-12-15 09:48:05 -0800</bug_when>
    <thetext>Comment on attachment 76622
[PATCH] Fix

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

&gt;&gt; WebKit2/ChangeLog:14
&gt;&gt; +            for improving this function if needed.
&gt; 
&gt; Did this code come from somewhere else? You should mention it if so.

The line of code from canHandleRequest was from WebView::canHandleRequest in old WebKit. The code in hasLocalDataForURL was ported from WebPageMac, but WebPageMac uses NSURL functions, instead of CFURL.

&gt;&gt; WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:256
&gt;&gt; +        return true;
&gt; 
&gt; Seems like this code could all be cross-platform. Why is it sitting in this platform-specific file?

I could put this code in a cross-platform hasLocalDataForURL, then call platformHasLocalDataForURL to do the platform-specific checks if you think that is better.

&gt;&gt; WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:258
&gt;&gt; +    RetainPtr&lt;CFMutableURLRequestRef&gt; request(AdoptCF, CFURLRequestCreateMutable(0, url.createCFURL(), kCFURLRequestCachePolicyReloadIgnoringCache, 60, 0));
&gt; 
&gt; Looks like you&apos;re leaking the CFURL here.

I&apos;ll adopt in a previous line.

&gt;&gt; WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:259
&gt;&gt; +    CFURLRequestSetHTTPHeaderFieldValue(request.get(), CFSTR(&quot;User-Agent&quot;), userAgent().createCFString());
&gt; 
&gt; Looks like you&apos;re leaking the CFString here.

Ditto about adopting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322646</commentid>
    <comment_count>6</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-12-15 09:51:48 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; I&apos;m not sure why the #include of ArchiveResource is needed, but it doesn&apos;t compile without it.
&gt; 
&gt; What error do you get when you omit it?

I was getting an error coming from PassRefPtr, about not knowing about a type.

5&gt;WebPageWin.cpp
5&gt;c:\cygwin\home\bweinstein\webkitbuild\include\private\javascriptcore\PassRefPtr.h(59) : error C2027: use of undefined type &apos;WebCore::ArchiveResource&apos;
5&gt;        C:\cygwin\home\bweinstein\WebKitBuild\Include\WebCore/DocumentLoader.h(44) : see declaration of &apos;WebCore::ArchiveResource&apos;
5&gt;        c:\cygwin\home\bweinstein\webkitbuild\include\private\javascriptcore\PassRefPtr.h(74) : see reference to function template instantiation &apos;void WTF::derefIfNotNull&lt;T&gt;(T *)&apos; being compiled
5&gt;        with
5&gt;        [
5&gt;            T=WebCore::ArchiveResource
5&gt;        ]
5&gt;        c:\cygwin\home\bweinstein\webkitbuild\include\private\javascriptcore\PassRefPtr.h(74) : while compiling class template member function &apos;WTF::PassRefPtr&lt;T&gt;::~PassRefPtr(void)&apos;
5&gt;        with
5&gt;        [
5&gt;            T=WebCore::ArchiveResource
5&gt;        ]
5&gt;        ..\WebProcess\WebPage\win\WebPageWin.cpp(254) : see reference to class template instantiation &apos;WTF::PassRefPtr&lt;T&gt;&apos; being compiled
5&gt;        with
5&gt;        [
5&gt;            T=WebCore::ArchiveResource
5&gt;        ]
5&gt;c:\cygwin\home\bweinstein\webkitbuild\include\private\javascriptcore\PassRefPtr.h(59) : error C2227: left of &apos;-&gt;deref&apos; must point to class/struct/union/generic type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322662</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-12-15 10:13:04 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; I&apos;m not sure why the #include of ArchiveResource is needed, but it doesn&apos;t compile without it.
&gt; &gt; 
&gt; &gt; What error do you get when you omit it?
&gt; 
&gt; I was getting an error coming from PassRefPtr, about not knowing about a type.
&gt; 
&gt; 5&gt;WebPageWin.cpp
&gt; 5&gt;c:\cygwin\home\bweinstein\webkitbuild\include\private\javascriptcore\PassRefPtr.h(59) : error C2027: use of undefined type &apos;WebCore::ArchiveResource&apos;
&gt; 5&gt;        C:\cygwin\home\bweinstein\WebKitBuild\Include\WebCore/DocumentLoader.h(44) : see declaration of &apos;WebCore::ArchiveResource&apos;
&gt; 5&gt;        c:\cygwin\home\bweinstein\webkitbuild\include\private\javascriptcore\PassRefPtr.h(74) : see reference to function template instantiation &apos;void WTF::derefIfNotNull&lt;T&gt;(T *)&apos; being compiled
&gt; 5&gt;        with
&gt; 5&gt;        [
&gt; 5&gt;            T=WebCore::ArchiveResource
&gt; 5&gt;        ]
&gt; 5&gt;        c:\cygwin\home\bweinstein\webkitbuild\include\private\javascriptcore\PassRefPtr.h(74) : while compiling class template member function &apos;WTF::PassRefPtr&lt;T&gt;::~PassRefPtr(void)&apos;
&gt; 5&gt;        with
&gt; 5&gt;        [
&gt; 5&gt;            T=WebCore::ArchiveResource
&gt; 5&gt;        ]
&gt; 5&gt;        ..\WebProcess\WebPage\win\WebPageWin.cpp(254) : see reference to class template instantiation &apos;WTF::PassRefPtr&lt;T&gt;&apos; being compiled
&gt; 5&gt;        with
&gt; 5&gt;        [
&gt; 5&gt;            T=WebCore::ArchiveResource
&gt; 5&gt;        ]
&gt; 5&gt;c:\cygwin\home\bweinstein\webkitbuild\include\private\javascriptcore\PassRefPtr.h(59) : error C2227: left of &apos;-&gt;deref&apos; must point to class/struct/union/generic type

OK, this is not mysterious at all. DocumentLoader::subresource returns a PassRefPtr&lt;ArchiveResource&gt;. That returned PassRefPtr will be destroyed when it goes out of scope, so it will need to call ArchiveResource::deref. Without the definition of ArchiveResource supplied by the .h file, the compiler doesn&apos;t know whether that function exists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322663</commentid>
    <comment_count>8</comment_count>
      <attachid>76622</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-12-15 10:13:30 -0800</bug_when>
    <thetext>Comment on attachment 76622
[PATCH] Fix

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

&gt;&gt;&gt; WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:256
&gt;&gt;&gt; +        return true;
&gt;&gt; 
&gt;&gt; Seems like this code could all be cross-platform. Why is it sitting in this platform-specific file?
&gt; 
&gt; I could put this code in a cross-platform hasLocalDataForURL, then call platformHasLocalDataForURL to do the platform-specific checks if you think that is better.

That sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322684</commentid>
    <comment_count>9</comment_count>
      <attachid>76666</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-12-15 10:43:57 -0800</bug_when>
    <thetext>Created attachment 76666
[PATCH] Take 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322698</commentid>
    <comment_count>10</comment_count>
      <attachid>76666</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-12-15 11:02:16 -0800</bug_when>
    <thetext>Comment on attachment 76666
[PATCH] Take 2

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

Do you need to update WebPageQt, too?

&gt; WebKit2/ChangeLog:20
&gt; +        (WebKit::WebPage::platformHasLocalDataForURL): Renamed from hasLocalDataForURL and implemented with CFNetwork calls.

If this is the CFNetwork-equivalent of the Mac code, you should say so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322717</commentid>
    <comment_count>11</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-12-15 11:35:08 -0800</bug_when>
    <thetext>Landed in r74131.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76622</attachid>
            <date>2010-12-14 20:34:56 -0800</date>
            <delta_ts>2010-12-15 10:43:57 -0800</delta_ts>
            <desc>[PATCH] Fix</desc>
            <filename>webpage_win.patch</filename>
            <type>text/plain</type>
            <size>3383</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDA5NykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMTItMTQgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdlYktpdDI6IFdlYlBhZ2VXaW4gbmVlZHMgaW1wbGVtZW50YXRpb25zIG9mIGhhc0xvY2Fs
RGF0YUZvclVSTCBhbmQgY2FuSGFuZGxlUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEwOTAKKyAgICAgICAgCisgICAgICAgIEltcGxlbWVu
dCB0aGVzZSBmdW5jdGlvbnMgZm9yIFdlYktpdDIgb24gV2luZG93cy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6Omhhc0xvY2FsRGF0YUZvclVSTCk6IFNlZSBpZiB0aGUgVVJMIGlzIGEgZmlsZSBVUkws
IHRoZW4gc2VlIGlmIGl0J3MgaW4gdGhlIFdlYkNvcmUgY2FjaGUsCisgICAgICAgICAgICBhbmQg
dGhlbiBmYWxsIGJhY2sgdG8gdGhlIENGVVJMIGNhY2hlLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpjYW5IYW5kbGVSZXF1ZXN0KTogUmV0dXJuIHRoZSB2YWx1ZSBvZiBDRlVSTFByb3RvY29s
Q2FuSGFuZGxlUmVxdWVzdCBhbmQgYWRkIGEgRklYTUUKKyAgICAgICAgICAgIGZvciBpbXByb3Zp
bmcgdGhpcyBmdW5jdGlvbiBpZiBuZWVkZWQuCisKIDIwMTAtMTItMTQgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggV2luZG93cyBidWlsZC4KSW5k
ZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAJKHJl
dmlzaW9uIDc0MDY2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VX
aW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsyOCwxMiBAQAogI2luY2x1ZGUgIkZvbnRT
bW9vdGhpbmdMZXZlbC5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJl
ZmVyZW5jZXNTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9j
dXNDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb250UmVuZGVyaW5nTW9kZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KQEAg
LTQwLDYgKzQzLDEyIEBACiAjZW5kaWYKICNpbmNsdWRlIDxXaW5Vc2VyLmg+CiAKKyNpZiBVU0Uo
Q0ZORVRXT1JLKQorI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENhY2hlUHJpdi5oPgorI2luY2x1
ZGUgPENGTmV0d29yay9DRlVSTFByb3RvY29sUHJpdi5oPgorI2luY2x1ZGUgPENGTmV0d29yay9D
RlVSTFJlcXVlc3RQcml2Lmg+CisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjM2LDE2ICsyNDUsMjkgQEAgYm9vbCBXZWJQYWdlOjpw
ZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9ySwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFdl
YlBhZ2U6Omhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBXZWJDb3JlOjpLVVJMJikKK2Jvb2wgV2Vi
UGFnZTo6aGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCkKIHsKLSAg
ICAvLyBGSVhNRSA8cmRhcjovL3Byb2JsZW0vODYwODc1ND46IEltcGxlbWVudAotICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAodXJsLmlzTG9jYWxGaWxlKCkpCisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gbV9wYWdlLT5tYWluRnJhbWUoKS0+
bG9hZGVyKCk7CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWVMb2Fk
ZXIgPyBmcmFtZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKSA6IDA7CisgICAgaWYgKGRvY3VtZW50
TG9hZGVyICYmIGRvY3VtZW50TG9hZGVyLT5zdWJyZXNvdXJjZSh1cmwpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIFJldGFpblB0cjxDRk11dGFibGVVUkxSZXF1ZXN0UmVmPiByZXF1ZXN0
KEFkb3B0Q0YsIENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGUoMCwgdXJsLmNyZWF0ZUNGVVJMKCks
IGtDRlVSTFJlcXVlc3RDYWNoZVBvbGljeVJlbG9hZElnbm9yaW5nQ2FjaGUsIDYwLCAwKSk7Cisg
ICAgQ0ZVUkxSZXF1ZXN0U2V0SFRUUEhlYWRlckZpZWxkVmFsdWUocmVxdWVzdC5nZXQoKSwgQ0ZT
VFIoIlVzZXItQWdlbnQiKSwgdXNlckFnZW50KCkuY3JlYXRlQ0ZTdHJpbmcoKSk7CisKKyAgICBS
ZXRhaW5QdHI8Q0ZVUkxDYWNoZVJlZj4gY2FjaGUoQWRvcHRDRiwgQ0ZVUkxDYWNoZUNvcHlTaGFy
ZWRVUkxDYWNoZSgpKTsKKworICAgIFJldGFpblB0cjxDRkNhY2hlZFVSTFJlc3BvbnNlUmVmPiBy
ZXNwb25zZShBZG9wdENGLCBDRlVSTENhY2hlQ29weVJlc3BvbnNlRm9yUmVxdWVzdChjYWNoZS5n
ZXQoKSwgcmVxdWVzdC5nZXQoKSkpOyAgICAKKyAgICByZXR1cm4gcmVzcG9uc2U7CiB9CiAKLWJv
b2wgV2ViUGFnZTo6Y2FuSGFuZGxlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKQorYm9vbCBXZWJQYWdlOjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICAvLyBGSVhNRSA8cmRhcjovL3Byb2JsZW0vODYw
ODc1ND46IEltcGxlbWVudAotICAgIHJldHVybiB0cnVlOworICAgIC8vIEZJWE1FOiBBcmUgdGhl
cmUgb3RoZXIgcmVxdWVzdHMgd2UgbmVlZCB0byBiZSBhYmxlIHRvIGhhbmRsZT8gV2ViS2l0MSdz
IFdlYlZpZXcuY3BwIGhhcyBhIEZJWE1FIGhlcmUgYXMgd2VsbC4KKyAgICByZXR1cm4gQ0ZVUkxQ
cm90b2NvbENhbkhhbmRsZVJlcXVlc3QocmVxdWVzdC5jZlVSTFJlcXVlc3QoKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="67599"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76666</attachid>
            <date>2010-12-15 10:43:57 -0800</date>
            <delta_ts>2010-12-15 11:02:16 -0800</delta_ts>
            <desc>[PATCH] Take 2</desc>
            <filename>webpage_win.patch</filename>
            <type>text/plain</type>
            <size>7107</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDEyMykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMTItMTUgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdlYktpdDI6IFdlYlBhZ2VXaW4gbmVlZHMgaW1wbGVtZW50YXRpb25zIG9mIGhhc0xvY2Fs
RGF0YUZvclVSTCBhbmQgY2FuSGFuZGxlUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEwOTAKKyAgICAgICAgCisgICAgICAgIEltcGxlbWVu
dCB0aGVzZSBmdW5jdGlvbnMgZm9yIFdlYktpdDIgb24gV2luZG93cy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aGFzTG9jYWxEYXRhRm9yVVJMKTogRG9lcyB0aGUgY3Jvc3MtcGxhdGZvcm0gcGFydCBvZiB0aGUg
Y2hlY2sgZm9yIGhhdmluZyBsb2NhbAorICAgICAgICAgICAgZGF0YSAoZmlsZSBVUkwgb3Igc3Vi
cmVzb3VyY2UpLCB0aGVuIGNhbGxzIHBsYXRmb3JtSGFzTG9jYWxEYXRhRm9yVVJMIHRvIGxldCB0
aGUgcGxhdGZvcm0gZG8KKyAgICAgICAgICAgIHRoZWlyIHNwZWNpZmljIGNoZWNrcy4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGxh
dGZvcm1IYXNMb2NhbERhdGFGb3JVUkwpOiBNb3ZlZCB0aGUgY3Jvc3MtcGxhdGZvcm0gY29kZSBm
cm9tIGhlcmUgdG8gV2ViUGFnZTo6aGFzTG9jYWxEYXRhRm9yVVJMLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTCk6IFJlbmFtZWQgZnJvbSBoYXNMb2NhbERhdGFG
b3JVUkwuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGxhdGZvcm1IYXNMb2NhbERhdGFGb3JVUkwpOiBS
ZW5hbWVkIGZyb20gaGFzTG9jYWxEYXRhRm9yVVJMIGFuZCBpbXBsZW1lbnRlZCB3aXRoIENGTmV0
d29yayBjYWxscy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2FuSGFuZGxlUmVxdWVzdCk6
IENvcGllZCB0aGUgbGluZSBvZiBjb2RlIGZyb20gV2ViVmlldzo6Y2FuSGFuZGxlUmVxdWVzdCBp
biBXZWJLaXQxLCB3aXRoIGEgRklYTUUgc2F5aW5nCisgICAgICAgICAgICB0aGlzIG1pZ2h0IG5v
dCBiZSBlbm91Z2ggKGFsdGhvdWdoIGl0IHdhcyBpbiBXZWJLaXQxIG9uIFdpbmRvd3MpLgorCiAy
MDEwLTEyLTE1ICBBbXJ1dGggUmFqICA8YW1ydXRocmFqQG1vdG9yb2xhLmNvbT4gYW5kIFJhdmkg
S2FzaWJoYXRsYSAgPHJhdmkua2FzaWJoYXRsYUBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAJKHJldmlzaW9uIDc0MDY2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDggKzU4LDEwIEBACiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Fic3RyYWN0RGF0YWJhc2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2hy
b21lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudEhh
bmRsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWUuaD4KQEAgLTEyNjQsNCArMTI2NiwxNyBAQCB2b2lkIFdlYlBhZ2U6OlNh
bmRib3hFeHRlbnNpb25UcmFja2VyOjpkCiAgICAgbV9wcm92aXNpb25hbFNhbmRib3hFeHRlbnNp
b24gPSAwOwogfQogCitib29sIFdlYlBhZ2U6Omhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBLVVJM
JiB1cmwpCit7CisgICAgaWYgKHVybC5pc0xvY2FsRmlsZSgpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IG1fcGFnZS0+bWFpbkZyYW1lKCkt
PmxvYWRlcigpOworICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGZyYW1lTG9h
ZGVyID8gZnJhbWVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCkgOiAwOworICAgIGlmIChkb2N1bWVu
dExvYWRlciAmJiBkb2N1bWVudExvYWRlci0+c3VicmVzb3VyY2UodXJsKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICByZXR1cm4gcGxhdGZvcm1IYXNMb2NhbERhdGFGb3JVUkwodXJsKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCShyZXZpc2lvbiA3NDA2NikKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjY3LDYgKzI2Nyw4IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIGxvYWREYXRhKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiwgY29u
c3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZ05hbWUsIGNvbnN0IFdl
YkNvcmU6OktVUkwmIGJhc2VVUkwsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGZhaWxpbmdVUkwpOwog
CisgICAgYm9vbCBwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBXZWJDb3JlOjpLVVJM
Jik7CisKICAgICAvLyBBY3Rpb25zCiAgICAgdm9pZCB0cnlDbG9zZSgpOwogICAgIHZvaWQgbG9h
ZFVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpOwpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dlYlBhZ2VNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1dlYlBhZ2VNYWMubW0JKHJldmlzaW9uIDc0MDY2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDYg
QEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJl
c291cmNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CkBAIC0zNDIsMTYgKzM0MCw4IEBAIGJvb2wg
V2ViUGFnZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcksKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBXZWJQYWdlOjpoYXNMb2NhbERhdGFGb3JVUkwoY29uc3QgV2ViQ29yZTo6S1VSTCYg
dXJsKQorYm9vbCBXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBXZWJD
b3JlOjpLVVJMJiB1cmwpCiB7Ci0gICAgaWYgKHVybC5pc0xvY2FsRmlsZSgpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBtX3BhZ2Ut
Pm1haW5GcmFtZSgpLT5sb2FkZXIoKTsKLSAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2Fk
ZXIgPSBmcmFtZUxvYWRlciA/IGZyYW1lTG9hZGVyLT5kb2N1bWVudExvYWRlcigpIDogMDsKLSAg
ICBpZiAoZG9jdW1lbnRMb2FkZXIgJiYgZG9jdW1lbnRMb2FkZXItPnN1YnJlc291cmNlKHVybCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCogcmVxdWVz
dCA9IFtbTlNNdXRhYmxlVVJMUmVxdWVzdCBhbGxvY10gaW5pdFdpdGhVUkw6dXJsXTsKICAgICBb
cmVxdWVzdCBzZXRWYWx1ZTooTlNTdHJpbmcqKXVzZXJBZ2VudCgpIGZvckhUVFBIZWFkZXJGaWVs
ZDpAIlVzZXItQWdlbnQiXTsKICAgICBOU0NhY2hlZFVSTFJlc3BvbnNlICpjYWNoZWRSZXNwb25z
ZSA9IFtbTlNVUkxDYWNoZSBzaGFyZWRVUkxDYWNoZV0gY2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0
OnJlcXVlc3RdOwpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdl
UXQuY3BwCShyZXZpc2lvbiA3NDA2NikKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0
L1dlYlBhZ2VRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NCw3ICsyNjQsNyBAQCBib29sIFdl
YlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgV2ViUGFnZTo6aGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0IFdlYkNvcmU6OktVUkwmKQor
Ym9vbCBXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBXZWJDb3JlOjpL
VVJMJikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRl
eDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAkocmV2
aXNpb24gNzQwNjYpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDEyIEBACiAjZW5kaWYKICNpbmNsdWRl
IDxXaW5Vc2VyLmg+CiAKKyNpZiBVU0UoQ0ZORVRXT1JLKQorI2luY2x1ZGUgPENGTmV0d29yay9D
RlVSTENhY2hlUHJpdi5oPgorI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTFByb3RvY29sUHJpdi5o
PgorI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTFJlcXVlc3RQcml2Lmg+CisjZW5kaWYKKwogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjM2LDE2ICsy
NDIsMjggQEAgYm9vbCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9ySwogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIFdlYlBhZ2U6Omhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBX
ZWJDb3JlOjpLVVJMJikKK2Jvb2wgV2ViUGFnZTo6cGxhdGZvcm1IYXNMb2NhbERhdGFGb3JVUkwo
Y29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsKQogewotICAgIC8vIEZJWE1FIDxyZGFyOi8vcHJvYmxl
bS84NjA4NzU0PjogSW1wbGVtZW50CisjaWYgVVNFKENGTkVUV09SSykKKyAgICBSZXRhaW5QdHI8
Q0ZVUkxSZWY+IGNmVVJMKEFkb3B0Q0YsIHVybC5jcmVhdGVDRlVSTCgpKTsKKyAgICBSZXRhaW5Q
dHI8Q0ZNdXRhYmxlVVJMUmVxdWVzdFJlZj4gcmVxdWVzdChBZG9wdENGLCBDRlVSTFJlcXVlc3RD
cmVhdGVNdXRhYmxlKDAsIGNmVVJMLmdldCgpLCBrQ0ZVUkxSZXF1ZXN0Q2FjaGVQb2xpY3lSZWxv
YWRJZ25vcmluZ0NhY2hlLCA2MCwgMCkpOworICAgIAorICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gdXNlckFnZW50KEFkb3B0Q0YsIHVzZXJBZ2VudCgpLmNyZWF0ZUNGU3RyaW5nKCkpOworICAg
IENGVVJMUmVxdWVzdFNldEhUVFBIZWFkZXJGaWVsZFZhbHVlKHJlcXVlc3QuZ2V0KCksIENGU1RS
KCJVc2VyLUFnZW50IiksIHVzZXJBZ2VudC5nZXQoKSk7CisKKyAgICBSZXRhaW5QdHI8Q0ZVUkxD
YWNoZVJlZj4gY2FjaGUoQWRvcHRDRiwgQ0ZVUkxDYWNoZUNvcHlTaGFyZWRVUkxDYWNoZSgpKTsK
KworICAgIFJldGFpblB0cjxDRkNhY2hlZFVSTFJlc3BvbnNlUmVmPiByZXNwb25zZShBZG9wdENG
LCBDRlVSTENhY2hlQ29weVJlc3BvbnNlRm9yUmVxdWVzdChjYWNoZS5nZXQoKSwgcmVxdWVzdC5n
ZXQoKSkpOyAgICAKKyAgICByZXR1cm4gcmVzcG9uc2U7CisjZWxzZQogICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgogfQogCi1ib29sIFdlYlBhZ2U6OmNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JikKK2Jvb2wgV2ViUGFnZTo6Y2FuSGFuZGxlUmVxdWVzdChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgLy8gRklYTUUg
PHJkYXI6Ly9wcm9ibGVtLzg2MDg3NTQ+OiBJbXBsZW1lbnQKLSAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAvLyBGSVhNRTogQXJlIHRoZXJlIG90aGVyIHJlcXVlc3RzIHdlIG5lZWQgdG8gYmUgYWJsZSB0
byBoYW5kbGU/IFdlYktpdDEncyBXZWJWaWV3LmNwcCBoYXMgYSBGSVhNRSBoZXJlIGFzIHdlbGwu
CisgICAgcmV0dXJuIENGVVJMUHJvdG9jb2xDYW5IYW5kbGVSZXF1ZXN0KHJlcXVlc3QuY2ZVUkxS
ZXF1ZXN0KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>
<flag name="review"
          id="67657"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>