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 7900a70add99e6ade2acd4533608855bcdb560a8..5e5a4fb8ae2b739cf99befc0d82b880ac6a2d06b 100644 |
--- a/chrome/browser/ui/toolbar/media_router_action.h |
+++ b/chrome/browser/ui/toolbar/media_router_action.h |
@@ -7,6 +7,7 @@ |
#include "base/scoped_observer.h" |
#include "chrome/browser/media/router/issues_observer.h" |
+#include "chrome/browser/media/router/local_media_routes_observer.h" |
#include "chrome/browser/media/router/media_routes_observer.h" |
#include "chrome/browser/ui/tabs/tab_strip_model_observer.h" |
#include "chrome/browser/ui/toolbar/media_router_contextual_menu.h" |
@@ -24,7 +25,7 @@ class MediaRouterDialogControllerImpl; |
// the toolbar. |
class MediaRouterAction : public ToolbarActionViewController, |
public media_router::IssuesObserver, |
- public media_router::MediaRoutesObserver, |
+ public media_router::LocalMediaRoutesObserver, |
public TabStripModelObserver { |
public: |
explicit MediaRouterAction(Browser* browser); |
@@ -53,9 +54,8 @@ class MediaRouterAction : public ToolbarActionViewController, |
// media_router::IssuesObserver: |
void OnIssueUpdated(const media_router::Issue* issue) override; |
- // media_router::MediaRoutesObserver: |
- void OnRoutesUpdated(const std::vector<media_router::MediaRoute>& routes) |
- override; |
+ // media_router::LocalMediaRoutesObserver: |
+ void OnLocalRouteCreated() override; |
// ToolbarStripModelObserver: |
void ActiveTabChanged(content::WebContents* old_contents, |
@@ -66,7 +66,25 @@ class MediaRouterAction : public ToolbarActionViewController, |
void OnPopupHidden(); |
void OnPopupShown(); |
+ void SetHasLocalRoute(bool has_local_route); |
+ |
private: |
+ class ActionMediaRoutesObserver : public media_router::MediaRoutesObserver { |
+ public: |
+ ActionMediaRoutesObserver(media_router::MediaRouter* router, |
+ MediaRouterAction* action); |
+ ~ActionMediaRoutesObserver() override; |
+ |
+ // media_router::MediaRoutesObserver: |
+ void OnRoutesUpdated(const std::vector<media_router::MediaRoute>& routes) |
+ override; |
+ |
+ private: |
+ MediaRouterAction* action_; |
imcheng
2015/10/01 18:46:50
MediaRouterAction* const action_;
apacible
2015/10/01 23:21:47
Done (moved to MediaRouterMojoImpl).
|
+ |
+ DISALLOW_COPY_AND_ASSIGN(ActionMediaRoutesObserver); |
+ }; |
+ |
void UpdatePopupState(); |
// Returns a reference to the MediaRouterDialogControllerImpl associated with |
@@ -112,6 +130,12 @@ class MediaRouterAction : public ToolbarActionViewController, |
Browser* const browser_; |
+ // |routes_observer_| listens for updated MediaRoutes. We only listen when |
+ // there is a local route that could be closed. |routes_observer_| is only |
+ // set and registered on creation of |this| or when |has_local_route_| is |
+ // true. |
+ scoped_ptr<media_router::MediaRoutesObserver> routes_observer_; |
+ |
// The delegate to handle platform-specific implementations. |
scoped_ptr<MediaRouterActionPlatformDelegate> platform_delegate_; |