Index: webkit/glue/media/simple_data_source.cc |
diff --git a/webkit/glue/media/simple_data_source.cc b/webkit/glue/media/simple_data_source.cc |
index 07f758783539987b94da9fcc6f6f37363bf49c05..fee89fe072e86bbb5cb5e476c6daa6d0b6f6e12f 100644 |
--- a/webkit/glue/media/simple_data_source.cc |
+++ b/webkit/glue/media/simple_data_source.cc |
@@ -113,11 +113,21 @@ void SimpleDataSource::willSendRequest( |
WebKit::WebURLRequest& newRequest, |
const WebKit::WebURLResponse& redirectResponse) { |
DCHECK(MessageLoop::current() == render_loop_); |
+ base::AutoLock auto_lock(lock_); |
// 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_) { |
+ DoneInitialization_Locked(false); |
+ return; |
+ } |
+ |
url_ = newRequest.url(); |
} |