| Index: media/remoting/renderer_controller.cc | 
| diff --git a/media/remoting/remoting_renderer_controller.cc b/media/remoting/renderer_controller.cc | 
| similarity index 63% | 
| rename from media/remoting/remoting_renderer_controller.cc | 
| rename to media/remoting/renderer_controller.cc | 
| index 515e08298ccd8e502f3be587800605d144722036..03f862de0a7ff73170698fea6fbf87388878228b 100644 | 
| --- a/media/remoting/remoting_renderer_controller.cc | 
| +++ b/media/remoting/renderer_controller.cc | 
| @@ -2,29 +2,30 @@ | 
| // Use of this source code is governed by a BSD-style license that can be | 
| // found in the LICENSE file. | 
|  | 
| -#include "media/remoting/remoting_renderer_controller.h" | 
| +#include "media/remoting/renderer_controller.h" | 
|  | 
| #include "base/bind.h" | 
| #include "base/logging.h" | 
| #include "base/threading/thread_checker.h" | 
| #include "base/time/time.h" | 
| +#include "media/remoting/remoting_cdm.h" | 
| #include "media/remoting/remoting_cdm_context.h" | 
|  | 
| namespace media { | 
| +namespace remoting { | 
|  | 
| -RemotingRendererController::RemotingRendererController( | 
| -    scoped_refptr<RemotingSourceImpl> remoting_source) | 
| -    : remoting_source_(remoting_source), weak_factory_(this) { | 
| -  remoting_source_->AddClient(this); | 
| +RendererController::RendererController(scoped_refptr<SharedSession> session) | 
| +    : session_(std::move(session)), weak_factory_(this) { | 
| +  session_->AddClient(this); | 
| } | 
|  | 
| -RemotingRendererController::~RemotingRendererController() { | 
| +RendererController::~RendererController() { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
| -  metrics_recorder_.WillStopSession(remoting::MEDIA_ELEMENT_DESTROYED); | 
| -  remoting_source_->RemoveClient(this); | 
| +  metrics_recorder_.WillStopSession(MEDIA_ELEMENT_DESTROYED); | 
| +  session_->RemoveClient(this); | 
| } | 
|  | 
| -void RemotingRendererController::OnStarted(bool success) { | 
| +void RendererController::OnStarted(bool success) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| if (success) { | 
| @@ -34,24 +35,23 @@ void RemotingRendererController::OnStarted(bool success) { | 
| DCHECK(!switch_renderer_cb_.is_null()); | 
| switch_renderer_cb_.Run(); | 
| } else { | 
| -      remoting_source_->StopRemoting(this); | 
| +      session_->StopRemoting(this); | 
| } | 
| } else { | 
| VLOG(1) << "Failed to start remoting."; | 
| remote_rendering_started_ = false; | 
| -    metrics_recorder_.WillStopSession(remoting::START_RACE); | 
| +    metrics_recorder_.WillStopSession(START_RACE); | 
| } | 
| } | 
|  | 
| -void RemotingRendererController::OnSessionStateChanged() { | 
| +void RendererController::OnSessionStateChanged() { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
| -  UpdateFromSessionState(remoting::SINK_AVAILABLE, remoting::ROUTE_TERMINATED); | 
| +  UpdateFromSessionState(SINK_AVAILABLE, ROUTE_TERMINATED); | 
| } | 
|  | 
| -void RemotingRendererController::UpdateFromSessionState( | 
| -    remoting::StartTrigger start_trigger, | 
| -    remoting::StopTrigger stop_trigger) { | 
| -  VLOG(1) << "UpdateFromSessionState: " << remoting_source_->state(); | 
| +void RendererController::UpdateFromSessionState(StartTrigger start_trigger, | 
| +                                                StopTrigger stop_trigger) { | 
| +  VLOG(1) << "UpdateFromSessionState: " << session_->state(); | 
| if (!sink_available_changed_cb_.is_null()) | 
| sink_available_changed_cb_.Run(IsRemoteSinkAvailable()); | 
|  | 
| @@ -59,45 +59,43 @@ void RemotingRendererController::UpdateFromSessionState( | 
| UpdateAndMaybeSwitch(start_trigger, stop_trigger); | 
| } | 
|  | 
| -bool RemotingRendererController::IsRemoteSinkAvailable() { | 
| +bool RendererController::IsRemoteSinkAvailable() { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| -  switch (remoting_source_->state()) { | 
| -    case SESSION_CAN_START: | 
| -    case SESSION_STARTING: | 
| -    case SESSION_STARTED: | 
| +  switch (session_->state()) { | 
| +    case SharedSession::SESSION_CAN_START: | 
| +    case SharedSession::SESSION_STARTING: | 
| +    case SharedSession::SESSION_STARTED: | 
| return true; | 
| -    case SESSION_UNAVAILABLE: | 
| -    case SESSION_STOPPING: | 
| -    case SESSION_PERMANENTLY_STOPPED: | 
| +    case SharedSession::SESSION_UNAVAILABLE: | 
| +    case SharedSession::SESSION_STOPPING: | 
| +    case SharedSession::SESSION_PERMANENTLY_STOPPED: | 
| return false; | 
| } | 
|  | 
| -  return false;  // To suppress compile warning. | 
| +  NOTREACHED(); | 
| +  return false;  // To suppress compiler warning on Windows. | 
| } | 
|  | 
| -void RemotingRendererController::OnEnteredFullscreen() { | 
| +void RendererController::OnEnteredFullscreen() { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| is_fullscreen_ = true; | 
| // See notes in OnBecameDominantVisibleContent() for why this is forced: | 
| is_dominant_content_ = true; | 
| -  UpdateAndMaybeSwitch(remoting::ENTERED_FULLSCREEN, | 
| -                       remoting::UNKNOWN_STOP_TRIGGER); | 
| +  UpdateAndMaybeSwitch(ENTERED_FULLSCREEN, UNKNOWN_STOP_TRIGGER); | 
| } | 
|  | 
| -void RemotingRendererController::OnExitedFullscreen() { | 
| +void RendererController::OnExitedFullscreen() { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| is_fullscreen_ = false; | 
| // See notes in OnBecameDominantVisibleContent() for why this is forced: | 
| is_dominant_content_ = false; | 
| -  UpdateAndMaybeSwitch(remoting::UNKNOWN_START_TRIGGER, | 
| -                       remoting::EXITED_FULLSCREEN); | 
| +  UpdateAndMaybeSwitch(UNKNOWN_START_TRIGGER, EXITED_FULLSCREEN); | 
| } | 
|  | 
| -void RemotingRendererController::OnBecameDominantVisibleContent( | 
| -    bool is_dominant) { | 
| +void RendererController::OnBecameDominantVisibleContent(bool is_dominant) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| // Two scenarios where "dominance" status mixes with fullscreen transitions: | 
| @@ -117,32 +115,31 @@ void RemotingRendererController::OnBecameDominantVisibleContent( | 
| return; | 
|  | 
| is_dominant_content_ = is_dominant; | 
| -  UpdateAndMaybeSwitch(remoting::BECAME_DOMINANT_CONTENT, | 
| -                       remoting::BECAME_AUXILIARY_CONTENT); | 
| +  UpdateAndMaybeSwitch(BECAME_DOMINANT_CONTENT, BECAME_AUXILIARY_CONTENT); | 
| } | 
|  | 
| -void RemotingRendererController::OnSetCdm(CdmContext* cdm_context) { | 
| +void RendererController::OnSetCdm(CdmContext* cdm_context) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| auto* remoting_cdm_context = RemotingCdmContext::From(cdm_context); | 
| if (!remoting_cdm_context) | 
| return; | 
|  | 
| -  remoting_source_->RemoveClient(this); | 
| -  remoting_source_ = remoting_cdm_context->GetRemotingSource(); | 
| -  remoting_source_->AddClient(this); | 
| -  UpdateFromSessionState(remoting::CDM_READY, remoting::DECRYPTION_ERROR); | 
| +  session_->RemoveClient(this); | 
| +  session_ = remoting_cdm_context->GetSharedSession(); | 
| +  session_->AddClient(this); | 
| +  UpdateFromSessionState(CDM_READY, DECRYPTION_ERROR); | 
| } | 
|  | 
| -void RemotingRendererController::OnRemotePlaybackDisabled(bool disabled) { | 
| +void RendererController::OnRemotePlaybackDisabled(bool disabled) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| is_remote_playback_disabled_ = disabled; | 
| metrics_recorder_.OnRemotePlaybackDisabled(disabled); | 
| -  UpdateAndMaybeSwitch(remoting::ENABLED_BY_PAGE, remoting::DISABLED_BY_PAGE); | 
| +  UpdateAndMaybeSwitch(ENABLED_BY_PAGE, DISABLED_BY_PAGE); | 
| } | 
|  | 
| -void RemotingRendererController::OnSetPoster(const GURL& poster_url) { | 
| +void RendererController::OnSetPoster(const GURL& poster_url) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| if (poster_url != poster_url_) { | 
| @@ -154,19 +151,18 @@ void RemotingRendererController::OnSetPoster(const GURL& poster_url) { | 
| } | 
| } | 
|  | 
| -void RemotingRendererController::SetSwitchRendererCallback( | 
| -    const base::Closure& cb) { | 
| +void RendererController::SetSwitchRendererCallback(const base::Closure& cb) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
| DCHECK(!cb.is_null()); | 
|  | 
| switch_renderer_cb_ = cb; | 
| // Note: Not calling UpdateAndMaybeSwitch() here since this method should be | 
| -  // called during the initialization phase of this RemotingRendererController; | 
| +  // called during the initialization phase of this RendererController; | 
| // and definitely before a whole lot of other things that are needed to | 
| // trigger a switch. | 
| } | 
|  | 
| -void RemotingRendererController::SetRemoteSinkAvailableChangedCallback( | 
| +void RendererController::SetRemoteSinkAvailableChangedCallback( | 
| const base::Callback<void(bool)>& cb) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| @@ -175,25 +171,23 @@ void RemotingRendererController::SetRemoteSinkAvailableChangedCallback( | 
| sink_available_changed_cb_.Run(IsRemoteSinkAvailable()); | 
| } | 
|  | 
| -base::WeakPtr<remoting::RpcBroker> RemotingRendererController::GetRpcBroker() | 
| -    const { | 
| +base::WeakPtr<RpcBroker> RendererController::GetRpcBroker() const { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| -  return remoting_source_->GetRpcBroker()->GetWeakPtr(); | 
| +  return session_->rpc_broker()->GetWeakPtr(); | 
| } | 
|  | 
| -void RemotingRendererController::StartDataPipe( | 
| +void RendererController::StartDataPipe( | 
| std::unique_ptr<mojo::DataPipe> audio_data_pipe, | 
| std::unique_ptr<mojo::DataPipe> video_data_pipe, | 
| -    const RemotingSourceImpl::DataPipeStartCallback& done_callback) { | 
| +    const SharedSession::DataPipeStartCallback& done_callback) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| -  remoting_source_->StartDataPipe(std::move(audio_data_pipe), | 
| -                                  std::move(video_data_pipe), done_callback); | 
| +  session_->StartDataPipe(std::move(audio_data_pipe), | 
| +                          std::move(video_data_pipe), done_callback); | 
| } | 
|  | 
| -void RemotingRendererController::OnMetadataChanged( | 
| -    const PipelineMetadata& metadata) { | 
| +void RendererController::OnMetadataChanged(const PipelineMetadata& metadata) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| const gfx::Size old_size = pipeline_metadata_.natural_size; | 
| @@ -213,26 +207,26 @@ void RemotingRendererController::OnMetadataChanged( | 
| if (pipeline_metadata_.natural_size != old_size) | 
| UpdateInterstitial(base::nullopt); | 
|  | 
| -  remoting::StartTrigger start_trigger = remoting::UNKNOWN_START_TRIGGER; | 
| +  StartTrigger start_trigger = UNKNOWN_START_TRIGGER; | 
| if (!was_audio_codec_supported && is_audio_codec_supported) | 
| -    start_trigger = remoting::SUPPORTED_AUDIO_CODEC; | 
| +    start_trigger = SUPPORTED_AUDIO_CODEC; | 
| if (!was_video_codec_supported && is_video_codec_supported) { | 
| -    start_trigger = start_trigger == remoting::SUPPORTED_AUDIO_CODEC | 
| -                        ? remoting::SUPPORTED_AUDIO_AND_VIDEO_CODECS | 
| -                        : remoting::SUPPORTED_VIDEO_CODEC; | 
| +    start_trigger = start_trigger == SUPPORTED_AUDIO_CODEC | 
| +                        ? SUPPORTED_AUDIO_AND_VIDEO_CODECS | 
| +                        : SUPPORTED_VIDEO_CODEC; | 
| } | 
| -  remoting::StopTrigger stop_trigger = remoting::UNKNOWN_STOP_TRIGGER; | 
| +  StopTrigger stop_trigger = UNKNOWN_STOP_TRIGGER; | 
| if (was_audio_codec_supported && !is_audio_codec_supported) | 
| -    stop_trigger = remoting::UNSUPPORTED_AUDIO_CODEC; | 
| +    stop_trigger = UNSUPPORTED_AUDIO_CODEC; | 
| if (was_video_codec_supported && !is_video_codec_supported) { | 
| -    stop_trigger = stop_trigger == remoting::UNSUPPORTED_AUDIO_CODEC | 
| -                       ? remoting::UNSUPPORTED_AUDIO_AND_VIDEO_CODECS | 
| -                       : remoting::UNSUPPORTED_VIDEO_CODEC; | 
| +    stop_trigger = stop_trigger == UNSUPPORTED_AUDIO_CODEC | 
| +                       ? UNSUPPORTED_AUDIO_AND_VIDEO_CODECS | 
| +                       : UNSUPPORTED_VIDEO_CODEC; | 
| } | 
| UpdateAndMaybeSwitch(start_trigger, stop_trigger); | 
| } | 
|  | 
| -bool RemotingRendererController::IsVideoCodecSupported() { | 
| +bool RendererController::IsVideoCodecSupported() { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
| DCHECK(has_video()); | 
|  | 
| @@ -247,7 +241,7 @@ bool RemotingRendererController::IsVideoCodecSupported() { | 
| } | 
| } | 
|  | 
| -bool RemotingRendererController::IsAudioCodecSupported() { | 
| +bool RendererController::IsAudioCodecSupported() { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
| DCHECK(has_audio()); | 
|  | 
| @@ -276,59 +270,59 @@ bool RemotingRendererController::IsAudioCodecSupported() { | 
| } | 
| } | 
|  | 
| -void RemotingRendererController::OnPlaying() { | 
| +void RendererController::OnPlaying() { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| is_paused_ = false; | 
| -  UpdateAndMaybeSwitch(remoting::PLAY_COMMAND, remoting::UNKNOWN_STOP_TRIGGER); | 
| +  UpdateAndMaybeSwitch(PLAY_COMMAND, UNKNOWN_STOP_TRIGGER); | 
| } | 
|  | 
| -void RemotingRendererController::OnPaused() { | 
| +void RendererController::OnPaused() { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| is_paused_ = true; | 
| } | 
|  | 
| -bool RemotingRendererController::ShouldBeRemoting() { | 
| +bool RendererController::ShouldBeRemoting() { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| if (switch_renderer_cb_.is_null()) { | 
| DCHECK(!remote_rendering_started_); | 
| -    return false;  // No way to switch to a RemotingRenderImpl. | 
| +    return false;  // No way to switch to the remoting renderer. | 
| } | 
|  | 
| -  const RemotingSessionState state = remoting_source_->state(); | 
| +  const SharedSession::SessionState state = session_->state(); | 
| if (is_encrypted_) { | 
| // Due to technical limitations when playing encrypted content, once a | 
| // remoting session has been started, always return true here to indicate | 
| -    // that the RemotingRendererImpl should be used. In the stopped states, | 
| -    // RemotingRendererImpl will display an interstitial to notify the user that | 
| -    // local rendering cannot be resumed. | 
| +    // that the CourierRenderer should continue to be used. In the stopped | 
| +    // states, CourierRenderer will display an interstitial to notify the user | 
| +    // that local rendering cannot be resumed. | 
| // | 
| // TODO(miu): Revisit this once more of the encrypted-remoting impl is | 
| // in-place. For example, this will prevent metrics from recording session | 
| // stop reasons. | 
| -    return state == RemotingSessionState::SESSION_STARTED || | 
| -           state == RemotingSessionState::SESSION_STOPPING || | 
| -           state == RemotingSessionState::SESSION_PERMANENTLY_STOPPED; | 
| +    return state == SharedSession::SESSION_STARTED || | 
| +           state == SharedSession::SESSION_STOPPING || | 
| +           state == SharedSession::SESSION_PERMANENTLY_STOPPED; | 
| } | 
|  | 
| if (encountered_renderer_fatal_error_) | 
| return false; | 
|  | 
| switch (state) { | 
| -    case SESSION_UNAVAILABLE: | 
| +    case SharedSession::SESSION_UNAVAILABLE: | 
| return false;  // Cannot remote media without a remote sink. | 
| -    case SESSION_CAN_START: | 
| -    case SESSION_STARTING: | 
| -    case SESSION_STARTED: | 
| +    case SharedSession::SESSION_CAN_START: | 
| +    case SharedSession::SESSION_STARTING: | 
| +    case SharedSession::SESSION_STARTED: | 
| break;  // Media remoting is possible, assuming other requirments are met. | 
| -    case SESSION_STOPPING: | 
| -    case SESSION_PERMANENTLY_STOPPED: | 
| +    case SharedSession::SESSION_STOPPING: | 
| +    case SharedSession::SESSION_PERMANENTLY_STOPPED: | 
| return false;  // Use local rendering after stopping remoting. | 
| } | 
|  | 
| -  switch (remoting_source_->sink_capabilities()) { | 
| +  switch (session_->sink_capabilities()) { | 
| case mojom::RemotingSinkCapabilities::NONE: | 
| return false; | 
| case mojom::RemotingSinkCapabilities::RENDERING_ONLY: | 
| @@ -351,9 +345,8 @@ bool RemotingRendererController::ShouldBeRemoting() { | 
| return is_fullscreen_ || is_dominant_content_; | 
| } | 
|  | 
| -void RemotingRendererController::UpdateAndMaybeSwitch( | 
| -    remoting::StartTrigger start_trigger, | 
| -    remoting::StopTrigger stop_trigger) { | 
| +void RendererController::UpdateAndMaybeSwitch(StartTrigger start_trigger, | 
| +                                              StopTrigger stop_trigger) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| bool should_be_remoting = ShouldBeRemoting(); | 
| @@ -374,30 +367,29 @@ void RemotingRendererController::UpdateAndMaybeSwitch( | 
|  | 
| if (remote_rendering_started_) { | 
| DCHECK(!switch_renderer_cb_.is_null()); | 
| -    if (remoting_source_->state() == | 
| -        RemotingSessionState::SESSION_PERMANENTLY_STOPPED) { | 
| +    if (session_->state() == SharedSession::SESSION_PERMANENTLY_STOPPED) { | 
| switch_renderer_cb_.Run(); | 
| return; | 
| } | 
| -    DCHECK_NE(start_trigger, remoting::UNKNOWN_START_TRIGGER); | 
| +    DCHECK_NE(start_trigger, UNKNOWN_START_TRIGGER); | 
| metrics_recorder_.WillStartSession(start_trigger); | 
| // |switch_renderer_cb_.Run()| will be called after remoting is started | 
| // successfully. | 
| -    remoting_source_->StartRemoting(this); | 
| +    session_->StartRemoting(this); | 
| } else { | 
| // For encrypted content, it's only valid to switch to remoting renderer, | 
| // and never back to the local renderer. The RemotingCdmController will | 
| // force-stop the session when remoting has ended; so no need to call | 
| // StopRemoting() from here. | 
| DCHECK(!is_encrypted_); | 
| -    DCHECK_NE(stop_trigger, remoting::UNKNOWN_STOP_TRIGGER); | 
| +    DCHECK_NE(stop_trigger, UNKNOWN_STOP_TRIGGER); | 
| metrics_recorder_.WillStopSession(stop_trigger); | 
| switch_renderer_cb_.Run(); | 
| -    remoting_source_->StopRemoting(this); | 
| +    session_->StopRemoting(this); | 
| } | 
| } | 
|  | 
| -void RemotingRendererController::SetShowInterstitialCallback( | 
| +void RendererController::SetShowInterstitialCallback( | 
| const ShowInterstitialCallback& cb) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
| show_interstitial_cb_ = cb; | 
| @@ -406,7 +398,7 @@ void RemotingRendererController::SetShowInterstitialCallback( | 
| DownloadPosterImage(); | 
| } | 
|  | 
| -void RemotingRendererController::SetDownloadPosterCallback( | 
| +void RendererController::SetDownloadPosterCallback( | 
| const DownloadPosterCallback& cb) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
| DCHECK(download_poster_cb_.is_null()); | 
| @@ -415,32 +407,32 @@ void RemotingRendererController::SetDownloadPosterCallback( | 
| DownloadPosterImage(); | 
| } | 
|  | 
| -void RemotingRendererController::UpdateInterstitial( | 
| +void RendererController::UpdateInterstitial( | 
| const base::Optional<SkBitmap>& image) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
| if (show_interstitial_cb_.is_null() || | 
| pipeline_metadata_.natural_size.IsEmpty()) | 
| return; | 
|  | 
| -  RemotingInterstitialType type = RemotingInterstitialType::BETWEEN_SESSIONS; | 
| -  switch (remoting_source_->state()) { | 
| -    case SESSION_STARTED: | 
| -      type = RemotingInterstitialType::IN_SESSION; | 
| +  InterstitialType type = InterstitialType::BETWEEN_SESSIONS; | 
| +  switch (session_->state()) { | 
| +    case SharedSession::SESSION_STARTED: | 
| +      type = InterstitialType::IN_SESSION; | 
| break; | 
| -    case SESSION_PERMANENTLY_STOPPED: | 
| -      type = RemotingInterstitialType::ENCRYPTED_MEDIA_FATAL_ERROR; | 
| +    case SharedSession::SESSION_PERMANENTLY_STOPPED: | 
| +      type = InterstitialType::ENCRYPTED_MEDIA_FATAL_ERROR; | 
| break; | 
| -    case SESSION_UNAVAILABLE: | 
| -    case SESSION_CAN_START: | 
| -    case SESSION_STARTING: | 
| -    case SESSION_STOPPING: | 
| +    case SharedSession::SESSION_UNAVAILABLE: | 
| +    case SharedSession::SESSION_CAN_START: | 
| +    case SharedSession::SESSION_STARTING: | 
| +    case SharedSession::SESSION_STOPPING: | 
| break; | 
| } | 
|  | 
| show_interstitial_cb_.Run(image, pipeline_metadata_.natural_size, type); | 
| } | 
|  | 
| -void RemotingRendererController::DownloadPosterImage() { | 
| +void RendererController::DownloadPosterImage() { | 
| if (download_poster_cb_.is_null() || show_interstitial_cb_.is_null()) | 
| return; | 
| DCHECK(!poster_url_.is_empty()); | 
| @@ -448,11 +440,11 @@ void RemotingRendererController::DownloadPosterImage() { | 
| const base::TimeTicks download_start_time = base::TimeTicks::Now(); | 
| download_poster_cb_.Run( | 
| poster_url_, | 
| -      base::Bind(&RemotingRendererController::OnPosterImageDownloaded, | 
| +      base::Bind(&RendererController::OnPosterImageDownloaded, | 
| weak_factory_.GetWeakPtr(), poster_url_, download_start_time)); | 
| } | 
|  | 
| -void RemotingRendererController::OnPosterImageDownloaded( | 
| +void RendererController::OnPosterImageDownloaded( | 
| const GURL& download_url, | 
| base::TimeTicks download_start_time, | 
| const SkBitmap& image) { | 
| @@ -465,8 +457,7 @@ void RemotingRendererController::OnPosterImageDownloaded( | 
| UpdateInterstitial(image); | 
| } | 
|  | 
| -void RemotingRendererController::OnRendererFatalError( | 
| -    remoting::StopTrigger stop_trigger) { | 
| +void RendererController::OnRendererFatalError(StopTrigger stop_trigger) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  | 
| // Do not act on errors caused by things like Mojo pipes being closed during | 
| @@ -475,7 +466,8 @@ void RemotingRendererController::OnRendererFatalError( | 
| return; | 
|  | 
| encountered_renderer_fatal_error_ = true; | 
| -  UpdateAndMaybeSwitch(remoting::UNKNOWN_START_TRIGGER, stop_trigger); | 
| +  UpdateAndMaybeSwitch(UNKNOWN_START_TRIGGER, stop_trigger); | 
| } | 
|  | 
| +}  // namespace remoting | 
| }  // namespace media | 
|  |