Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2397)

Unified Diff: chrome/browser/media/router/mojo/media_router_mojo_impl.h

Issue 2837363002: [Media Router] Use DialMediaSinkService in MediaRouterMojoImpl (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698