Chromium Code Reviews| 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; |
| } |