Index: chrome/browser/ui/toolbar/media_router_action.h |
diff --git a/chrome/browser/ui/toolbar/media_router_action.h b/chrome/browser/ui/toolbar/media_router_action.h |
index ace06a32f18e0cdfe7f86ea861e907c9cdadf917..d7a5dba11f65f42406424d260a7bb135ba95f4ea 100644 |
--- a/chrome/browser/ui/toolbar/media_router_action.h |
+++ b/chrome/browser/ui/toolbar/media_router_action.h |
@@ -13,6 +13,7 @@ |
#include "chrome/browser/ui/toolbar/media_router_contextual_menu.h" |
#include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h" |
#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" |
+#include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h" |
#include "ui/gfx/vector_icons_public.h" |
class Browser; |
@@ -28,7 +29,8 @@ class MediaRouterDialogControllerImpl; |
class MediaRouterAction : public ToolbarActionViewController, |
public media_router::IssuesObserver, |
public media_router::MediaRoutesObserver, |
- public TabStripModelObserver { |
+ public TabStripModelObserver, |
+ public ToolbarActionsBarObserver { |
public: |
MediaRouterAction(Browser* browser, ToolbarActionsBar* toolbar_actions_bar); |
~MediaRouterAction() override; |
@@ -69,6 +71,18 @@ class MediaRouterAction : public ToolbarActionViewController, |
void OnPopupHidden(); |
void OnPopupShown(); |
+ virtual void UpdateVisibility(); |
+ |
+ // Toggle the "Always show icon" option. |
+ void ToggleVisibilityPreference(); |
+ void SetVisibilityPreference(bool always_show); |
msw
2016/07/26 19:59:31
This is only called from ToggleVisibilityPreferenc
takumif
2016/07/28 20:04:10
Done.
|
+ |
+ // ToolbarActionsBarObserver: |
+ void OnToolbarActionsBarAnimationEnded() override; |
+ |
+ protected: |
+ // For accessing from tests |
msw
2016/07/26 19:59:31
nit: add a trailing period.
takumif
2016/07/28 20:04:10
Done.
|
+ base::WeakPtr<MediaRouterAction> GetWeakPtr(); |
private: |
// Called when a new browser window is opened, the user switches tabs in the |
@@ -92,6 +106,11 @@ class MediaRouterAction : public ToolbarActionViewController, |
// updates |current_icon_|. |
void MaybeUpdateIcon(); |
+ // Returns true if the "Always show icon" option is unchecked, and the icon |
+ // gets hidden whenever there are no local media routes and the popup is |
+ // closed. |
+ bool IsEphemeral(); |
msw
2016/07/26 19:59:31
nit: consider "ShouldAlwaysShowIcon", "GetAlwaysSh
takumif
2016/07/28 20:04:10
Done.
|
+ |
gfx::VectorIconId GetCurrentIcon() const; |
// The current icon to show. This is updated based on the current issues and |
@@ -117,6 +136,8 @@ class MediaRouterAction : public ToolbarActionViewController, |
ScopedObserver<TabStripModel, TabStripModelObserver> |
tab_strip_model_observer_; |
+ ScopedObserver<ToolbarActionsBar, ToolbarActionsBarObserver> |
+ toolbar_actions_bar_observer_; |
base::WeakPtrFactory<MediaRouterAction> weak_ptr_factory_; |