Index: webkit/glue/media/buffered_resource_loader.cc |
diff --git a/webkit/glue/media/buffered_resource_loader.cc b/webkit/glue/media/buffered_resource_loader.cc |
index a86d2dda8c9994ca8a8af0f778cf636f3341c9c5..e7354f6b0a3e1f15bde8636004b8f7de7d7b5af4 100644 |
--- a/webkit/glue/media/buffered_resource_loader.cc |
+++ b/webkit/glue/media/buffered_resource_loader.cc |
@@ -248,18 +248,21 @@ void BufferedResourceLoader::willSendRequest( |
return; |
} |
- if (!IsProtocolSupportedForMedia(newRequest.url())) { |
+ // Only allow |single_origin_| if we haven't seen a different origin yet. |
+ if (single_origin_) |
+ single_origin_ = url_.GetOrigin() == GURL(newRequest.url()).GetOrigin(); |
+ |
+ // Enforce same-origin policy and cause redirects to other origins to |
+ // look like network errors. |
+ // http://dev.w3.org/html5/spec/Overview.html#concept-media-load-resource |
+ // http://dev.w3.org/html5/spec/Overview.html#fetch |
+ if (!single_origin_ || !IsProtocolSupportedForMedia(newRequest.url())) { |
// Set the url in the request to an invalid value (empty url). |
newRequest.setURL(WebKit::WebURL()); |
DoneStart(net::ERR_ADDRESS_INVALID); |
- Stop(); |
return; |
} |
- // Only allow |single_origin_| if we haven't seen a different origin yet. |
- if (single_origin_) |
- single_origin_ = url_.GetOrigin() == GURL(newRequest.url()).GetOrigin(); |
- |
url_ = newRequest.url(); |
} |