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

Unified Diff: chrome/browser/media/android/router/media_router_android.cc

Issue 1415103006: Non-Local Join for Media Router and Presentation API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Ready for Review Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/android/router/media_router_android.cc
diff --git a/chrome/browser/media/android/router/media_router_android.cc b/chrome/browser/media/android/router/media_router_android.cc
index 614d4d9ec7aa1c988a527856dadcfe0bd18eb3ce..f27e23bb28a93ff46327cfa1bd758a995529a868 100644
--- a/chrome/browser/media/android/router/media_router_android.cc
+++ b/chrome/browser/media/android/router/media_router_android.cc
@@ -104,6 +104,15 @@ void MediaRouterAndroid::CreateRoute(
route_request_id);
}
+void MediaRouterAndroid::JoinRouteByRouteId(
+ const MediaSource::Id& source,
+ const MediaRoute::Id& route_id,
+ const GURL& origin,
+ content::WebContents* web_contents,
+ const std::vector<MediaRouteResponseCallback>& callbacks) {
+ NOTIMPLEMENTED();
+}
+
void MediaRouterAndroid::JoinRoute(
const MediaSource::Id& source_id,
const std::string& presentation_id,
@@ -259,14 +268,26 @@ void MediaRouterAndroid::UnregisterMediaSinksObserver(
void MediaRouterAndroid::RegisterMediaRoutesObserver(
MediaRoutesObserver* observer) {
DVLOG(2) << "Added MediaRoutesObserver: " << observer;
- routes_observers_.AddObserver(observer);
+ const std::string& source_id = observer->source_id();
+ base::ObserverList<MediaRoutesObserver>* observer_list =
imcheng 2015/11/26 00:49:45 Use auto* so it's consistent with below.
matt.boetger 2015/12/01 01:26:55 Reverting.
+ routes_observers_.get(source_id);
+ if (!observer_list) {
imcheng 2015/11/26 00:49:45 It looks like we don't currently support joinable
whywhat 2015/11/26 14:43:04 So actually, on Android it doesn't seem like we ca
matt.boetger 2015/12/01 01:26:55 Done.
matt.boetger 2015/12/01 01:26:55 Done.
+ observer_list = new base::ObserverList<MediaRoutesObserver>;
+ routes_observers_.add(source_id, make_scoped_ptr(observer_list));
+ } else {
+ DCHECK(!observer_list->HasObserver(observer));
+ }
+ observer_list->AddObserver(observer);
}
void MediaRouterAndroid::UnregisterMediaRoutesObserver(
MediaRoutesObserver* observer) {
- if (!routes_observers_.HasObserver(observer))
+ const std::string& source_id = observer->source_id();
+ auto* observer_list = routes_observers_.get(source_id);
+ if (!observer_list || !observer_list->HasObserver(observer))
return;
- routes_observers_.RemoveObserver(observer);
+
+ observer_list->RemoveObserver(observer);
}
void MediaRouterAndroid::RegisterIssuesObserver(IssuesObserver* observer) {
@@ -363,8 +384,13 @@ void MediaRouterAndroid::OnRouteCreated(
route_requests_.Remove(jroute_request_id);
active_routes_.push_back(route);
- FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_,
- OnRoutesUpdated(active_routes_));
+ for (auto it = routes_observers_.begin();
+ it != routes_observers_.end();
+ ++it) {
+ FOR_EACH_OBSERVER(MediaRoutesObserver, *it->second,
+ OnRoutesUpdated(active_routes_,
+ std::vector<MediaRoute::Id>()));
+ }
}
void MediaRouterAndroid::OnRouteRequestError(
@@ -394,8 +420,13 @@ void MediaRouterAndroid::OnRouteClosed(JNIEnv* env,
break;
}
- FOR_EACH_OBSERVER(MediaRoutesObserver, routes_observers_,
- OnRoutesUpdated(active_routes_));
+ for (auto it = routes_observers_.begin();
+ it != routes_observers_.end();
+ ++it) {
+ FOR_EACH_OBSERVER(MediaRoutesObserver, *it->second,
+ OnRoutesUpdated(active_routes_,
+ std::vector<MediaRoute::Id>()));
+ }
}
void MediaRouterAndroid::OnMessageSentResult(

Powered by Google App Engine
This is Rietveld 408576698