| 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 d8b04d5622481c5ffedd028c24d64b9e34775a8a..64e0569c062386c1fa5020241767c5ff6b170c09 100644
|
| --- a/chrome/browser/ui/toolbar/media_router_action.cc
|
| +++ b/chrome/browser/ui/toolbar/media_router_action.cc
|
| @@ -54,11 +54,10 @@ MediaRouterAction::MediaRouterAction(Browser* browser,
|
| DCHECK(toolbar_actions_bar_);
|
| tab_strip_model_observer_.Add(browser_->tab_strip_model());
|
| toolbar_actions_bar_observer_.Add(toolbar_actions_bar_);
|
| - RegisterObserver();
|
| + IssuesObserver::Init();
|
| }
|
|
|
| MediaRouterAction::~MediaRouterAction() {
|
| - UnregisterObserver();
|
| }
|
|
|
| // static
|
| @@ -166,7 +165,11 @@ bool MediaRouterAction::DisabledClickOpensMenu() const {
|
| }
|
|
|
| void MediaRouterAction::OnIssueUpdated(const media_router::Issue* issue) {
|
| - issue_.reset(issue ? new media_router::Issue(*issue) : nullptr);
|
| + if (!issue)
|
| + current_issue_severity_.reset();
|
| + else
|
| + current_issue_severity_ = issue->info().severity;
|
| +
|
| MaybeUpdateIcon();
|
| }
|
|
|
| @@ -266,11 +269,13 @@ void MediaRouterAction::MaybeUpdateIcon() {
|
|
|
| gfx::VectorIconId MediaRouterAction::GetCurrentIcon() const {
|
| // Highest priority is to indicate whether there's an issue.
|
| - if (issue_) {
|
| - if (issue_->severity() == media_router::Issue::FATAL)
|
| + if (current_issue_severity_.has_value()) {
|
| + if (*current_issue_severity_ == media_router::IssueInfo::Severity::FATAL)
|
| return gfx::VectorIconId::MEDIA_ROUTER_ERROR;
|
| - if (issue_->severity() == media_router::Issue::WARNING)
|
| + else if (*current_issue_severity_ ==
|
| + media_router::IssueInfo::Severity::WARNING)
|
| return gfx::VectorIconId::MEDIA_ROUTER_WARNING;
|
| + // Fall through for Severity::NOTIFICATION.
|
| }
|
|
|
| return has_local_display_route_ ? gfx::VectorIconId::MEDIA_ROUTER_ACTIVE
|
|
|