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..5b40c50bfe800570c68671d62bb492f9ff20fe06 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)); |
+ PresentationMediaSinksObserver* sinks_observer = |
+ new PresentationMediaSinksObserver(router_, listener, source); |
+ |
+ if (!sinks_observer->is_active()) { |
+ listener->OnScreenAvailabilityNotSupported(); |
whywhat
2015/09/29 12:29:22
I think you need to make sinks_observer a scoped_p
mlamouri (slow - plz ping)
2015/09/29 14:44:52
Good catch!
|
+ return false; |
+ } |
+ |
+ sinks_observer_.reset(sinks_observer); |
return true; |
} |