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

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

Issue 1495653003: [Media Router] Check MediaRouterDialogControllerImpl only sets toolbar MediaRouterAction. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 18 matching lines...) Expand all
29 29
30 namespace { 30 namespace {
31 31
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 : media_router::IssuesObserver(GetMediaRouter(browser)), 41 : media_router::IssuesObserver(GetMediaRouter(browser)),
41 media_router::LocalMediaRoutesObserver(GetMediaRouter(browser)), 42 media_router::LocalMediaRoutesObserver(GetMediaRouter(browser)),
42 media_router_active_icon_( 43 media_router_active_icon_(
43 ui::ResourceBundle::GetSharedInstance() 44 ui::ResourceBundle::GetSharedInstance()
44 .GetImageNamed(IDR_MEDIA_ROUTER_ACTIVE_ICON)), 45 .GetImageNamed(IDR_MEDIA_ROUTER_ACTIVE_ICON)),
45 media_router_error_icon_(ui::ResourceBundle::GetSharedInstance() 46 media_router_error_icon_(ui::ResourceBundle::GetSharedInstance()
46 .GetImageNamed(IDR_MEDIA_ROUTER_ERROR_ICON)), 47 .GetImageNamed(IDR_MEDIA_ROUTER_ERROR_ICON)),
47 media_router_idle_icon_(ui::ResourceBundle::GetSharedInstance() 48 media_router_idle_icon_(ui::ResourceBundle::GetSharedInstance()
48 .GetImageNamed(IDR_MEDIA_ROUTER_IDLE_ICON)), 49 .GetImageNamed(IDR_MEDIA_ROUTER_IDLE_ICON)),
49 media_router_warning_icon_( 50 media_router_warning_icon_(
50 ui::ResourceBundle::GetSharedInstance() 51 ui::ResourceBundle::GetSharedInstance()
51 .GetImageNamed(IDR_MEDIA_ROUTER_WARNING_ICON)), 52 .GetImageNamed(IDR_MEDIA_ROUTER_WARNING_ICON)),
52 current_icon_(&media_router_idle_icon_), 53 current_icon_(&media_router_idle_icon_),
53 has_local_display_route_(false), 54 has_local_display_route_(false),
54 delegate_(nullptr), 55 delegate_(nullptr),
55 browser_(browser), 56 browser_(browser),
57 toolbar_actions_bar_(toolbar_actions_bar),
56 platform_delegate_(MediaRouterActionPlatformDelegate::Create(browser)), 58 platform_delegate_(MediaRouterActionPlatformDelegate::Create(browser)),
57 contextual_menu_(browser), 59 contextual_menu_(browser),
58 tab_strip_model_observer_(this), 60 tab_strip_model_observer_(this),
59 weak_ptr_factory_(this) { 61 weak_ptr_factory_(this) {
60 DCHECK(browser_); 62 DCHECK(browser_);
63 DCHECK(toolbar_actions_bar_);
61 tab_strip_model_observer_.Add(browser_->tab_strip_model()); 64 tab_strip_model_observer_.Add(browser_->tab_strip_model());
62 65
63 RegisterObserver(); 66 RegisterObserver();
64 OnHasLocalDisplayRouteUpdated( 67 OnHasLocalDisplayRouteUpdated(
65 GetMediaRouter(browser)->HasLocalDisplayRoute()); 68 GetMediaRouter(browser)->HasLocalDisplayRoute());
66 } 69 }
67 70
68 MediaRouterAction::~MediaRouterAction() { 71 MediaRouterAction::~MediaRouterAction() {
69 UnregisterObserver(); 72 UnregisterObserver();
70 } 73 }
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 delegate_->OnPopupShown(true); 188 delegate_->OnPopupShown(true);
186 } 189 }
187 190
188 void MediaRouterAction::UpdatePopupState() { 191 void MediaRouterAction::UpdatePopupState() {
189 MediaRouterDialogControllerImpl* controller = 192 MediaRouterDialogControllerImpl* controller =
190 GetMediaRouterDialogController(); 193 GetMediaRouterDialogController();
191 194
192 if (!controller) 195 if (!controller)
193 return; 196 return;
194 197
195 // Immediately keep track of MediaRouterAction in the controller. If it was 198 // Only call SetMediaRouterAction() if |this| lives on the toolbar rather
196 // already set, this should be a no-op. 199 // than the overflow menu. If it was already set, this should be a no-op.
Peter Kasting 2015/12/03 04:48:53 This first sentence restates what the code does.
apacible 2015/12/03 21:53:10 Done.
197 controller->SetMediaRouterAction(weak_ptr_factory_.GetWeakPtr()); 200 if (!toolbar_actions_bar_->in_overflow_mode())
201 controller->SetMediaRouterAction(weak_ptr_factory_.GetWeakPtr());
198 202
199 // Update the button in case the pressed state is out of sync with dialog 203 // Update the button in case the pressed state is out of sync with dialog
200 // visibility. 204 // visibility.
201 if (controller->IsShowingMediaRouterDialog()) 205 if (controller->IsShowingMediaRouterDialog())
202 OnPopupShown(); 206 OnPopupShown();
203 else 207 else
204 OnPopupHidden(); 208 OnPopupHidden();
205 } 209 }
206 210
207 MediaRouterDialogControllerImpl* 211 MediaRouterDialogControllerImpl*
(...skipping 28 matching lines...) Expand all
236 if (issue_) { 240 if (issue_) {
237 if (issue_->severity() == media_router::Issue::FATAL) 241 if (issue_->severity() == media_router::Issue::FATAL)
238 return &media_router_error_icon_; 242 return &media_router_error_icon_;
239 if (issue_->severity() == media_router::Issue::WARNING) 243 if (issue_->severity() == media_router::Issue::WARNING)
240 return &media_router_warning_icon_; 244 return &media_router_warning_icon_;
241 } 245 }
242 246
243 return has_local_display_route_ ? &media_router_active_icon_ 247 return has_local_display_route_ ? &media_router_active_icon_
244 : &media_router_idle_icon_; 248 : &media_router_idle_icon_;
245 } 249 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698