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

Side by Side Diff: webkit/media/buffered_resource_loader.cc

Issue 10543007: Add CORS-awareness to HTML5 media elements. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 6 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/media/buffered_resource_loader.h" 5 #include "webkit/media/buffered_resource_loader.h"
6 6
7 #include "base/bits.h" 7 #include "base/bits.h"
8 #include "base/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 98
99 *out_forward_capacity = std::min(*out_forward_capacity, kMaxBufferCapacity); 99 *out_forward_capacity = std::min(*out_forward_capacity, kMaxBufferCapacity);
100 *out_backward_capacity = std::min(*out_backward_capacity, kMaxBufferCapacity); 100 *out_backward_capacity = std::min(*out_backward_capacity, kMaxBufferCapacity);
101 101
102 if (backward_playback) 102 if (backward_playback)
103 std::swap(*out_forward_capacity, *out_backward_capacity); 103 std::swap(*out_forward_capacity, *out_backward_capacity);
104 } 104 }
105 105
106 BufferedResourceLoader::BufferedResourceLoader( 106 BufferedResourceLoader::BufferedResourceLoader(
107 const GURL& url, 107 const GURL& url,
108 CrossOriginAttribute cross_origin_attribute,
108 int64 first_byte_position, 109 int64 first_byte_position,
109 int64 last_byte_position, 110 int64 last_byte_position,
110 DeferStrategy strategy, 111 DeferStrategy strategy,
111 int bitrate, 112 int bitrate,
112 float playback_rate, 113 float playback_rate,
113 media::MediaLog* media_log) 114 media::MediaLog* media_log)
114 : buffer_(kMinBufferCapacity, kMinBufferCapacity), 115 : buffer_(kMinBufferCapacity, kMinBufferCapacity),
115 loader_failed_(false), 116 loader_failed_(false),
116 defer_strategy_(strategy), 117 defer_strategy_(strategy),
117 might_be_reused_from_cache_in_future_(true), 118 might_be_reused_from_cache_in_future_(true),
118 range_supported_(false), 119 range_supported_(false),
119 saved_forward_capacity_(0), 120 saved_forward_capacity_(0),
120 url_(url), 121 url_(url),
122 cross_origin_attribute_(cross_origin_attribute),
121 first_byte_position_(first_byte_position), 123 first_byte_position_(first_byte_position),
122 last_byte_position_(last_byte_position), 124 last_byte_position_(last_byte_position),
123 single_origin_(true), 125 single_origin_(true),
124 offset_(0), 126 offset_(0),
125 content_length_(kPositionNotSpecified), 127 content_length_(kPositionNotSpecified),
126 instance_size_(kPositionNotSpecified), 128 instance_size_(kPositionNotSpecified),
127 read_position_(0), 129 read_position_(0),
128 read_size_(0), 130 read_size_(0),
129 read_buffer_(NULL), 131 read_buffer_(NULL),
130 first_offset_(0), 132 first_offset_(0),
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 request.setHTTPHeaderField( 179 request.setHTTPHeaderField(
178 WebString::fromUTF8(net::HttpRequestHeaders::kAcceptEncoding), 180 WebString::fromUTF8(net::HttpRequestHeaders::kAcceptEncoding),
179 WebString::fromUTF8("identity;q=1, *;q=0")); 181 WebString::fromUTF8("identity;q=1, *;q=0"));
180 182
181 // Check for our test WebURLLoader. 183 // Check for our test WebURLLoader.
182 scoped_ptr<WebURLLoader> loader; 184 scoped_ptr<WebURLLoader> loader;
183 if (test_loader_.get()) { 185 if (test_loader_.get()) {
184 loader = test_loader_.Pass(); 186 loader = test_loader_.Pass();
185 } else { 187 } else {
186 WebURLLoaderOptions options; 188 WebURLLoaderOptions options;
187 options.allowCredentials = true; 189 if (cross_origin_attribute_ == kUnspecified) {
188 options.crossOriginRequestPolicy = 190 options.crossOriginRequestPolicy =
189 WebURLLoaderOptions::CrossOriginRequestPolicyAllow; 191 WebURLLoaderOptions::CrossOriginRequestPolicyAllow;
192 } else {
193 options.crossOriginRequestPolicy =
194 WebURLLoaderOptions::CrossOriginRequestPolicyUseAccessControl;
195 if (cross_origin_attribute_ == kUseCredentials)
196 options.allowCredentials = true;
197 }
190 loader.reset(frame->createAssociatedURLLoader(options)); 198 loader.reset(frame->createAssociatedURLLoader(options));
191 } 199 }
192 200
193 // Start the resource loading. 201 // Start the resource loading.
194 loader->loadAsynchronously(request, this); 202 loader->loadAsynchronously(request, this);
195 active_loader_.reset(new ActiveLoader(loader.Pass())); 203 active_loader_.reset(new ActiveLoader(loader.Pass()));
196 } 204 }
197 205
198 void BufferedResourceLoader::Stop() { 206 void BufferedResourceLoader::Stop() {
199 // Reset callbacks. 207 // Reset callbacks.
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 844
837 void BufferedResourceLoader::Log() { 845 void BufferedResourceLoader::Log() {
838 media_log_->AddEvent( 846 media_log_->AddEvent(
839 media_log_->CreateBufferedExtentsChangedEvent( 847 media_log_->CreateBufferedExtentsChangedEvent(
840 offset_ - buffer_.backward_bytes(), 848 offset_ - buffer_.backward_bytes(),
841 offset_, 849 offset_,
842 offset_ + buffer_.forward_bytes())); 850 offset_ + buffer_.forward_bytes()));
843 } 851 }
844 852
845 } // namespace webkit_media 853 } // namespace webkit_media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698