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

Side by Side Diff: media/blink/buffered_data_source.h

Issue 1266953002: [Merge to M45]Check the response URL origin in BufferedDataSource to avoid mixing cross-origin resp… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2454
Patch Set: Created 5 years, 4 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
« no previous file with comments | « no previous file | media/blink/buffered_data_source.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef MEDIA_BLINK_BUFFERED_DATA_SOURCE_H_ 5 #ifndef MEDIA_BLINK_BUFFERED_DATA_SOURCE_H_
6 #define MEDIA_BLINK_BUFFERED_DATA_SOURCE_H_ 6 #define MEDIA_BLINK_BUFFERED_DATA_SOURCE_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 // the render thread. 152 // the render thread.
153 void ReadInternal(); 153 void ReadInternal();
154 154
155 // BufferedResourceLoader::Start() callback for initial load. 155 // BufferedResourceLoader::Start() callback for initial load.
156 void StartCallback(BufferedResourceLoader::Status status); 156 void StartCallback(BufferedResourceLoader::Status status);
157 157
158 // BufferedResourceLoader::Start() callback for subsequent loads (i.e., 158 // BufferedResourceLoader::Start() callback for subsequent loads (i.e.,
159 // when accessing ranges that are outside initial buffered region). 159 // when accessing ranges that are outside initial buffered region).
160 void PartialReadStartCallback(BufferedResourceLoader::Status status); 160 void PartialReadStartCallback(BufferedResourceLoader::Status status);
161 161
162 // Returns true if we can accept the new partial response.
163 bool CheckPartialResponseURL(const GURL& partial_response_original_url) const;
164
162 // BufferedResourceLoader callbacks. 165 // BufferedResourceLoader callbacks.
163 void ReadCallback(BufferedResourceLoader::Status status, int bytes_read); 166 void ReadCallback(BufferedResourceLoader::Status status, int bytes_read);
164 void LoadingStateChangedCallback(BufferedResourceLoader::LoadingState state); 167 void LoadingStateChangedCallback(BufferedResourceLoader::LoadingState state);
165 void ProgressCallback(int64 position); 168 void ProgressCallback(int64 position);
166 169
167 // Update |loader_|'s deferring strategy in response to a play/pause, or 170 // Update |loader_|'s deferring strategy in response to a play/pause, or
168 // change in playback rate. 171 // change in playback rate.
169 void UpdateDeferStrategy(bool paused); 172 void UpdateDeferStrategy(bool paused);
170 173
171 // URL of the resource requested. 174 // URL of the resource requested.
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 // Current playback rate. 234 // Current playback rate.
232 double playback_rate_; 235 double playback_rate_;
233 236
234 scoped_refptr<MediaLog> media_log_; 237 scoped_refptr<MediaLog> media_log_;
235 238
236 // Host object to report buffered byte range changes to. 239 // Host object to report buffered byte range changes to.
237 BufferedDataSourceHost* host_; 240 BufferedDataSourceHost* host_;
238 241
239 DownloadingCB downloading_cb_; 242 DownloadingCB downloading_cb_;
240 243
244 // The original URL of the first response. If the request is redirected to
245 // another URL it is the URL after redirected. If the response is generated in
246 // a Service Worker this URL is empty. BufferedDataSource checks the original
247 // URL of each successive response. If the origin URL of it is different from
248 // the original URL of the first response, it is treated as an error.
249 GURL response_original_url_;
250
241 // Disallow rebinding WeakReference ownership to a different thread by keeping 251 // Disallow rebinding WeakReference ownership to a different thread by keeping
242 // a persistent reference. This avoids problems with the thread-safety of 252 // a persistent reference. This avoids problems with the thread-safety of
243 // reaching into this class from multiple threads to attain a WeakPtr. 253 // reaching into this class from multiple threads to attain a WeakPtr.
244 base::WeakPtr<BufferedDataSource> weak_ptr_; 254 base::WeakPtr<BufferedDataSource> weak_ptr_;
245 base::WeakPtrFactory<BufferedDataSource> weak_factory_; 255 base::WeakPtrFactory<BufferedDataSource> weak_factory_;
246 256
247 DISALLOW_COPY_AND_ASSIGN(BufferedDataSource); 257 DISALLOW_COPY_AND_ASSIGN(BufferedDataSource);
248 }; 258 };
249 259
250 } // namespace media 260 } // namespace media
251 261
252 #endif // MEDIA_BLINK_BUFFERED_DATA_SOURCE_H_ 262 #endif // MEDIA_BLINK_BUFFERED_DATA_SOURCE_H_
OLDNEW
« no previous file with comments | « no previous file | media/blink/buffered_data_source.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698