| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/ui/webui/media_router/media_router_ui.h" | 5 #include "chrome/browser/ui/webui/media_router/media_router_ui.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 MediaRouterUI::~MediaRouterUI() { | 198 MediaRouterUI::~MediaRouterUI() { |
| 199 if (issues_observer_) issues_observer_->UnregisterObserver(); | 199 if (issues_observer_) issues_observer_->UnregisterObserver(); |
| 200 | 200 |
| 201 if (query_result_manager_.get()) query_result_manager_->RemoveObserver(this); | 201 if (query_result_manager_.get()) query_result_manager_->RemoveObserver(this); |
| 202 if (presentation_service_delegate_.get()) | 202 if (presentation_service_delegate_.get()) |
| 203 presentation_service_delegate_->RemoveDefaultPresentationRequestObserver( | 203 presentation_service_delegate_->RemoveDefaultPresentationRequestObserver( |
| 204 this); | 204 this); |
| 205 // If |create_session_request_| still exists, then it means presentation route | 205 // If |create_session_request_| still exists, then it means presentation route |
| 206 // request was never attempted. | 206 // request was never attempted. |
| 207 if (create_session_request_) { | 207 if (create_session_request_) { |
| 208 create_session_request_->InvokeErrorCallback(content::PresentationError( | 208 bool presentation_sinks_available = std::any_of( |
| 209 content::PRESENTATION_ERROR_SESSION_REQUEST_CANCELLED, | 209 sinks_.begin(), sinks_.end(), [](const MediaSinkWithCastModes& sink) { |
| 210 "Dialog closed.")); | 210 return ContainsValue(sink.cast_modes, MediaCastMode::DEFAULT); |
| 211 }); |
| 212 if (presentation_sinks_available) { |
| 213 create_session_request_->InvokeErrorCallback(content::PresentationError( |
| 214 content::PRESENTATION_ERROR_SESSION_REQUEST_CANCELLED, |
| 215 "Dialog closed.")); |
| 216 } else { |
| 217 create_session_request_->InvokeErrorCallback(content::PresentationError( |
| 218 content::PRESENTATION_ERROR_NO_AVAILABLE_SCREENS, |
| 219 "No screens found.")); |
| 220 } |
| 211 } | 221 } |
| 212 } | 222 } |
| 213 | 223 |
| 214 void MediaRouterUI::InitWithDefaultMediaSource( | 224 void MediaRouterUI::InitWithDefaultMediaSource( |
| 215 const base::WeakPtr<PresentationServiceDelegateImpl>& delegate) { | 225 const base::WeakPtr<PresentationServiceDelegateImpl>& delegate) { |
| 216 DCHECK(delegate); | 226 DCHECK(delegate); |
| 217 DCHECK(!presentation_service_delegate_); | 227 DCHECK(!presentation_service_delegate_); |
| 218 DCHECK(!query_result_manager_.get()); | 228 DCHECK(!query_result_manager_.get()); |
| 219 | 229 |
| 220 presentation_service_delegate_ = delegate; | 230 presentation_service_delegate_ = delegate; |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 initiator_ = initiator; | 289 initiator_ = initiator; |
| 280 SessionID::id_type tab_id = SessionTabHelper::IdForTab(initiator); | 290 SessionID::id_type tab_id = SessionTabHelper::IdForTab(initiator); |
| 281 if (tab_id != -1) { | 291 if (tab_id != -1) { |
| 282 MediaSource mirroring_source(MediaSourceForTab(tab_id)); | 292 MediaSource mirroring_source(MediaSourceForTab(tab_id)); |
| 283 query_result_manager_->StartSinksQuery(MediaCastMode::TAB_MIRROR, | 293 query_result_manager_->StartSinksQuery(MediaCastMode::TAB_MIRROR, |
| 284 mirroring_source, origin); | 294 mirroring_source, origin); |
| 285 } | 295 } |
| 286 UpdateCastModes(); | 296 UpdateCastModes(); |
| 287 } | 297 } |
| 288 | 298 |
| 289 void MediaRouterUI::InitForTest(MediaRouter* router, | 299 void MediaRouterUI::InitForTest( |
| 290 content::WebContents* initiator, | 300 MediaRouter* router, |
| 291 MediaRouterWebUIMessageHandler* handler) { | 301 content::WebContents* initiator, |
| 302 MediaRouterWebUIMessageHandler* handler, |
| 303 std::unique_ptr<CreatePresentationConnectionRequest> |
| 304 create_session_request) { |
| 292 router_ = router; | 305 router_ = router; |
| 293 handler_ = handler; | 306 handler_ = handler; |
| 307 create_session_request_ = std::move(create_session_request); |
| 294 InitCommon(initiator); | 308 InitCommon(initiator); |
| 309 if (create_session_request_) { |
| 310 OnDefaultPresentationChanged( |
| 311 create_session_request_->presentation_request()); |
| 312 } |
| 295 } | 313 } |
| 296 | 314 |
| 297 void MediaRouterUI::OnDefaultPresentationChanged( | 315 void MediaRouterUI::OnDefaultPresentationChanged( |
| 298 const PresentationRequest& presentation_request) { | 316 const PresentationRequest& presentation_request) { |
| 299 MediaSource source = presentation_request.GetMediaSource(); | 317 MediaSource source = presentation_request.GetMediaSource(); |
| 300 presentation_request_.reset(new PresentationRequest(presentation_request)); | 318 presentation_request_.reset(new PresentationRequest(presentation_request)); |
| 301 query_result_manager_->StartSinksQuery( | 319 query_result_manager_->StartSinksQuery( |
| 302 MediaCastMode::DEFAULT, source, | 320 MediaCastMode::DEFAULT, source, |
| 303 presentation_request_->frame_url().GetOrigin()); | 321 presentation_request_->frame_url().GetOrigin()); |
| 304 // Register for MediaRoute updates. | 322 // Register for MediaRoute updates. |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 684 base::Time::Now() - start_time_); | 702 base::Time::Now() - start_time_); |
| 685 start_time_ = base::Time(); | 703 start_time_ = base::Time(); |
| 686 } | 704 } |
| 687 } | 705 } |
| 688 | 706 |
| 689 void MediaRouterUI::UpdateMaxDialogHeight(int height) { | 707 void MediaRouterUI::UpdateMaxDialogHeight(int height) { |
| 690 handler_->UpdateMaxDialogHeight(height); | 708 handler_->UpdateMaxDialogHeight(height); |
| 691 } | 709 } |
| 692 | 710 |
| 693 } // namespace media_router | 711 } // namespace media_router |
| OLD | NEW |