Index: webkit/media/webmediaplayer_impl.cc |
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc |
index 3120d9cf2f0a194ced15a2fd26b6175aee00cda4..bc7631d1b12b6e0945a768151271c09f10a2010b 100644 |
--- a/webkit/media/webmediaplayer_impl.cc |
+++ b/webkit/media/webmediaplayer_impl.cc |
@@ -44,7 +44,6 @@ using WebKit::WebMediaPlayer; |
using WebKit::WebRect; |
using WebKit::WebSize; |
using WebKit::WebString; |
-using media::NetworkEvent; |
using media::PipelineStatus; |
namespace { |
@@ -244,7 +243,9 @@ void WebMediaPlayerImpl::load(const WebKit::WebURL& url, CORSMode cors_mode) { |
// Otherwise it's a regular request which requires resolving the URL first. |
proxy_->set_data_source( |
- new BufferedDataSource(main_loop_, frame_, media_log_)); |
+ new BufferedDataSource(main_loop_, frame_, media_log_, |
+ base::Bind(&WebMediaPlayerImpl::NotifyDownloading, |
+ base::Unretained(this)))); |
proxy_->data_source()->Initialize( |
url, static_cast<BufferedResourceLoader::CORSMode>(cors_mode), |
base::Bind( |
@@ -458,10 +459,12 @@ int WebMediaPlayerImpl::dataRate() const { |
} |
WebMediaPlayer::NetworkState WebMediaPlayerImpl::networkState() const { |
+ DCHECK_EQ(main_loop_, MessageLoop::current()); |
return network_state_; |
} |
WebMediaPlayer::ReadyState WebMediaPlayerImpl::readyState() const { |
+ DCHECK_EQ(main_loop_, MessageLoop::current()); |
return ready_state_; |
} |
@@ -917,26 +920,6 @@ void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) { |
Repaint(); |
} |
-void WebMediaPlayerImpl::OnNetworkEvent(NetworkEvent type) { |
- DCHECK_EQ(main_loop_, MessageLoop::current()); |
- switch(type) { |
- case media::DOWNLOAD_CONTINUED: |
- SetNetworkState(WebMediaPlayer::NetworkStateLoading); |
- break; |
- case media::DOWNLOAD_PAUSED: |
- SetNetworkState(WebMediaPlayer::NetworkStateIdle); |
- break; |
- case media::CAN_PLAY_THROUGH: |
- // Temporarily disable delayed firing of CAN_PLAY_THROUGH due to |
- // crbug.com/106480. |
- // TODO(vrk): uncomment code below when bug above is fixed. |
- // SetReadyState(WebMediaPlayer::NetworkStateHaveEnoughData); |
- break; |
- default: |
- NOTREACHED(); |
- } |
-} |
- |
void WebMediaPlayerImpl::OnDemuxerOpened() { |
DCHECK_EQ(main_loop_, MessageLoop::current()); |
@@ -971,13 +954,23 @@ void WebMediaPlayerImpl::DataSourceInitialized( |
StartPipeline(); |
} |
+void WebMediaPlayerImpl::NotifyDownloading(bool is_downloading) { |
+ if (!is_downloading && network_state_ == WebMediaPlayer::NetworkStateLoading) |
+ SetNetworkState(WebMediaPlayer::NetworkStateIdle); |
+ else if (is_downloading && network_state_ == WebMediaPlayer::NetworkStateIdle) |
+ SetNetworkState(WebMediaPlayer::NetworkStateLoading); |
+ media_log_->AddEvent( |
+ media_log_->CreateBooleanEvent( |
+ media::MediaLogEvent::NETWORK_ACTIVITY_SET, |
+ "is_downloading_data", is_downloading)); |
+} |
+ |
void WebMediaPlayerImpl::StartPipeline() { |
started_ = true; |
pipeline_->Start( |
filter_collection_.Pass(), |
base::Bind(&WebMediaPlayerProxy::PipelineEndedCallback, proxy_.get()), |
base::Bind(&WebMediaPlayerProxy::PipelineErrorCallback, proxy_.get()), |
- base::Bind(&WebMediaPlayerProxy::NetworkEventCallback, proxy_.get()), |
base::Bind(&WebMediaPlayerProxy::PipelineInitializationCallback, |
proxy_.get())); |
} |