| Index: chrome/browser/ui/webui/media_router/media_router_ui.h
|
| diff --git a/chrome/browser/ui/webui/media_router/media_router_ui.h b/chrome/browser/ui/webui/media_router/media_router_ui.h
|
| index 50804a91e1c7e340a5f2c96ba99c276853cb3abd..3b7a7ae248d86ecb9110947ab0707c20d90aceeb 100644
|
| --- a/chrome/browser/ui/webui/media_router/media_router_ui.h
|
| +++ b/chrome/browser/ui/webui/media_router/media_router_ui.h
|
| @@ -137,6 +137,10 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
|
| return joinable_route_ids_;
|
| }
|
| const std::set<MediaCastMode>& cast_modes() const { return cast_modes_; }
|
| + const std::unordered_map<MediaRoute::Id, MediaCastMode>& current_cast_modes()
|
| + const {
|
| + return current_cast_modes_;
|
| + }
|
| const content::WebContents* initiator() const { return initiator_; }
|
|
|
| // Marked virtual for tests.
|
| @@ -159,6 +163,12 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
|
| UIMediaRoutesObserverFiltersNonDisplayRoutes);
|
| FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
|
| UIMediaRoutesObserverFiltersNonDisplayJoinableRoutes);
|
| + FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
|
| + UIMediaRoutesObserverAssignsCurrentCastModes);
|
| + FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
|
| + UIMediaRoutesObserverSkipsUnavailableCastModes);
|
| + FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
|
| + UIMediaRoutesObserverFiltersNonDisplayJoinableRoutes);
|
| FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, GetExtensionNameExtensionPresent);
|
| FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
|
| GetExtensionNameEmptyWhenNotInstalled);
|
| @@ -172,11 +182,17 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
|
|
|
| class UIMediaRoutesObserver : public MediaRoutesObserver {
|
| public:
|
| - using RoutesUpdatedCallback =
|
| - base::Callback<void(const std::vector<MediaRoute>&,
|
| - const std::vector<MediaRoute::Id>&)>;
|
| - UIMediaRoutesObserver(MediaRouter* router, const MediaSource::Id& source_id,
|
| - const RoutesUpdatedCallback& callback);
|
| + using RoutesUpdatedCallback = base::Callback<void(
|
| + const std::vector<MediaRoute>&,
|
| + const std::vector<MediaRoute::Id>&,
|
| + const std::unordered_map<MediaRoute::Id, MediaCastMode>&)>;
|
| + using SourceCastModeMapCallback =
|
| + base::Callback<std::unordered_map<MediaSource::Id, MediaCastMode>()>;
|
| + UIMediaRoutesObserver(
|
| + MediaRouter* router,
|
| + const MediaSource::Id& source_id,
|
| + const SourceCastModeMapCallback& source_cast_mode_callback,
|
| + const RoutesUpdatedCallback& callback);
|
| ~UIMediaRoutesObserver() override;
|
|
|
| // MediaRoutesObserver
|
| @@ -185,7 +201,8 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
|
| const std::vector<MediaRoute::Id>& joinable_route_ids) override;
|
|
|
| private:
|
| - // Callback to the owning MediaRouterUI instance.
|
| + // Callbacks to the owning MediaRouterUI instance.
|
| + SourceCastModeMapCallback source_cast_mode_callback_;
|
| RoutesUpdatedCallback callback_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(UIMediaRoutesObserver);
|
| @@ -203,9 +220,15 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
|
| // Ignored if the UI is not yet initialized.
|
| void SetIssue(const Issue* issue);
|
|
|
| + // Called by |routes_observer_| to get an updated map from media sources to
|
| + // their current cast mode.
|
| + std::unordered_map<MediaSource::Id, MediaCastMode> GetAvailableSourceMap();
|
| +
|
| // Called by |routes_observer_| when the set of active routes has changed.
|
| void OnRoutesUpdated(const std::vector<MediaRoute>& routes,
|
| - const std::vector<MediaRoute::Id>& joinable_route_ids);
|
| + const std::vector<MediaRoute::Id>& joinable_route_ids,
|
| + const std::unordered_map<MediaRoute::Id, MediaCastMode>&
|
| + current_cast_modes);
|
|
|
| // Callback passed to MediaRouter to receive response to route creation
|
| // requests.
|
| @@ -283,6 +306,7 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
|
| std::vector<MediaRoute> routes_;
|
| std::vector<MediaRoute::Id> joinable_route_ids_;
|
| CastModeSet cast_modes_;
|
| + std::unordered_map<MediaRoute::Id, MediaCastMode> current_cast_modes_;
|
|
|
| std::unique_ptr<QueryResultManager> query_result_manager_;
|
|
|
|
|