Chromium Code Reviews| 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..25781772a937e245e6ff56ab603d0db5ab98a548 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,9 @@ 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; |
| + void OnRouteControllerDestroyed(const MediaRoute::Id& route_id) override; |
| const std::string& media_route_provider_extension_id() const { |
| return media_route_provider_extension_id_; |
| @@ -142,6 +145,8 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest, |
| RouteMessagesMultipleObservers); |
| FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest, HandleIssue); |
| + FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest, |
| + GetRouteControllerAfterRouteInvalidation); |
| FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoExtensionTest, |
| DeferredBindingAndSuspension); |
| FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoExtensionTest, |
| @@ -373,6 +378,13 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| void UpdateMediaSinks(const MediaSource::Id& source_id); |
| void DoUpdateMediaSinks(const MediaSource::Id& source_id); |
| + // Removes controllers from |route_controllers_| whose media routes do not |
|
imcheng
2017/03/28 01:18:38
Invalidates and removes
takumif
2017/03/29 02:34:49
Done.
|
| + // 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 +438,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 |