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

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

Issue 2410553002: Show Media Router toolbar icon ephemerally for MR dialogs (Closed)
Patch Set: DISALLOW_COPY_AND_ASSIGN MockMediaRouterActionController Created 4 years, 1 month 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_controller.cc
diff --git a/chrome/browser/ui/toolbar/media_router_action_controller.cc b/chrome/browser/ui/toolbar/media_router_action_controller.cc
index 722745255b949eb1d22bd56fda177439e377fe63..bc46d00cb20b96a8cddf54d9589457ef7f914065 100644
--- a/chrome/browser/ui/toolbar/media_router_action_controller.cc
+++ b/chrome/browser/ui/toolbar/media_router_action_controller.cc
@@ -15,9 +15,13 @@ MediaRouterActionController::MediaRouterActionController(Profile* profile)
profile,
media_router::MediaRouterFactory::GetApiForBrowserContext(profile),
ToolbarActionsModel::Get(profile),
- ToolbarActionsModel::Get(profile)->component_migration_helper()) {}
+ ToolbarActionsModel::Get(profile)->component_migration_helper()) {
+ DCHECK(component_action_delegate_);
+ DCHECK(component_migration_helper_);
+}
MediaRouterActionController::~MediaRouterActionController() {
+ DCHECK_EQ(dialog_count_, 0u);
UnregisterObserver(); // media_router::IssuesObserver.
}
@@ -39,6 +43,18 @@ void MediaRouterActionController::OnRoutesUpdated(
MaybeAddOrRemoveAction();
}
+void MediaRouterActionController::OnDialogShown() {
+ dialog_count_++;
+ MaybeAddOrRemoveAction();
+}
+
+void MediaRouterActionController::OnDialogHidden() {
+ DCHECK_GT(dialog_count_, 0u);
+ if (dialog_count_)
+ dialog_count_--;
+ MaybeAddOrRemoveAction();
+}
+
MediaRouterActionController::MediaRouterActionController(
Profile* profile,
media_router::MediaRouter* router,
@@ -51,7 +67,6 @@ MediaRouterActionController::MediaRouterActionController(
component_action_delegate_(component_action_delegate),
component_migration_helper_(component_migration_helper) {
DCHECK(profile_);
- DCHECK(component_action_delegate_);
RegisterObserver(); // media_router::IssuesObserver.
pref_change_registrar_.Init(profile->GetPrefs());
pref_change_registrar_.Add(
@@ -63,9 +78,10 @@ MediaRouterActionController::MediaRouterActionController(
void MediaRouterActionController::MaybeAddOrRemoveAction() {
if (ShouldEnableAction()) {
if (!component_action_delegate_->HasComponentAction(
- ComponentToolbarActionsFactory::kMediaRouterActionId))
+ ComponentToolbarActionsFactory::kMediaRouterActionId)) {
component_action_delegate_->AddComponentAction(
ComponentToolbarActionsFactory::kMediaRouterActionId);
+ }
} else if (component_action_delegate_->HasComponentAction(
ComponentToolbarActionsFactory::kMediaRouterActionId)) {
component_action_delegate_->RemoveComponentAction(
@@ -74,7 +90,7 @@ void MediaRouterActionController::MaybeAddOrRemoveAction() {
}
bool MediaRouterActionController::ShouldEnableAction() const {
- return has_local_display_route_ || has_issue_ ||
+ return has_local_display_route_ || has_issue_ || dialog_count_ ||
component_migration_helper_->GetComponentActionPref(
ComponentToolbarActionsFactory::kMediaRouterActionId);
}

Powered by Google App Engine
This is Rietveld 408576698