<?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>71053</bug_id>
          
          <creation_ts>2011-10-27 12:29:40 -0700</creation_ts>
          <short_desc>Anonymous CORS fetch for WebGL texture fails when there is no appropriate server response even for the same origin requests</short_desc>
          <delta_ts>2012-01-27 18:01:15 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>0</everconfirmed>
          <reporter name="AlteredQualia">postfilter</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>ian</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>491823</commentid>
    <comment_count>0</comment_count>
    <who name="AlteredQualia">postfilter</who>
    <bug_when>2011-10-27 12:29:40 -0700</bug_when>
    <thetext>Asking for anonymous CORS fetch for WebGL texture from the server that doesn&apos;t know about CORS throws security exception even when the script and image share the same origin.

Not sure if this is a bug or feature, specs are somehow ambiguous:

http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#attr-crossorigin-anonymous

(it is clear that security exception should be thrown when CORS request does not succeed when origins do differ, what is not clear is what should happen when origins are the same)

This behavior changed in recent Chrome Canary 17.0.919.0. Before, when you asked for anonymous CORS (by setting image.crossOrigin=&apos;&apos;) it didn&apos;t matter what server did if origins of the script and image were the same.

How to reproduce:

Go for example here:

http://mrdoob.github.com/three.js/examples/webgl_materials_normalmap2.html

This used to show textured model. Instead Chrome console now shows exception:

&quot;Cross-origin image load denied by Cross-Origin Resource Sharing policy.&quot;

Additional info:

This issue is related to following Chromium and three.js issues:

http://code.google.com/p/chromium/issues/detail?id=82042

https://github.com/mrdoob/three.js/issues/687

Firefox 7.0.1 and nightly Firefox 10.0a1 (2011-10-27) do behave like Chrome used to (stable Chrome 15.0.874.106 still works like this): CORS fetch mode does not matter when image and script share the same origin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491827</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-27 12:32:56 -0700</bug_when>
    <thetext>I need to double-check the spec and Firefox&apos;s behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495957</commentid>
    <comment_count>2</comment_count>
      <attachid>113599</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-03 18:05:13 -0700</bug_when>
    <thetext>Created attachment 113599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496256</commentid>
    <comment_count>3</comment_count>
      <attachid>113599</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-04 10:07:14 -0700</bug_when>
    <thetext>Comment on attachment 113599
Patch

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

&gt; Source/WebCore/loader/ImageLoader.cpp:246
&gt; +    if (m_element-&gt;fastHasAttribute(HTMLNames::crossoriginAttr)
&gt; +        &amp;&amp; !m_element-&gt;document()-&gt;securityOrigin()-&gt;canRequest(image()-&gt;response().url())
&gt; +        &amp;&amp; !resource-&gt;passesAccessControlCheck(m_element-&gt;document()-&gt;securityOrigin())) {

Maybe this can be factored into an inline member function so the if statement is easier to read. The name of that function could help document what is going on, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496321</commentid>
    <comment_count>4</comment_count>
      <attachid>113599</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 11:09:52 -0700</bug_when>
    <thetext>Comment on attachment 113599
Patch

Clearing flags on attachment: 113599

Committed r99298: &lt;http://trac.webkit.org/changeset/99298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496322</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 11:09:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544362</commentid>
    <comment_count>6</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2012-01-27 14:22:47 -0800</bug_when>
    <thetext>As far as I can tell, this disagrees with the specs. But maybe the spec should change...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544557</commentid>
    <comment_count>7</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2012-01-27 18:01:15 -0800</bug_when>
    <thetext>I&apos;ve changed the spec. Not sure how closely it matches what WebKit is doing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113599</attachid>
            <date>2011-11-03 18:05:13 -0700</date>
            <delta_ts>2011-11-04 11:09:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71053-20111103180512.patch</filename>
            <type>text/plain</type>
            <size>4198</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MjU0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTEtMDMgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbm9ueW1vdXMgQ09SUyBmZXRjaCBm
b3IgV2ViR0wgdGV4dHVyZSBmYWlscyB3aGVuIHRoZXJlIGlzIG5vIGFwcHJvcHJpYXRlIHNlcnZl
ciByZXNwb25zZSBldmVuIGZvciB0aGUgc2FtZSBvcmlnaW4gcmVxdWVzdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDUzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGNyb3Nzb3JpZ2luIGF0dHJp
YnV0ZSBzaG91bGQgYmVoYXZlIGxpa2UgWE1MSHR0cFJlcXVlc3Q6CisgICAgICAgIHNhbWUtb3Jp
Z2luIGltYWdlcyBwYXNzIHdpdGhvdXQgYW5kIENPUlMgaGVhZGVycywgYnV0IENPUlMgY2hlY2tz
IGFyZQorICAgICAgICBwZXJmb3JtZWQgZm9yIGNyb3NzLW9yaWdpbiBsb2Fkcy4gIFRoaXMgcGF0
Y2ggYmV0dGVyIGFsaWducyBvdXIKKyAgICAgICAgYmVoYXZpb3Igd2l0aCBGaXJlZm94LCBhcyBk
aXNjdXNzZWQgaW4gdGhlIGJ1Zy4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2ltZy1jcm9zc29yaWdpbi1sb2Fkcy1zYW1lLW9yaWdpbi5odG1sCisKKyAgICAgICAgKiBsb2Fk
ZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6Om5vdGlm
eUZpbmlzaGVkKToKKwogMjAxMS0xMS0wMyAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgQ29ycmVjdCB1c2FnZSBvZiBMYXlvdXRVbml0cyBhbmQgaW50ZWdl
cnMgaW4gVGFibGUgcmVuZGVyaW5nIGNsYXNzZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9JbWFnZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0lt
YWdlTG9hZGVyLmNwcAkocmV2aXNpb24gOTkyMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
SW1hZ2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAogI2lm
IEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiUmVuZGVyU1ZHSW1hZ2UuaCIKQEAgLTI0MCw3ICsyNDEs
MTAgQEAgdm9pZCBJbWFnZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUgogICAgIGlmICht
X2ZpcmVkTG9hZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZWxlbWVudC0+ZmFzdEhh
c0F0dHJpYnV0ZShIVE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cikgJiYgIXJlc291cmNlLT5wYXNz
ZXNBY2Nlc3NDb250cm9sQ2hlY2sobV9lbGVtZW50LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpKSkgeworICAgIGlmIChtX2VsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjpj
cm9zc29yaWdpbkF0dHIpCisgICAgICAgICYmICFtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCktPmNhblJlcXVlc3QoaW1hZ2UoKS0+cmVzcG9uc2UoKS51cmwoKSkKKyAgICAg
ICAgJiYgIXJlc291cmNlLT5wYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2sobV9lbGVtZW50LT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgeworCiAgICAgICAgIHNldEltYWdlKDApOwogCiAg
ICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKCJDcm9z
cy1vcmlnaW4gaW1hZ2UgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJp
bmcgcG9saWN5LiIpKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MjU0KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMDMgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbm9ueW1vdXMgQ09SUyBm
ZXRjaCBmb3IgV2ViR0wgdGV4dHVyZSBmYWlscyB3aGVuIHRoZXJlIGlzIG5vIGFwcHJvcHJpYXRl
IHNlcnZlciByZXNwb25zZSBldmVuIGZvciB0aGUgc2FtZSBvcmlnaW4gcmVxdWVzdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDUzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IHdlIHN1
Y2NlZWQgaW4gbG9hZGluZyBhIHNhbWUtb3JpZ2luIGltYWdlIHdpdGhvdXQgdGhlIGhlbHAgb2YK
KyAgICAgICAgQ09SUyBldmVuIGlmIHRoZSBpbWFnZSBoYXMgdGhlIGNyb3Nzb3JpZ2luIGF0dHJp
YnV0ZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaW1nLWNyb3Nzb3JpZ2luLWxv
YWRzLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS9pbWctY3Jvc3NvcmlnaW4tbG9hZHMtc2FtZS1vcmlnaW4uaHRtbDogQWRkZWQu
CisKIDIwMTEtMTEtMDMgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZW1vdmUgYW4gb2Jzb2xldGUgY29tbWVudC4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvaW1nLWNyb3Nzb3JpZ2luLWxvYWRzLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2ltZy1jcm9z
c29yaWdpbi1sb2Fkcy1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2ltZy1jcm9zc29yaWdpbi1sb2Fkcy1zYW1l
LW9yaWdpbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorQUxFUlQ6
IFBBU1MKK1RoaXMgaW1hZ2Ugc2hvdWxkIGxvYWQ6CisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvaW1nLWNyb3Nzb3JpZ2luLWxvYWRzLXNhbWUtb3JpZ2luLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pbWctY3Jvc3Nvcmln
aW4tbG9hZHMtc2FtZS1vcmlnaW4uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvaW1nLWNyb3Nzb3JpZ2luLWxvYWRzLXNhbWUtb3JpZ2luLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rp
b24gbG9hZGVkKCkgeworICAgIHZhciBpbWFnZSA9IGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ2ltZycpWzBdOworICAgIGFsZXJ0KGltYWdlLndpZHRoID4gMCA/ICdQQVNTJyA6
ICdGQUlMJyk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+CitUaGlzIGlt
YWdlIHNob3VsZCBsb2FkOjxicj4KKzxpbWcgY3Jvc3NvcmlnaW49ImFub255bW91cyIgc3JjPSJy
ZXNvdXJjZXMvYWJlLnBuZyIgb25sb2FkPSJsb2FkZWQoKSI+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>