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

Unified Diff: chrome/browser/ui/toolbar/media_router_action.cc

Issue 1383653002: MediaRouterAction: Only observe Media Routes when there is a local route. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add const to function for MediaRouterAndroid. 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/toolbar/media_router_action.cc
diff --git a/chrome/browser/ui/toolbar/media_router_action.cc b/chrome/browser/ui/toolbar/media_router_action.cc
index 4d2ca8d54daa45488831eb6e01a582dddc6fa63f..72a06cef447e58f97e07d5338feeee7bd470769f 100644
--- a/chrome/browser/ui/toolbar/media_router_action.cc
+++ b/chrome/browser/ui/toolbar/media_router_action.cc
@@ -25,9 +25,18 @@
using media_router::MediaRouterDialogControllerImpl;
+namespace {
+
+media_router::MediaRouter* GetMediaRouter(Browser* browser) {
+ return media_router::MediaRouterFactory::GetApiForBrowserContext(
+ browser->profile());
Peter Kasting 2015/10/02 19:04:01 This is very simple and only used in one place, so
apacible 2015/10/02 20:45:48 This is used three times; I'd rather keep GetMedia
Peter Kasting 2015/10/05 03:20:26 Oh, sorry. Since the function looked added I had
+}
+
+} // namespace
+
MediaRouterAction::MediaRouterAction(Browser* browser)
: media_router::IssuesObserver(GetMediaRouter(browser)),
- media_router::MediaRoutesObserver(GetMediaRouter(browser)),
+ media_router::LocalMediaRoutesObserver(GetMediaRouter(browser)),
media_router_active_icon_(
ui::ResourceBundle::GetSharedInstance()
.GetImageNamed(IDR_MEDIA_ROUTER_ACTIVE_ICON)),
@@ -48,6 +57,7 @@ MediaRouterAction::MediaRouterAction(Browser* browser)
weak_ptr_factory_(this) {
DCHECK(browser_);
tab_strip_model_observer_.Add(browser_->tab_strip_model());
+ OnHasLocalRouteUpdated(GetMediaRouter(browser)->HasLocalRoute());
}
MediaRouterAction::~MediaRouterAction() {
@@ -138,13 +148,8 @@ void MediaRouterAction::OnIssueUpdated(const media_router::Issue* issue) {
MaybeUpdateIcon();
}
-void MediaRouterAction::OnRoutesUpdated(
- const std::vector<media_router::MediaRoute>& routes) {
- has_local_route_ =
- std::find_if(routes.begin(), routes.end(),
- [](const media_router::MediaRoute& route) {
- return route.is_local(); }) !=
- routes.end();
+void MediaRouterAction::OnHasLocalRouteUpdated(bool has_local_route) {
+ has_local_route_ = has_local_route;
MaybeUpdateIcon();
}
@@ -195,11 +200,6 @@ MediaRouterAction::GetMediaRouterDialogController() {
web_contents);
}
-media_router::MediaRouter* MediaRouterAction::GetMediaRouter(Browser* browser) {
- return media_router::MediaRouterFactory::GetApiForBrowserContext(
- static_cast<content::BrowserContext*>(browser->profile()));
-}
-
MediaRouterActionPlatformDelegate* MediaRouterAction::GetPlatformDelegate() {
return platform_delegate_.get();
}

Powered by Google App Engine
This is Rietveld 408576698