Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Side by Side Diff: chrome/browser/media/router/presentation_service_delegate_impl.cc

Issue 1376703002: Presentation API: reject screen availability observing on Android low ram devices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments and compile fix Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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;
183
184 MediaSource source(GetMediaSourceFromListener(listener));
185 PresentationMediaSinksObserver* sinks_observer =
186 new PresentationMediaSinksObserver(router_, listener, source);
187
188 if (!sinks_observer->is_active()) {
189 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!
182 return false; 190 return false;
183 } 191 }
184 MediaSource source(GetMediaSourceFromListener(listener)); 192
185 sinks_observer_.reset( 193 sinks_observer_.reset(sinks_observer);
186 new PresentationMediaSinksObserver(router_, listener, source));
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698