| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/remoting/renderer_controller.h" | 5 #include "media/remoting/renderer_controller.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/threading/thread_checker.h" | 9 #include "base/threading/thread_checker.h" |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 // in OnEnteredFullscreen() and OnExitedFullscreen(), and changes to it here | 111 // in OnEnteredFullscreen() and OnExitedFullscreen(), and changes to it here |
| 112 // are ignored while in fullscreen. | 112 // are ignored while in fullscreen. |
| 113 if (is_fullscreen_) | 113 if (is_fullscreen_) |
| 114 return; | 114 return; |
| 115 | 115 |
| 116 is_dominant_content_ = is_dominant; | 116 is_dominant_content_ = is_dominant; |
| 117 UpdateAndMaybeSwitch(BECAME_DOMINANT_CONTENT, BECAME_AUXILIARY_CONTENT); | 117 UpdateAndMaybeSwitch(BECAME_DOMINANT_CONTENT, BECAME_AUXILIARY_CONTENT); |
| 118 } | 118 } |
| 119 | 119 |
| 120 void RendererController::OnSetCdm(CdmContext* cdm_context) { | 120 void RendererController::OnSetCdm(CdmContext* cdm_context) { |
| 121 VLOG(2) << __func__; |
| 121 DCHECK(thread_checker_.CalledOnValidThread()); | 122 DCHECK(thread_checker_.CalledOnValidThread()); |
| 122 | 123 |
| 123 auto* remoting_cdm_context = RemotingCdmContext::From(cdm_context); | 124 auto* remoting_cdm_context = RemotingCdmContext::From(cdm_context); |
| 124 if (!remoting_cdm_context) | 125 if (!remoting_cdm_context) |
| 125 return; | 126 return; |
| 126 | 127 |
| 127 session_->RemoveClient(this); | 128 session_->RemoveClient(this); |
| 128 session_ = remoting_cdm_context->GetSharedSession(); | 129 session_ = remoting_cdm_context->GetSharedSession(); |
| 129 session_->AddClient(this); | 130 session_->AddClient(this); |
| 130 UpdateFromSessionState(CDM_READY, DECRYPTION_ERROR); | 131 UpdateFromSessionState(CDM_READY, DECRYPTION_ERROR); |
| 131 } | 132 } |
| 132 | 133 |
| 133 void RendererController::OnRemotePlaybackDisabled(bool disabled) { | 134 void RendererController::OnRemotePlaybackDisabled(bool disabled) { |
| 135 VLOG(2) << __func__ << ": disabled = " << disabled; |
| 134 DCHECK(thread_checker_.CalledOnValidThread()); | 136 DCHECK(thread_checker_.CalledOnValidThread()); |
| 135 | 137 |
| 136 is_remote_playback_disabled_ = disabled; | 138 is_remote_playback_disabled_ = disabled; |
| 137 metrics_recorder_.OnRemotePlaybackDisabled(disabled); | 139 metrics_recorder_.OnRemotePlaybackDisabled(disabled); |
| 138 UpdateAndMaybeSwitch(ENABLED_BY_PAGE, DISABLED_BY_PAGE); | 140 UpdateAndMaybeSwitch(ENABLED_BY_PAGE, DISABLED_BY_PAGE); |
| 139 } | 141 } |
| 140 | 142 |
| 141 base::WeakPtr<RpcBroker> RendererController::GetRpcBroker() const { | 143 base::WeakPtr<RpcBroker> RendererController::GetRpcBroker() const { |
| 142 DCHECK(thread_checker_.CalledOnValidThread()); | 144 DCHECK(thread_checker_.CalledOnValidThread()); |
| 143 | 145 |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 // StopRemoting() from here. | 347 // StopRemoting() from here. |
| 346 DCHECK(!is_encrypted_); | 348 DCHECK(!is_encrypted_); |
| 347 DCHECK_NE(stop_trigger, UNKNOWN_STOP_TRIGGER); | 349 DCHECK_NE(stop_trigger, UNKNOWN_STOP_TRIGGER); |
| 348 metrics_recorder_.WillStopSession(stop_trigger); | 350 metrics_recorder_.WillStopSession(stop_trigger); |
| 349 client_->SwitchRenderer(false); | 351 client_->SwitchRenderer(false); |
| 350 session_->StopRemoting(this); | 352 session_->StopRemoting(this); |
| 351 } | 353 } |
| 352 } | 354 } |
| 353 | 355 |
| 354 void RendererController::OnRendererFatalError(StopTrigger stop_trigger) { | 356 void RendererController::OnRendererFatalError(StopTrigger stop_trigger) { |
| 357 VLOG(2) << __func__ << ": stop_trigger= " << stop_trigger; |
| 355 DCHECK(thread_checker_.CalledOnValidThread()); | 358 DCHECK(thread_checker_.CalledOnValidThread()); |
| 356 | 359 |
| 357 // Do not act on errors caused by things like Mojo pipes being closed during | 360 // Do not act on errors caused by things like Mojo pipes being closed during |
| 358 // shutdown. | 361 // shutdown. |
| 359 if (!remote_rendering_started_) | 362 if (!remote_rendering_started_) |
| 360 return; | 363 return; |
| 361 | 364 |
| 362 encountered_renderer_fatal_error_ = true; | 365 encountered_renderer_fatal_error_ = true; |
| 363 UpdateAndMaybeSwitch(UNKNOWN_START_TRIGGER, stop_trigger); | 366 UpdateAndMaybeSwitch(UNKNOWN_START_TRIGGER, stop_trigger); |
| 364 } | 367 } |
| 365 | 368 |
| 366 void RendererController::SetClient(MediaObserverClient* client) { | 369 void RendererController::SetClient(MediaObserverClient* client) { |
| 367 DCHECK(thread_checker_.CalledOnValidThread()); | 370 DCHECK(thread_checker_.CalledOnValidThread()); |
| 368 DCHECK(client); | 371 DCHECK(client); |
| 369 DCHECK(!client_); | 372 DCHECK(!client_); |
| 370 | 373 |
| 371 client_ = client; | 374 client_ = client; |
| 372 client_->ActivateViewportIntersectionMonitoring(IsRemoteSinkAvailable()); | 375 client_->ActivateViewportIntersectionMonitoring(IsRemoteSinkAvailable()); |
| 373 } | 376 } |
| 374 | 377 |
| 375 } // namespace remoting | 378 } // namespace remoting |
| 376 } // namespace media | 379 } // namespace media |
| OLD | NEW |