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 |