Chromium Code Reviews| Index: webkit/media/webmediaplayer_impl.cc |
| diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc |
| index f904e2575b5d1b91ab568652ea5edb2e571b1820..2a7ff6c22135020f2e6c0ca7e4cb878d0bbfd83b 100644 |
| --- a/webkit/media/webmediaplayer_impl.cc |
| +++ b/webkit/media/webmediaplayer_impl.cc |
| @@ -96,12 +96,10 @@ COMPILE_ASSERT_MATCHING_ENUM(UseCredentials); |
| #undef COMPILE_ASSERT_MATCHING_ENUM |
| #define BIND_TO_RENDER_LOOP(function) \ |
| - media::BindToLoop(main_loop_->message_loop_proxy(), base::Bind( \ |
| - function, AsWeakPtr())) |
| + media::BindToLoop(main_loop_, base::Bind(function, AsWeakPtr())) |
| #define BIND_TO_RENDER_LOOP_2(function, arg1, arg2) \ |
| - media::BindToLoop(main_loop_->message_loop_proxy(), base::Bind( \ |
| - function, AsWeakPtr(), arg1, arg2)) |
| + media::BindToLoop(main_loop_, base::Bind(function, AsWeakPtr(), arg1, arg2)) |
| static WebKit::WebTimeRanges ConvertToWebTimeRanges( |
| const media::Ranges<base::TimeDelta>& ranges) { |
| @@ -126,7 +124,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
| : frame_(frame), |
| network_state_(WebMediaPlayer::NetworkStateEmpty), |
| ready_state_(WebMediaPlayer::ReadyStateHaveNothing), |
| - main_loop_(MessageLoop::current()), |
| + main_loop_(base::MessageLoopProxy::current()), |
| filter_collection_(new media::FilterCollection()), |
| media_thread_("MediaPipeline"), |
| paused_(true), |
| @@ -135,7 +133,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
| pending_seek_(false), |
| pending_seek_seconds_(0.0f), |
| client_(client), |
| - proxy_(new WebMediaPlayerProxy(main_loop_->message_loop_proxy(), this)), |
| + proxy_(new WebMediaPlayerProxy(main_loop_, this)), |
| delegate_(delegate), |
| media_stream_client_(params.media_stream_client()), |
| media_log_(params.media_log()), |
| @@ -157,13 +155,13 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
| // collection happens in parallel with playing. |
| // |
| // TODO(enal): remove when we get rid of per-audio-stream thread. |
| - MessageLoop::current()->PostTask( |
| + main_loop_->PostTask( |
| FROM_HERE, |
| base::Bind(&WebMediaPlayerImpl::IncrementExternallyAllocatedMemory, |
| AsWeakPtr())); |
| // Also we want to be notified of |main_loop_| destruction. |
| - main_loop_->AddDestructionObserver(this); |
| + MessageLoop::current()->AddDestructionObserver(this); |
| media::SetDecryptorReadyCB set_decryptor_ready_cb; |
| if (WebKit::WebRuntimeFeatures::isEncryptedMediaEnabled()) { |
| @@ -209,7 +207,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
| } |
| WebMediaPlayerImpl::~WebMediaPlayerImpl() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| Destroy(); |
| media_log_->AddEvent( |
| media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_DESTROYED)); |
| @@ -217,11 +215,10 @@ WebMediaPlayerImpl::~WebMediaPlayerImpl() { |
| if (delegate_) |
| delegate_->PlayerGone(this); |
| - // Finally tell the |main_loop_| we don't want to be notified of destruction |
| - // event. |
| - if (main_loop_) { |
| - main_loop_->RemoveDestructionObserver(this); |
| - } |
| + // Remove descrution observer if we're being destroyed but the main thread is |
| + // still running. |
| + if (MessageLoop::current()) |
|
scherkus (not reviewing)
2013/03/01 00:44:01
this is NULL after WillDestroyCurrentMessageLoop()
|
| + MessageLoop::current()->RemoveDestructionObserver(this); |
| } |
| namespace { |
| @@ -259,7 +256,7 @@ URLSchemeForHistogram URLScheme(const GURL& url) { |
| } // anonymous namespace |
| void WebMediaPlayerImpl::load(const WebKit::WebURL& url, CORSMode cors_mode) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| GURL gurl(url); |
| UMA_HISTOGRAM_ENUMERATION("Media.URLScheme", URLScheme(gurl), kMaxURLScheme); |
| @@ -315,11 +312,11 @@ void WebMediaPlayerImpl::load(const WebKit::WebURL& url, CORSMode cors_mode) { |
| } |
| void WebMediaPlayerImpl::cancelLoad() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| } |
| void WebMediaPlayerImpl::play() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| paused_ = false; |
| pipeline_->SetPlaybackRate(playback_rate_); |
| @@ -331,7 +328,7 @@ void WebMediaPlayerImpl::play() { |
| } |
| void WebMediaPlayerImpl::pause() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| paused_ = true; |
| pipeline_->SetPlaybackRate(0.0f); |
| @@ -344,17 +341,17 @@ void WebMediaPlayerImpl::pause() { |
| } |
| bool WebMediaPlayerImpl::supportsFullscreen() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| return true; |
| } |
| bool WebMediaPlayerImpl::supportsSave() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| return supports_save_; |
| } |
| void WebMediaPlayerImpl::seek(float seconds) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| if (starting_ || seeking_) { |
| pending_seek_ = true; |
| @@ -384,14 +381,14 @@ void WebMediaPlayerImpl::seek(float seconds) { |
| } |
| void WebMediaPlayerImpl::setEndTime(float seconds) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| // TODO(hclam): add method call when it has been implemented. |
| return; |
| } |
| void WebMediaPlayerImpl::setRate(float rate) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| // TODO(kylep): Remove when support for negatives is added. Also, modify the |
| // following checks so rewind uses reasonable values also. |
| @@ -413,13 +410,13 @@ void WebMediaPlayerImpl::setRate(float rate) { |
| } |
| void WebMediaPlayerImpl::setVolume(float volume) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| pipeline_->SetVolume(volume); |
| } |
| void WebMediaPlayerImpl::setVisible(bool visible) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| // TODO(hclam): add appropriate method call when pipeline has it implemented. |
| return; |
| @@ -435,7 +432,7 @@ COMPILE_ASSERT_MATCHING_ENUM(PreloadAuto, AUTO); |
| #undef COMPILE_ASSERT_MATCHING_ENUM |
| void WebMediaPlayerImpl::setPreload(WebMediaPlayer::Preload preload) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| if (proxy_ && proxy_->data_source()) { |
| // XXX: Why do I need to use webkit_media:: prefix? clang complains! |
| @@ -445,25 +442,25 @@ void WebMediaPlayerImpl::setPreload(WebMediaPlayer::Preload preload) { |
| } |
| bool WebMediaPlayerImpl::totalBytesKnown() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| return pipeline_->GetTotalBytes() != 0; |
| } |
| bool WebMediaPlayerImpl::hasVideo() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| return pipeline_->HasVideo(); |
| } |
| bool WebMediaPlayerImpl::hasAudio() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| return pipeline_->HasAudio(); |
| } |
| WebKit::WebSize WebMediaPlayerImpl::naturalSize() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| gfx::Size size; |
| pipeline_->GetNaturalVideoSize(&size); |
| @@ -471,13 +468,13 @@ WebKit::WebSize WebMediaPlayerImpl::naturalSize() const { |
| } |
| bool WebMediaPlayerImpl::paused() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| return pipeline_->GetPlaybackRate() == 0.0f; |
| } |
| bool WebMediaPlayerImpl::seeking() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) |
| return false; |
| @@ -486,7 +483,7 @@ bool WebMediaPlayerImpl::seeking() const { |
| } |
| float WebMediaPlayerImpl::duration() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) |
| return std::numeric_limits<float>::quiet_NaN(); |
| @@ -515,31 +512,31 @@ float WebMediaPlayerImpl::duration() const { |
| } |
| float WebMediaPlayerImpl::currentTime() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| if (paused_) |
| return static_cast<float>(paused_time_.InSecondsF()); |
| return static_cast<float>(pipeline_->GetMediaTime().InSecondsF()); |
| } |
| int WebMediaPlayerImpl::dataRate() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| // TODO(hclam): Add this method call if pipeline has it in the interface. |
| return 0; |
| } |
| WebMediaPlayer::NetworkState WebMediaPlayerImpl::networkState() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| return network_state_; |
| } |
| WebMediaPlayer::ReadyState WebMediaPlayerImpl::readyState() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| return ready_state_; |
| } |
| const WebKit::WebTimeRanges& WebMediaPlayerImpl::buffered() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| WebKit::WebTimeRanges web_ranges( |
| ConvertToWebTimeRanges(pipeline_->GetBufferedTimeRanges())); |
| buffered_.swap(web_ranges); |
| @@ -547,7 +544,7 @@ const WebKit::WebTimeRanges& WebMediaPlayerImpl::buffered() { |
| } |
| float WebMediaPlayerImpl::maxTimeSeekable() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| // If we haven't even gotten to ReadyStateHaveMetadata yet then just |
| // return 0 so that the seekable range is empty. |
| @@ -561,18 +558,18 @@ float WebMediaPlayerImpl::maxTimeSeekable() const { |
| } |
| bool WebMediaPlayerImpl::didLoadingProgress() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| return pipeline_->DidLoadingProgress(); |
| } |
| unsigned long long WebMediaPlayerImpl::totalBytes() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| return pipeline_->GetTotalBytes(); |
| } |
| void WebMediaPlayerImpl::setSize(const WebSize& size) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| // Don't need to do anything as we use the dimensions passed in via paint(). |
| } |
| @@ -580,7 +577,7 @@ void WebMediaPlayerImpl::setSize(const WebSize& size) { |
| void WebMediaPlayerImpl::paint(WebCanvas* canvas, |
| const WebRect& rect, |
| uint8_t alpha) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| DCHECK(proxy_); |
| if (!accelerated_compositing_reported_) { |
| @@ -607,7 +604,7 @@ bool WebMediaPlayerImpl::didPassCORSAccessCheck() const { |
| } |
| WebMediaPlayer::MovieLoadType WebMediaPlayerImpl::movieLoadType() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| // Disable seeking while streaming. |
| if (proxy_ && proxy_->data_source() && proxy_->data_source()->IsStreaming()) |
| @@ -620,28 +617,28 @@ float WebMediaPlayerImpl::mediaTimeForTimeValue(float timeValue) const { |
| } |
| unsigned WebMediaPlayerImpl::decodedFrameCount() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| media::PipelineStatistics stats = pipeline_->GetStatistics(); |
| return stats.video_frames_decoded; |
| } |
| unsigned WebMediaPlayerImpl::droppedFrameCount() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| media::PipelineStatistics stats = pipeline_->GetStatistics(); |
| return stats.video_frames_dropped; |
| } |
| unsigned WebMediaPlayerImpl::audioDecodedByteCount() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| media::PipelineStatistics stats = pipeline_->GetStatistics(); |
| return stats.audio_bytes_decoded; |
| } |
| unsigned WebMediaPlayerImpl::videoDecodedByteCount() const { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| media::PipelineStatistics stats = pipeline_->GetStatistics(); |
| return stats.video_bytes_decoded; |
| @@ -678,7 +675,7 @@ WebMediaPlayer::AddIdStatus WebMediaPlayerImpl::sourceAddId( |
| const WebKit::WebString& id, |
| const WebKit::WebString& type, |
| const WebKit::WebVector<WebKit::WebString>& codecs) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| std::vector<std::string> new_codecs(codecs.size()); |
| for (size_t i = 0; i < codecs.size(); ++i) |
| new_codecs[i] = codecs[i].utf8().data(); |
| @@ -702,7 +699,7 @@ WebKit::WebTimeRanges WebMediaPlayerImpl::sourceBuffered( |
| bool WebMediaPlayerImpl::sourceAppend(const WebKit::WebString& id, |
| const unsigned char* data, |
| unsigned length) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| if (!chunk_demuxer_->AppendData(id.utf8().data(), data, length)) |
| return false; |
| @@ -722,7 +719,7 @@ void WebMediaPlayerImpl::sourceSetDuration(double new_duration) { |
| void WebMediaPlayerImpl::sourceEndOfStream( |
| WebMediaPlayer::EndOfStreamStatus status) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| media::PipelineStatus pipeline_status = media::PIPELINE_OK; |
| switch (status) { |
| @@ -894,16 +891,15 @@ WebMediaPlayerImpl::CancelKeyRequestInternal( |
| void WebMediaPlayerImpl::WillDestroyCurrentMessageLoop() { |
| Destroy(); |
| - main_loop_ = NULL; |
| } |
| void WebMediaPlayerImpl::Repaint() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| GetClient()->repaint(); |
| } |
| void WebMediaPlayerImpl::OnPipelineSeek(PipelineStatus status) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| starting_ = false; |
| seeking_ = false; |
| if (pending_seek_) { |
| @@ -925,12 +921,12 @@ void WebMediaPlayerImpl::OnPipelineSeek(PipelineStatus status) { |
| } |
| void WebMediaPlayerImpl::OnPipelineEnded() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| GetClient()->timeChanged(); |
| } |
| void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) { |
| // Any error that occurs before reaching ReadyStateHaveMetadata should |
| @@ -1009,13 +1005,13 @@ void WebMediaPlayerImpl::OnPipelineBufferingState( |
| } |
| void WebMediaPlayerImpl::OnDemuxerOpened() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| GetClient()->sourceOpened(); |
| } |
| void WebMediaPlayerImpl::OnKeyAdded(const std::string& key_system, |
| const std::string& session_id) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| base::Histogram::FactoryGet( |
| kMediaEme + KeySystemNameForUMA(key_system) + ".KeyAdded", |
| @@ -1031,7 +1027,7 @@ void WebMediaPlayerImpl::OnNeedKey(const std::string& key_system, |
| const std::string& type, |
| scoped_array<uint8> init_data, |
| int init_data_size) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| // Do not fire NeedKey event if encrypted media is not enabled. |
| if (!decryptor_) |
| @@ -1065,7 +1061,7 @@ void WebMediaPlayerImpl::OnKeyError(const std::string& key_system, |
| const std::string& session_id, |
| media::Decryptor::KeyError error_code, |
| int system_code) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| base::LinearHistogram::FactoryGet( |
| kMediaEme + KeySystemNameForUMA(key_system) + ".KeyError", 1, |
| @@ -1083,7 +1079,7 @@ void WebMediaPlayerImpl::OnKeyMessage(const std::string& key_system, |
| const std::string& session_id, |
| const std::string& message, |
| const std::string& default_url) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| const GURL default_url_gurl(default_url); |
| DLOG_IF(WARNING, !default_url.empty() && !default_url_gurl.is_valid()) |
| @@ -1097,13 +1093,13 @@ void WebMediaPlayerImpl::OnKeyMessage(const std::string& key_system, |
| } |
| void WebMediaPlayerImpl::SetOpaque(bool opaque) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| GetClient()->setOpaque(opaque); |
| } |
| void WebMediaPlayerImpl::DataSourceInitialized(const GURL& gurl, bool success) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| if (!success) { |
| SetNetworkState(WebMediaPlayer::NetworkStateFormatError); |
| @@ -1137,7 +1133,7 @@ void WebMediaPlayerImpl::StartPipeline() { |
| } |
| void WebMediaPlayerImpl::SetNetworkState(WebMediaPlayer::NetworkState state) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| DVLOG(1) << "SetNetworkState: " << state; |
| network_state_ = state; |
| // Always notify to ensure client has the latest value. |
| @@ -1145,7 +1141,7 @@ void WebMediaPlayerImpl::SetNetworkState(WebMediaPlayer::NetworkState state) { |
| } |
| void WebMediaPlayerImpl::SetReadyState(WebMediaPlayer::ReadyState state) { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| DVLOG(1) << "SetReadyState: " << state; |
| if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing && |
| @@ -1165,7 +1161,7 @@ void WebMediaPlayerImpl::SetReadyState(WebMediaPlayer::ReadyState state) { |
| } |
| void WebMediaPlayerImpl::Destroy() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| // Tell the data source to abort any pending reads so that the pipeline is |
| // not blocked when issuing stop commands to the other filters. |
| @@ -1201,7 +1197,7 @@ void WebMediaPlayerImpl::Destroy() { |
| } |
| WebKit::WebMediaPlayerClient* WebMediaPlayerImpl::GetClient() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| DCHECK(client_); |
| return client_; |
| } |
| @@ -1211,7 +1207,7 @@ WebKit::WebAudioSourceProvider* WebMediaPlayerImpl::audioSourceProvider() { |
| } |
| void WebMediaPlayerImpl::IncrementExternallyAllocatedMemory() { |
| - DCHECK_EQ(main_loop_, MessageLoop::current()); |
| + DCHECK(main_loop_->BelongsToCurrentThread()); |
| incremented_externally_allocated_memory_ = true; |
| v8::V8::AdjustAmountOfExternalAllocatedMemory(kPlayerExtraMemory); |
| } |