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

Unified Diff: webkit/renderer/media/webmediaplayer_impl.cc

Issue 18123002: Migrate webkit/renderer/media/ to content/renderer/media/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase on mo time Created 7 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 side-by-side diff with in-line comments
Download patch
Index: webkit/renderer/media/webmediaplayer_impl.cc
diff --git a/webkit/renderer/media/webmediaplayer_impl.cc b/webkit/renderer/media/webmediaplayer_impl.cc
index 08fa5dad340ae2a6df85b8fe78b827cbccd2faf1..30ba639eb992e9dba5ccb9e72975ddaa0f66b236 100644
--- a/webkit/renderer/media/webmediaplayer_impl.cc
+++ b/webkit/renderer/media/webmediaplayer_impl.cc
@@ -139,6 +139,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
pending_seek_seconds_(0.0f),
client_(client),
delegate_(delegate),
+ defer_load_cb_(params.defer_load_cb()),
media_log_(params.media_log()),
accelerated_compositing_reported_(false),
incremented_externally_allocated_memory_(false),
@@ -242,37 +243,26 @@ URLSchemeForHistogram URLScheme(const GURL& url) {
} // anonymous namespace
void WebMediaPlayerImpl::load(const WebKit::WebURL& url, CORSMode cors_mode) {
- DCHECK(main_loop_->BelongsToCurrentThread());
-
- LoadSetup(url);
-
- // Otherwise it's a regular request which requires resolving the URL first.
- GURL gurl(url);
- data_source_.reset(new BufferedDataSource(
- main_loop_,
- frame_,
- media_log_.get(),
- base::Bind(&WebMediaPlayerImpl::NotifyDownloading, AsWeakPtr())));
- data_source_->Initialize(
- url, static_cast<BufferedResourceLoader::CORSMode>(cors_mode),
- base::Bind(
- &WebMediaPlayerImpl::DataSourceInitialized,
- AsWeakPtr(), gurl));
-
- is_local_source_ = !gurl.SchemeIs("http") && !gurl.SchemeIs("https");
+ load(url, NULL, cors_mode);
}
void WebMediaPlayerImpl::load(const WebKit::WebURL& url,
WebKit::WebMediaSource* media_source,
CORSMode cors_mode) {
- LoadSetup(url);
-
- // Media source pipelines can start immediately.
- supports_save_ = false;
- StartPipeline(media_source);
+ if (!defer_load_cb_.is_null()) {
+ defer_load_cb_.Run(base::Bind(
+ &WebMediaPlayerImpl::DoLoad, AsWeakPtr(), url, media_source,
+ cors_mode));
+ return;
+ }
+ DoLoad(url, media_source, cors_mode);
}
-void WebMediaPlayerImpl::LoadSetup(const WebKit::WebURL& url) {
+void WebMediaPlayerImpl::DoLoad(const WebKit::WebURL& url,
+ WebKit::WebMediaSource* media_source,
+ CORSMode cors_mode) {
+ DCHECK(main_loop_->BelongsToCurrentThread());
+
GURL gurl(url);
UMA_HISTOGRAM_ENUMERATION("Media.URLScheme", URLScheme(gurl), kMaxURLScheme);
@@ -286,6 +276,27 @@ void WebMediaPlayerImpl::LoadSetup(const WebKit::WebURL& url) {
SetNetworkState(WebMediaPlayer::NetworkStateLoading);
SetReadyState(WebMediaPlayer::ReadyStateHaveNothing);
media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec()));
+
+ // Media source pipelines can start immediately.
+ if (media_source) {
+ supports_save_ = false;
+ StartPipeline(media_source);
+ return;
+ }
+
+ // Otherwise it's a regular request which requires resolving the URL first.
+ data_source_.reset(new BufferedDataSource(
+ main_loop_,
+ frame_,
+ media_log_.get(),
+ base::Bind(&WebMediaPlayerImpl::NotifyDownloading, AsWeakPtr())));
+ data_source_->Initialize(
+ url, static_cast<BufferedResourceLoader::CORSMode>(cors_mode),
+ base::Bind(
+ &WebMediaPlayerImpl::DataSourceInitialized,
+ AsWeakPtr(), gurl));
+
+ is_local_source_ = !gurl.SchemeIs("http") && !gurl.SchemeIs("https");
}
void WebMediaPlayerImpl::play() {

Powered by Google App Engine
This is Rietveld 408576698