| 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();
|
| }
|
|
|
|
|