| Index: chrome/browser/media/router/mojo/media_router_mojo_impl.h
|
| diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl.h b/chrome/browser/media/router/mojo/media_router_mojo_impl.h
|
| index 8601ffeac592a74f94f67a6ec435b5ce1fc446a4..f3b614146e27f45f37e310b1ed559a21aba94eff 100644
|
| --- a/chrome/browser/media/router/mojo/media_router_mojo_impl.h
|
| +++ b/chrome/browser/media/router/mojo/media_router_mojo_impl.h
|
| @@ -109,6 +109,8 @@ class MediaRouterMojoImpl : public MediaRouterBase,
|
| const std::string& search_input,
|
| const std::string& domain,
|
| const MediaSinkSearchResponseCallback& sink_callback) override;
|
| + scoped_refptr<MediaRouteController> GetRouteController(
|
| + const MediaRoute::Id& route_id) override;
|
|
|
| const std::string& media_route_provider_extension_id() const {
|
| return media_route_provider_extension_id_;
|
| @@ -142,6 +144,15 @@ class MediaRouterMojoImpl : public MediaRouterBase,
|
| FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest,
|
| RouteMessagesMultipleObservers);
|
| FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest, HandleIssue);
|
| + FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest, GetRouteController);
|
| + FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest,
|
| + GetRouteControllerMultipleTimes);
|
| + FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest,
|
| + GetRouteControllerAfterInvalidation);
|
| + FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest,
|
| + GetRouteControllerAfterRouteInvalidation);
|
| + FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest,
|
| + FailToCreateRouteController);
|
| FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoExtensionTest,
|
| DeferredBindingAndSuspension);
|
| FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoExtensionTest,
|
| @@ -234,6 +245,8 @@ class MediaRouterMojoImpl : public MediaRouterBase,
|
| void UnregisterIssuesObserver(IssuesObserver* observer) override;
|
| void RegisterRouteMessageObserver(RouteMessageObserver* observer) override;
|
| void UnregisterRouteMessageObserver(RouteMessageObserver* observer) override;
|
| + void DetachRouteController(const MediaRoute::Id& route_id,
|
| + MediaRouteController* controller) override;
|
|
|
| // Notifies |observer| of any existing cached routes, if it is still
|
| // registered.
|
| @@ -283,6 +296,9 @@ class MediaRouterMojoImpl : public MediaRouterBase,
|
| const std::string& search_input,
|
| const std::string& domain,
|
| const MediaSinkSearchResponseCallback& sink_callback);
|
| + void DoCreateMediaRouteController(const MediaRoute::Id& route_id,
|
| + base::Callback<void(bool)> callback);
|
| + void DoSetMediaRouteStatusObserver(const MediaRoute::Id& route_id);
|
|
|
| // Error handler callback for |binding_| and |media_route_provider_|.
|
| void OnConnectionError();
|
| @@ -373,6 +389,13 @@ class MediaRouterMojoImpl : public MediaRouterBase,
|
| void UpdateMediaSinks(const MediaSource::Id& source_id);
|
| void DoUpdateMediaSinks(const MediaSource::Id& source_id);
|
|
|
| + // Invalidates and removes controllers from |route_controllers_| whose media
|
| + // routes do not appear in |routes|.
|
| + void RemoveInvalidRouteControllers(const std::vector<MediaRoute>& routes);
|
| +
|
| + // Callback called by MRP's CreateMediaRouteController().
|
| + void OnMediaControllerCreated(const MediaRoute::Id& route_id, bool success);
|
| +
|
| // Pending requests queued to be executed once component extension
|
| // becomes ready.
|
| std::deque<base::Closure> pending_requests_;
|
| @@ -426,6 +449,10 @@ class MediaRouterMojoImpl : public MediaRouterBase,
|
| // initial event page wakeup attempt.
|
| bool provider_version_was_recorded_ = false;
|
|
|
| + // Stores route controllers that can be used to send media commands to the
|
| + // extension.
|
| + std::unordered_map<MediaRoute::Id, MediaRouteController*> route_controllers_;
|
| +
|
| #if defined(OS_WIN)
|
| // A pair of flags to ensure that mDNS discovery is only enabled on Windows
|
| // when there will be appropriate context for the user to associate a firewall
|
|
|