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 8f311c9a84260ca91ba3c3d2472c90688953bbed..96206ef31e6748385142e3bb9a2f9e9276d73b5b 100644 |
| --- a/chrome/browser/media/router/mojo/media_router_mojo_impl.h |
| +++ b/chrome/browser/media/router/mojo/media_router_mojo_impl.h |
| @@ -16,6 +16,7 @@ |
| #include <vector> |
| #include "base/containers/hash_tables.h" |
| +#include "base/feature_list.h" |
| #include "base/gtest_prod_util.h" |
| #include "base/macros.h" |
| #include "base/memory/weak_ptr.h" |
| @@ -29,6 +30,7 @@ |
| #include "chrome/common/media_router/issue.h" |
| #include "chrome/common/media_router/mojo/media_router.mojom.h" |
| #include "chrome/common/media_router/route_request_result.h" |
| +#include "content/public/browser/browser_thread.h" |
| #include "mojo/public/cpp/bindings/binding.h" |
| namespace content { |
| @@ -42,7 +44,12 @@ class Extension; |
| namespace media_router { |
| +#if !defined(OS_ANDROID) |
| +extern const base::Feature kEnableBrowserSideDiscovery; |
| +#endif |
| + |
| enum class MediaRouteProviderWakeReason; |
| +class DialMediaSinkService; |
| // MediaRouter implementation that delegates calls to the component extension. |
| // Also handles the suspension and wakeup of the component extension. |
| @@ -214,8 +221,8 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| // Standard constructor, used by |
| // MediaRouterMojoImplFactory::GetApiForBrowserContext. |
| - explicit MediaRouterMojoImpl( |
| - extensions::EventPageTracker* event_page_tracker); |
| + explicit MediaRouterMojoImpl(extensions::EventPageTracker* event_page_tracker, |
| + content::BrowserContext* context); |
| // Binds |this| to a Mojo interface request, so that clients can acquire a |
| // handle to a MediaRouterMojoImpl instance via the Mojo service connector. |
| @@ -389,6 +396,14 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| void OnFirewallCheckComplete(bool firewall_can_use_local_ports); |
| #endif |
| +#if !defined(OS_ANDROID) |
|
mark a. foltz
2017/04/26 23:52:55
Do we even compile MediaRouterMojoImpl for Android
zhaobin
2017/05/03 01:53:59
Done.
|
| + // Start browser side sink discovery. |
| + void StartBrowserSideDiscovery(); |
| + |
| + // Invoked when browser side sink disocvery finished. |
| + void OnDialMediaSinkDiscovered(const std::vector<MediaSinkInternal>& sinks); |
| +#endif |
| + |
| // Requests MRPM to update media sinks. This allows MRPs that only do |
| // discovery on sink queries an opportunity to update discovery results |
| // even if the MRP SinkAvailability is marked UNAVAILABLE. |
| @@ -442,6 +457,10 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| // therefore stale. |
| std::string instance_id_; |
| + // Whether or not to enable browser side device discovery. Controlled by |
| + // feature |kEnableBrowserSideDiscovery|. |
| + bool enable_browser_side_discovery_; |
|
mark a. foltz
2017/04/26 23:52:55
We probably want flags for individual providers (D
zhaobin
2017/05/03 01:53:59
Done.
|
| + |
| // The last reported sink availability from the media route provider manager. |
| mojom::MediaRouter::SinkAvailability availability_; |
| @@ -459,6 +478,13 @@ class MediaRouterMojoImpl : public MediaRouterBase, |
| // extension. |
| std::unordered_map<MediaRoute::Id, MediaRouteController*> route_controllers_; |
| + // Media sink service for DIAL devices. |
| + std::unique_ptr<DialMediaSinkService, |
| + content::BrowserThread::DeleteOnIOThread> |
| + dial_media_sink_service_; |
| + |
| + content::BrowserContext* context_; |
| + |
| #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 |