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

Side by Side Diff: chrome/browser/ui/toolbar/media_router_action.cc

Issue 1648713004: [Media Router] Fix regression with icon not turning blue after casting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests Created 4 years, 10 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/ui/toolbar/media_router_action.h" 5 #include "chrome/browser/ui/toolbar/media_router_action.h"
6 6
7 #include "base/metrics/user_metrics.h" 7 #include "base/metrics/user_metrics.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/media/router/issue.h" 9 #include "chrome/browser/media/router/issue.h"
10 #include "chrome/browser/media/router/media_route.h" 10 #include "chrome/browser/media/router/media_route.h"
(...skipping 21 matching lines...) Expand all
32 media_router::MediaRouter* GetMediaRouter(Browser* browser) { 32 media_router::MediaRouter* GetMediaRouter(Browser* browser) {
33 return media_router::MediaRouterFactory::GetApiForBrowserContext( 33 return media_router::MediaRouterFactory::GetApiForBrowserContext(
34 browser->profile()); 34 browser->profile());
35 } 35 }
36 36
37 } // namespace 37 } // namespace
38 38
39 MediaRouterAction::MediaRouterAction(Browser* browser, 39 MediaRouterAction::MediaRouterAction(Browser* browser,
40 ToolbarActionsBar* toolbar_actions_bar) 40 ToolbarActionsBar* toolbar_actions_bar)
41 : media_router::IssuesObserver(GetMediaRouter(browser)), 41 : media_router::IssuesObserver(GetMediaRouter(browser)),
42 media_router::LocalMediaRoutesObserver(GetMediaRouter(browser)), 42 media_router::MediaRoutesObserver(GetMediaRouter(browser)),
43 media_router_active_icon_( 43 media_router_active_icon_(
44 ui::ResourceBundle::GetSharedInstance() 44 ui::ResourceBundle::GetSharedInstance().GetImageNamed(
45 .GetImageNamed(IDR_MEDIA_ROUTER_ACTIVE_ICON)), 45 IDR_MEDIA_ROUTER_ACTIVE_ICON)),
46 media_router_error_icon_(ui::ResourceBundle::GetSharedInstance() 46 media_router_error_icon_(
47 .GetImageNamed(IDR_MEDIA_ROUTER_ERROR_ICON)), 47 ui::ResourceBundle::GetSharedInstance().GetImageNamed(
48 media_router_idle_icon_(ui::ResourceBundle::GetSharedInstance() 48 IDR_MEDIA_ROUTER_ERROR_ICON)),
49 .GetImageNamed(IDR_MEDIA_ROUTER_IDLE_ICON)), 49 media_router_idle_icon_(
50 ui::ResourceBundle::GetSharedInstance().GetImageNamed(
51 IDR_MEDIA_ROUTER_IDLE_ICON)),
50 media_router_warning_icon_( 52 media_router_warning_icon_(
51 ui::ResourceBundle::GetSharedInstance() 53 ui::ResourceBundle::GetSharedInstance().GetImageNamed(
52 .GetImageNamed(IDR_MEDIA_ROUTER_WARNING_ICON)), 54 IDR_MEDIA_ROUTER_WARNING_ICON)),
53 current_icon_(&media_router_idle_icon_), 55 current_icon_(&media_router_idle_icon_),
54 has_local_display_route_(false), 56 has_local_display_route_(false),
55 delegate_(nullptr), 57 delegate_(nullptr),
56 browser_(browser), 58 browser_(browser),
57 toolbar_actions_bar_(toolbar_actions_bar), 59 toolbar_actions_bar_(toolbar_actions_bar),
58 platform_delegate_(MediaRouterActionPlatformDelegate::Create(browser)), 60 platform_delegate_(MediaRouterActionPlatformDelegate::Create(browser)),
59 contextual_menu_(browser), 61 contextual_menu_(browser),
60 tab_strip_model_observer_(this), 62 tab_strip_model_observer_(this),
61 weak_ptr_factory_(this) { 63 weak_ptr_factory_(this) {
62 DCHECK(browser_); 64 DCHECK(browser_);
63 DCHECK(toolbar_actions_bar_); 65 DCHECK(toolbar_actions_bar_);
64 tab_strip_model_observer_.Add(browser_->tab_strip_model()); 66 tab_strip_model_observer_.Add(browser_->tab_strip_model());
65 67
66 RegisterObserver(); 68 RegisterObserver();
67 OnHasLocalDisplayRouteUpdated(
68 GetMediaRouter(browser)->HasLocalDisplayRoute());
69 } 69 }
70 70
71 MediaRouterAction::~MediaRouterAction() { 71 MediaRouterAction::~MediaRouterAction() {
72 UnregisterObserver(); 72 UnregisterObserver();
73 } 73 }
74 74
75 std::string MediaRouterAction::GetId() const { 75 std::string MediaRouterAction::GetId() const {
76 return ComponentToolbarActionsFactory::kMediaRouterActionId; 76 return ComponentToolbarActionsFactory::kMediaRouterActionId;
77 } 77 }
78 78
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 bool MediaRouterAction::DisabledClickOpensMenu() const { 156 bool MediaRouterAction::DisabledClickOpensMenu() const {
157 return false; 157 return false;
158 } 158 }
159 159
160 void MediaRouterAction::OnIssueUpdated(const media_router::Issue* issue) { 160 void MediaRouterAction::OnIssueUpdated(const media_router::Issue* issue) {
161 issue_.reset(issue ? new media_router::Issue(*issue) : nullptr); 161 issue_.reset(issue ? new media_router::Issue(*issue) : nullptr);
162 162
163 MaybeUpdateIcon(); 163 MaybeUpdateIcon();
164 } 164 }
165 165
166 void MediaRouterAction::OnHasLocalDisplayRouteUpdated( 166 void MediaRouterAction::OnRoutesUpdated(
167 bool has_local_display_route) { 167 const std::vector<media_router::MediaRoute>& routes,
168 has_local_display_route_ = has_local_display_route; 168 const std::vector<media_router::MediaRoute::Id>& joinable_route_ids) {
169 has_local_display_route_ =
170 std::find_if(routes.begin(), routes.end(),
Peter Kasting 2016/01/30 00:52:19 Nit: Prefer std::any_of() to (std::find_if() != en
imcheng 2016/02/01 18:48:06 I was going to use that, but it looks like it's a
171 [](const media_router::MediaRoute& route) {
172 return route.is_local() && route.for_display();
173 }) != routes.end();
169 MaybeUpdateIcon(); 174 MaybeUpdateIcon();
170 } 175 }
171 176
172 void MediaRouterAction::ActiveTabChanged(content::WebContents* old_contents, 177 void MediaRouterAction::ActiveTabChanged(content::WebContents* old_contents,
173 content::WebContents* new_contents, 178 content::WebContents* new_contents,
174 int index, 179 int index,
175 int reason) { 180 int reason) {
176 UpdatePopupState(); 181 UpdatePopupState();
177 } 182 }
178 183
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 if (issue_) { 248 if (issue_) {
244 if (issue_->severity() == media_router::Issue::FATAL) 249 if (issue_->severity() == media_router::Issue::FATAL)
245 return &media_router_error_icon_; 250 return &media_router_error_icon_;
246 if (issue_->severity() == media_router::Issue::WARNING) 251 if (issue_->severity() == media_router::Issue::WARNING)
247 return &media_router_warning_icon_; 252 return &media_router_warning_icon_;
248 } 253 }
249 254
250 return has_local_display_route_ ? &media_router_active_icon_ 255 return has_local_display_route_ ? &media_router_active_icon_
251 : &media_router_idle_icon_; 256 : &media_router_idle_icon_;
252 } 257 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698