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

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

Issue 2176613003: [Media Router] Clean up issues related code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 97c60b2a4d4204916f94fb4734162b036ff85d49..7f28bf91a9f0feb57dd177b9ebf3924a975dc947 100644
--- a/chrome/browser/ui/toolbar/media_router_action.cc
+++ b/chrome/browser/ui/toolbar/media_router_action.cc
@@ -40,6 +40,8 @@ MediaRouterAction::MediaRouterAction(Browser* browser,
: media_router::IssuesObserver(GetMediaRouter(browser)),
media_router::MediaRoutesObserver(GetMediaRouter(browser)),
current_icon_(gfx::VectorIconId::MEDIA_ROUTER_IDLE),
+ has_issue_(false),
+ current_issue_severity_(media_router::Issue::Severity::NOTIFICATION),
has_local_display_route_(false),
delegate_(nullptr),
browser_(browser),
@@ -152,9 +154,15 @@ bool MediaRouterAction::DisabledClickOpensMenu() const {
}
void MediaRouterAction::OnIssueUpdated(const media_router::Issue* issue) {
mark a. foltz 2016/07/27 18:52:04 I don't think |issue| should be modified here. Ca
imcheng 2016/09/13 20:27:54 There was a similar comment in Takumi's patch. We
- issue_.reset(issue ? new media_router::Issue(*issue) : nullptr);
-
- MaybeUpdateIcon();
+ bool new_has_issue = (issue != nullptr);
+ media_router::Issue::Severity new_severity =
+ issue ? issue->severity() :
+ media_router::Issue::Severity::NOTIFICATION;
+ if (has_issue_ != new_has_issue || current_issue_severity_ != new_severity) {
+ has_issue_ = new_has_issue;
+ current_issue_severity_ = new_severity;
+ MaybeUpdateIcon();
+ }
}
void MediaRouterAction::OnRoutesUpdated(
@@ -239,11 +247,12 @@ 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 (has_issue_) {
+ if (current_issue_severity_ == media_router::Issue::Severity::FATAL)
return gfx::VectorIconId::MEDIA_ROUTER_ERROR;
- if (issue_->severity() == media_router::Issue::WARNING)
+ else if (current_issue_severity_ == media_router::Issue::Severity::WARNING)
return gfx::VectorIconId::MEDIA_ROUTER_WARNING;
+ // Fall through for Severity::NOTIFICATION.
}
return has_local_display_route_ ? gfx::VectorIconId::MEDIA_ROUTER_ACTIVE

Powered by Google App Engine
This is Rietveld 408576698