| Index: chrome/browser/ui/webui/media_router/media_router_ui.cc
|
| diff --git a/chrome/browser/ui/webui/media_router/media_router_ui.cc b/chrome/browser/ui/webui/media_router/media_router_ui.cc
|
| index c5572be8d05e283ea506b6bbc59239c35aca9810..4a8afb4de0bc550fb9a6c34573ac042bea77bc11 100644
|
| --- a/chrome/browser/ui/webui/media_router/media_router_ui.cc
|
| +++ b/chrome/browser/ui/webui/media_router/media_router_ui.cc
|
| @@ -205,9 +205,19 @@ MediaRouterUI::~MediaRouterUI() {
|
| // If |create_session_request_| still exists, then it means presentation route
|
| // request was never attempted.
|
| if (create_session_request_) {
|
| - create_session_request_->InvokeErrorCallback(content::PresentationError(
|
| - content::PRESENTATION_ERROR_SESSION_REQUEST_CANCELLED,
|
| - "Dialog closed."));
|
| + bool presentation_sinks_available = std::any_of(
|
| + sinks_.begin(), sinks_.end(), [](const MediaSinkWithCastModes& sink) {
|
| + return ContainsValue(sink.cast_modes, MediaCastMode::DEFAULT);
|
| + });
|
| + if (presentation_sinks_available) {
|
| + create_session_request_->InvokeErrorCallback(content::PresentationError(
|
| + content::PRESENTATION_ERROR_SESSION_REQUEST_CANCELLED,
|
| + "Dialog closed."));
|
| + } else {
|
| + create_session_request_->InvokeErrorCallback(content::PresentationError(
|
| + content::PRESENTATION_ERROR_NO_AVAILABLE_SCREENS,
|
| + "No screens found."));
|
| + }
|
| }
|
| }
|
|
|
| @@ -286,12 +296,20 @@ void MediaRouterUI::InitCommon(content::WebContents* initiator) {
|
| UpdateCastModes();
|
| }
|
|
|
| -void MediaRouterUI::InitForTest(MediaRouter* router,
|
| - content::WebContents* initiator,
|
| - MediaRouterWebUIMessageHandler* handler) {
|
| +void MediaRouterUI::InitForTest(
|
| + MediaRouter* router,
|
| + content::WebContents* initiator,
|
| + MediaRouterWebUIMessageHandler* handler,
|
| + std::unique_ptr<CreatePresentationConnectionRequest>
|
| + create_session_request) {
|
| router_ = router;
|
| handler_ = handler;
|
| + create_session_request_ = std::move(create_session_request);
|
| InitCommon(initiator);
|
| + if (create_session_request_) {
|
| + OnDefaultPresentationChanged(
|
| + create_session_request_->presentation_request());
|
| + }
|
| }
|
|
|
| void MediaRouterUI::OnDefaultPresentationChanged(
|
|
|