Chromium Code Reviews| Index: chrome/browser/media/router/media_router_mojo_impl.h |
| diff --git a/chrome/browser/media/router/media_router_mojo_impl.h b/chrome/browser/media/router/media_router_mojo_impl.h |
| index a344e83c4445c78bfd79b0b27c64d662c914d43d..d567fc9e45c951b0a51887c511fa119a023c0847 100644 |
| --- a/chrome/browser/media/router/media_router_mojo_impl.h |
| +++ b/chrome/browser/media/router/media_router_mojo_impl.h |
| @@ -24,6 +24,7 @@ |
| #include "chrome/browser/media/router/issue_manager.h" |
| #include "chrome/browser/media/router/media_router.h" |
| #include "chrome/browser/media/router/media_router.mojom.h" |
| +#include "chrome/browser/media/router/media_routes_observer.h" |
| #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" |
| namespace content { |
| @@ -83,6 +84,7 @@ class MediaRouterMojoImpl : public MediaRouter, |
| void AddIssue(const Issue& issue) override; |
| void ClearIssue(const Issue::Id& issue_id) override; |
| void OnPresentationSessionDetached(const MediaRoute::Id& route_id) override; |
| + bool HasLocalRoute() const override; |
| const std::string& media_route_provider_extension_id() const { |
| return media_route_provider_extension_id_; |
| @@ -92,6 +94,8 @@ class MediaRouterMojoImpl : public MediaRouter, |
| instance_id_ = instance_id; |
| } |
| + void UpdateHasLocalRoute(bool has_local_route); |
|
imcheng
2015/10/02 19:54:43
ok, I see now why you had the MediaRoutesObserver
apacible
2015/10/02 20:45:48
No problem, switched back.
|
| + |
| private: |
| friend class MediaRouterFactory; |
| friend class MediaRouterMojoExtensionTest; |
| @@ -138,6 +142,10 @@ class MediaRouterMojoImpl : public MediaRouter, |
| PresentationSessionMessagesObserver* observer) override; |
| void UnregisterPresentationSessionMessagesObserver( |
| PresentationSessionMessagesObserver* observer) override; |
| + void RegisterLocalMediaRoutesObserver( |
| + LocalMediaRoutesObserver* observer) override; |
| + void UnregisterLocalMediaRoutesObserver( |
| + LocalMediaRoutesObserver* observer) override; |
| // These calls invoke methods in the component extension via Mojo. |
| void DoCreateRoute(const MediaSource::Id& source_id, |
| @@ -187,6 +195,14 @@ class MediaRouterMojoImpl : public MediaRouter, |
| mojo::Array<interfaces::MediaSinkPtr> sinks) override; |
| void OnRoutesUpdated(mojo::Array<interfaces::MediaRoutePtr> routes) override; |
| + // Converts the callback result of calling Mojo CreateRoute()/JoinRoute() |
| + // into a local callback. |
| + void RouteResponseReceived( |
| + const std::string& presentation_id, |
| + const std::vector<MediaRouteResponseCallback>& callbacks, |
| + interfaces::MediaRoutePtr media_route, |
| + const mojo::String& error_text); |
| + |
| // Pending requests queued to be executed once component extension |
| // becomes ready. |
| std::vector<base::Closure> pending_requests_; |
| @@ -195,6 +211,8 @@ class MediaRouterMojoImpl : public MediaRouter, |
| scoped_ptr<base::ObserverList<MediaSinksObserver>>> |
| sinks_observers_; |
| + base::ObserverList<LocalMediaRoutesObserver> local_routes_observers_; |
| + |
| base::ObserverList<MediaRoutesObserver> routes_observers_; |
| using PresentationSessionMessagesObserverList = |
| @@ -210,6 +228,8 @@ class MediaRouterMojoImpl : public MediaRouter, |
| IssueManager issue_manager_; |
| + scoped_ptr<media_router::MediaRoutesObserver> routes_observer_; |
| + |
| // Binds |this| to a Mojo connection stub for interfaces::MediaRouter. |
| scoped_ptr<mojo::Binding<interfaces::MediaRouter>> binding_; |
| @@ -234,6 +254,8 @@ class MediaRouterMojoImpl : public MediaRouter, |
| // therefore stale. |
| std::string instance_id_; |
| + bool has_local_route_; |
| + |
| base::ThreadChecker thread_checker_; |
| DISALLOW_COPY_AND_ASSIGN(MediaRouterMojoImpl); |