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

Unified Diff: media/remoting/remote_renderer_impl.cc

Issue 2566223005: Media Remoting: Update remoting interstitial when status changes. (Closed)
Patch Set: Show unprocessed background image when exiting remoting. Created 4 years 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: media/remoting/remote_renderer_impl.cc
diff --git a/media/remoting/remote_renderer_impl.cc b/media/remoting/remote_renderer_impl.cc
index 77fac89d7e2830952d9dc85900584182d5786530..57a180ecb1161cf0aa27a5e1ce5f317c28ee4a10 100644
--- a/media/remoting/remote_renderer_impl.cc
+++ b/media/remoting/remote_renderer_impl.cc
@@ -36,14 +36,13 @@ RemoteRendererImpl::RemoteRendererImpl(
rpc_broker_(remoting_renderer_controller_->GetRpcBroker()),
rpc_handle_(remoting::RpcBroker::GetUniqueHandle()),
remote_renderer_handle_(remoting::kInvalidHandle),
- interstitial_ui_(video_renderer_sink,
- remoting_renderer_controller->pipeline_metadata()),
weak_factory_(this) {
VLOG(2) << __FUNCTION__;
// The constructor is running on the main thread.
- DCHECK(remoting_renderer_controller);
-
- UpdateInterstitial();
+ DCHECK(remoting_renderer_controller_);
+ remoting_renderer_controller_->SetShowInterstitialCallback(base::Bind(
+ &RemoteRendererImpl::RequestUpdateInterstitialOnMainThread,
+ media_task_runner_, weak_factory_.GetWeakPtr(), video_renderer_sink));
const remoting::RpcBroker::ReceiveMessageCallback receive_callback =
base::Bind(&RemoteRendererImpl::OnMessageReceivedOnMainThread,
@@ -555,10 +554,6 @@ void RemoteRendererImpl::OnFatalError(PipelineStatus error) {
if (state_ == STATE_ERROR)
return;
- main_task_runner_->PostTask(
- FROM_HERE, base::Bind(&RemoteRendererImpl::UpdateInterstitial,
- weak_factory_.GetWeakPtr()));
-
const State old_state = state_;
state_ = STATE_ERROR;
@@ -576,12 +571,28 @@ void RemoteRendererImpl::OnFatalError(PipelineStatus error) {
client_->OnError(error);
}
-void RemoteRendererImpl::UpdateInterstitial() {
- DCHECK(main_task_runner_->BelongsToCurrentThread());
+// static
+void RemoteRendererImpl::RequestUpdateInterstitialOnMainThread(
+ scoped_refptr<base::SingleThreadTaskRunner> media_task_runner,
+ base::WeakPtr<RemoteRendererImpl> remote_renderer_impl,
+ VideoRendererSink* video_renderer_sink,
+ const SkBitmap& background_image,
+ const gfx::Size& canvas_size,
+ RemotingInterstitialType interstitial_type) {
+ media_task_runner->PostTask(
+ FROM_HERE, base::Bind(&RemoteRendererImpl::UpdateInterstitial,
+ remote_renderer_impl, video_renderer_sink,
+ background_image, canvas_size, interstitial_type));
+}
- interstitial_ui_.ShowInterstitial(
- remoting_renderer_controller_->remoting_source()->state() ==
- RemotingSessionState::SESSION_STARTED);
+void RemoteRendererImpl::UpdateInterstitial(
+ VideoRendererSink* video_renderer_sink,
+ const SkBitmap& background_image,
+ const gfx::Size& canvas_size,
+ RemotingInterstitialType interstitial_type) {
+ DCHECK(media_task_runner_->BelongsToCurrentThread());
+ ShowRemotingInterstitial(video_renderer_sink, background_image, canvas_size,
+ interstitial_type);
}
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698