Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Side by Side Diff: webkit/glue/media/simple_data_source.cc

Issue 6580014: Make playback fail if redirected to a different origin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix spelling error Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "webkit/glue/media/simple_data_source.h" 5 #include "webkit/glue/media/simple_data_source.h"
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/process_util.h" 8 #include "base/process_util.h"
9 #include "media/base/filter_host.h" 9 #include "media/base/filter_host.h"
10 #include "net/base/data_url.h" 10 #include "net/base/data_url.h"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 void SimpleDataSource::SetURLLoaderForTest(WebKit::WebURLLoader* mock_loader) { 106 void SimpleDataSource::SetURLLoaderForTest(WebKit::WebURLLoader* mock_loader) {
107 url_loader_.reset(mock_loader); 107 url_loader_.reset(mock_loader);
108 keep_test_loader_ = true; 108 keep_test_loader_ = true;
109 } 109 }
110 110
111 void SimpleDataSource::willSendRequest( 111 void SimpleDataSource::willSendRequest(
112 WebKit::WebURLLoader* loader, 112 WebKit::WebURLLoader* loader,
113 WebKit::WebURLRequest& newRequest, 113 WebKit::WebURLRequest& newRequest,
114 const WebKit::WebURLResponse& redirectResponse) { 114 const WebKit::WebURLResponse& redirectResponse) {
115 DCHECK(MessageLoop::current() == render_loop_); 115 DCHECK(MessageLoop::current() == render_loop_);
116 base::AutoLock auto_lock(lock_);
116 117
117 // Only allow |single_origin_| if we haven't seen a different origin yet. 118 // Only allow |single_origin_| if we haven't seen a different origin yet.
118 if (single_origin_) 119 if (single_origin_)
119 single_origin_ = url_.GetOrigin() == GURL(newRequest.url()).GetOrigin(); 120 single_origin_ = url_.GetOrigin() == GURL(newRequest.url()).GetOrigin();
120 121
122 // Enforce same-origin policy and cause redirects to other origins to
123 // look like network errors.
124 // http://dev.w3.org/html5/spec/Overview.html#concept-media-load-resource
125 // http://dev.w3.org/html5/spec/Overview.html#fetch
126 if (!single_origin_) {
127 DoneInitialization_Locked(false);
128 return;
129 }
130
121 url_ = newRequest.url(); 131 url_ = newRequest.url();
122 } 132 }
123 133
124 void SimpleDataSource::didSendData( 134 void SimpleDataSource::didSendData(
125 WebKit::WebURLLoader* loader, 135 WebKit::WebURLLoader* loader,
126 unsigned long long bytesSent, 136 unsigned long long bytesSent,
127 unsigned long long totalBytesToBeSent) { 137 unsigned long long totalBytesToBeSent) {
128 NOTIMPLEMENTED(); 138 NOTIMPLEMENTED();
129 } 139 }
130 140
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 // If scheme is file or data, say we are loaded. 285 // If scheme is file or data, say we are loaded.
276 host()->SetLoaded(url_.SchemeIsFile() || url_.SchemeIs(kDataScheme)); 286 host()->SetLoaded(url_.SchemeIsFile() || url_.SchemeIs(kDataScheme));
277 } else { 287 } else {
278 host()->SetError(media::PIPELINE_ERROR_NETWORK); 288 host()->SetError(media::PIPELINE_ERROR_NETWORK);
279 } 289 }
280 initialize_callback_->Run(); 290 initialize_callback_->Run();
281 initialize_callback_.reset(); 291 initialize_callback_.reset();
282 } 292 }
283 293
284 } // namespace webkit_glue 294 } // namespace webkit_glue
OLDNEW
« no previous file with comments | « webkit/glue/media/buffered_resource_loader_unittest.cc ('k') | webkit/glue/media/simple_data_source_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698