Chromium Code Reviews| 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_; |