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

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: trim things down 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 65fd073d3619dc666c8ea2e2766e1f9cc57bf091..aac0120a5d6cd9429c9dd6b889f61f6f46ca8b4a 100644
--- a/webkit/renderer/media/webmediaplayer_impl.cc
+++ b/webkit/renderer/media/webmediaplayer_impl.cc
@@ -47,6 +47,7 @@
#include "webkit/renderer/compositor_bindings/web_layer_impl.h"
#include "webkit/renderer/media/buffered_data_source.h"
#include "webkit/renderer/media/crypto/key_systems.h"
+#include "webkit/renderer/media/media_load_delegate.h"
#include "webkit/renderer/media/texttrack_impl.h"
#include "webkit/renderer/media/webaudiosourceprovider_impl.h"
#include "webkit/renderer/media/webinbandtexttrack_impl.h"
@@ -139,6 +140,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
pending_seek_seconds_(0.0f),
client_(client),
delegate_(delegate),
+ load_delegate_(params.load_delegate()),
media_log_(params.media_log()),
accelerated_compositing_reported_(false),
incremented_externally_allocated_memory_(false),
@@ -242,37 +244,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);
ddorwin 2013/06/29 01:38:30 overloading not allowed?
scherkus (not reviewing) 2013/07/02 01:46:23 this is an interface defined in WK AFAIK it's OK
}
void WebMediaPlayerImpl::load(const WebKit::WebURL& url,
WebKit::WebMediaSource* media_source,
ddorwin 2013/06/29 01:38:30 nit: Should be last parameter? (Fine to change lat
scherkus (not reviewing) 2013/07/02 01:46:23 ditto
CORSMode cors_mode) {
- LoadSetup(url);
-
- // Media source pipelines can start immediately.
- supports_save_ = false;
- StartPipeline(media_source);
+ if (load_delegate_) {
+ load_delegate_->DeferLoad(base::Bind(
+ &WebMediaPlayerImpl::ContinueLoad, AsWeakPtr(), url, media_source,
+ cors_mode));
+ return;
+ }
+ ContinueLoad(url, media_source, cors_mode);
}
-void WebMediaPlayerImpl::LoadSetup(const WebKit::WebURL& url) {
+void WebMediaPlayerImpl::ContinueLoad(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 +277,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