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

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

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.h
diff --git a/chrome/browser/ui/toolbar/media_router_action_controller.h b/chrome/browser/ui/toolbar/media_router_action_controller.h
index 9965f6b3c2e04380e4c762a919d5934457aad0dd..d2bfda782ce451d7fe60a21c9abe0a6fba2e1abd 100644
--- a/chrome/browser/ui/toolbar/media_router_action_controller.h
+++ b/chrome/browser/ui/toolbar/media_router_action_controller.h
@@ -22,6 +22,13 @@ class MediaRouterActionController : public media_router::IssuesObserver,
public media_router::MediaRoutesObserver {
public:
explicit MediaRouterActionController(Profile* profile);
+ // Constructor for injecting dependencies in tests.
+ MediaRouterActionController(
+ Profile* profile,
+ media_router::MediaRouter* router,
+ ComponentMigrationHelper::ComponentActionDelegate*
+ component_action_delegate,
+ ComponentMigrationHelper* component_migration_helper);
~MediaRouterActionController() override;
// media_router::IssuesObserver:
@@ -32,22 +39,22 @@ class MediaRouterActionController : public media_router::IssuesObserver,
const std::vector<media_router::MediaRoute::Id>&
joinable_route_ids) override;
+ // Called when a Media Router dialog is shown or hidden, and updates the
+ // visibility of the action icon. Overridden in tests.
+ virtual void OnDialogShown();
+ virtual void OnDialogHidden();
+
private:
friend class MediaRouterActionControllerUnitTest;
- FRIEND_TEST_ALL_PREFIXES(MediaRouterActionControllerUnitTest, EphemeralIcon);
-
- // Constructor for injecting dependencies in tests.
- MediaRouterActionController(
- Profile* profile,
- media_router::MediaRouter* router,
- ComponentMigrationHelper::ComponentActionDelegate*
- component_action_delegate,
- ComponentMigrationHelper* component_migration_helper);
+ FRIEND_TEST_ALL_PREFIXES(MediaRouterActionControllerUnitTest,
+ EphemeralIconForRoutesAndIssues);
+ FRIEND_TEST_ALL_PREFIXES(MediaRouterActionControllerUnitTest,
+ EphemeralIconForDialog);
// Adds or removes the Media Router action icon to/from
// |component_action_delegate_| if necessary, depending on whether or not
- // we have issues or local routes.
- void MaybeAddOrRemoveAction();
+ // we have issues, local routes or a dialog.
+ virtual void MaybeAddOrRemoveAction();
// Returns |true| if the Media Router action should be present on the toolbar
// or the overflow menu.
@@ -69,6 +76,9 @@ class MediaRouterActionController : public media_router::IssuesObserver,
bool has_issue_ = false;
bool has_local_display_route_ = false;
+ // The number of dialogs that are currently open.
+ size_t dialog_count_ = 0;
+
PrefChangeRegistrar pref_change_registrar_;
DISALLOW_COPY_AND_ASSIGN(MediaRouterActionController);

Powered by Google App Engine
This is Rietveld 408576698