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/media/router/presentation_service_delegate_impl.h" | 5 #include "chrome/browser/media/router/presentation_service_delegate_impl.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/containers/scoped_ptr_hash_map.h" | 9 #include "base/containers/scoped_ptr_hash_map.h" |
10 #include "base/containers/small_map.h" | 10 #include "base/containers/small_map.h" |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 | 171 |
172 const std::vector<MediaRoute::Id> PresentationFrame::GetRouteIds() const { | 172 const std::vector<MediaRoute::Id> PresentationFrame::GetRouteIds() const { |
173 std::vector<MediaRoute::Id> route_ids; | 173 std::vector<MediaRoute::Id> route_ids; |
174 for (const auto& e : presentation_id_to_route_id_) | 174 for (const auto& e : presentation_id_to_route_id_) |
175 route_ids.push_back(e.second); | 175 route_ids.push_back(e.second); |
176 return route_ids; | 176 return route_ids; |
177 } | 177 } |
178 | 178 |
179 bool PresentationFrame::SetScreenAvailabilityListener( | 179 bool PresentationFrame::SetScreenAvailabilityListener( |
180 content::PresentationScreenAvailabilityListener* listener) { | 180 content::PresentationScreenAvailabilityListener* listener) { |
181 if (sinks_observer_ && sinks_observer_->listener() == listener) { | 181 if (sinks_observer_ && sinks_observer_->listener() == listener) |
182 return false; | 182 return false; |
183 } | 183 |
184 MediaSource source(GetMediaSourceFromListener(listener)); | 184 MediaSource source(GetMediaSourceFromListener(listener)); |
185 sinks_observer_.reset( | 185 sinks_observer_.reset( |
186 new PresentationMediaSinksObserver(router_, listener, source)); | 186 new PresentationMediaSinksObserver(router_, listener, source)); |
| 187 |
| 188 if (!sinks_observer_->is_active()) { |
| 189 sinks_observer_.reset(); |
| 190 listener->OnScreenAvailabilityNotSupported(); |
| 191 return false; |
| 192 } |
| 193 |
187 return true; | 194 return true; |
188 } | 195 } |
189 | 196 |
190 bool PresentationFrame::RemoveScreenAvailabilityListener( | 197 bool PresentationFrame::RemoveScreenAvailabilityListener( |
191 content::PresentationScreenAvailabilityListener* listener) { | 198 content::PresentationScreenAvailabilityListener* listener) { |
192 if (sinks_observer_ && sinks_observer_->listener() == listener) { | 199 if (sinks_observer_ && sinks_observer_->listener() == listener) { |
193 sinks_observer_.reset(); | 200 sinks_observer_.reset(); |
194 return true; | 201 return true; |
195 } | 202 } |
196 return false; | 203 return false; |
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
741 bool PresentationServiceDelegateImpl::HasScreenAvailabilityListenerForTest( | 748 bool PresentationServiceDelegateImpl::HasScreenAvailabilityListenerForTest( |
742 int render_process_id, | 749 int render_process_id, |
743 int render_frame_id, | 750 int render_frame_id, |
744 const MediaSource::Id& source_id) const { | 751 const MediaSource::Id& source_id) const { |
745 RenderFrameHostId render_frame_host_id(render_process_id, render_frame_id); | 752 RenderFrameHostId render_frame_host_id(render_process_id, render_frame_id); |
746 return frame_manager_->HasScreenAvailabilityListenerForTest( | 753 return frame_manager_->HasScreenAvailabilityListenerForTest( |
747 render_frame_host_id, source_id); | 754 render_frame_host_id, source_id); |
748 } | 755 } |
749 | 756 |
750 } // namespace media_router | 757 } // namespace media_router |
OLD | NEW |