Index: chrome/browser/media/router/presentation_service_delegate_impl.cc |
diff --git a/chrome/browser/media/router/presentation_service_delegate_impl.cc b/chrome/browser/media/router/presentation_service_delegate_impl.cc |
index e03063d83228cd22368d63c42e78bebb6675992a..e2010440ff76b1e2ebe1828dd2dd756b2e24daf4 100644 |
--- a/chrome/browser/media/router/presentation_service_delegate_impl.cc |
+++ b/chrome/browser/media/router/presentation_service_delegate_impl.cc |
@@ -178,12 +178,19 @@ const std::vector<MediaRoute::Id> PresentationFrame::GetRouteIds() const { |
bool PresentationFrame::SetScreenAvailabilityListener( |
content::PresentationScreenAvailabilityListener* listener) { |
- if (sinks_observer_ && sinks_observer_->listener() == listener) { |
+ if (sinks_observer_ && sinks_observer_->listener() == listener) |
return false; |
- } |
+ |
MediaSource source(GetMediaSourceFromListener(listener)); |
sinks_observer_.reset( |
new PresentationMediaSinksObserver(router_, listener, source)); |
+ |
+ if (!sinks_observer_->is_active()) { |
+ sinks_observer_.reset(); |
+ listener->OnScreenAvailabilityNotSupported(); |
+ return false; |
+ } |
+ |
return true; |
} |