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

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

Issue 2837363002: [Media Router] Use DialMediaSinkService in MediaRouterMojoImpl (Closed)
Patch Set: resolve code review comments from Mark 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..60f6d31154b9d14105ad8bc7cd70a18870ea445a 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 {
@@ -40,9 +42,17 @@ class EventPageTracker;
class Extension;
}
+namespace net {
+class URLRequestContextGetter;
+}
+
namespace media_router {
+extern const base::Feature kEnableDialLocalDiscovery;
mark a. foltz 2017/05/01 20:32:57 Can these go in media_router_feature.cc and expose
zhaobin 2017/05/03 01:53:59 Done.
+extern const base::Feature kEnableCastDiscovery;
mark a. foltz 2017/05/01 20:32:57 Is it okay to do static initialization of base::Fe
zhaobin 2017/05/03 01:54:00 Code removed. Seems fine. https://cs.chromium.org/
+
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 +224,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 +399,12 @@ class MediaRouterMojoImpl : public MediaRouterBase,
void OnFirewallCheckComplete(bool firewall_can_use_local_ports);
#endif
+ // Start browser side sink discovery.
+ void StartBrowserSideDiscovery(net::URLRequestContextGetter* request_context);
mark a. foltz 2017/05/01 20:32:57 Just StartDiscovery()? Since this is running in t
zhaobin 2017/05/03 01:53:59 Done.
+
+ // Invoked when browser side sink disocvery finished.
mark a. foltz 2017/05/01 20:32:57 Typo in discovery
zhaobin 2017/05/03 01:53:59 Done.
+ void OnDialMediaSinkDiscovered(const std::vector<MediaSinkInternal>& sinks);
+
// 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.
@@ -459,6 +475,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>
mark a. foltz 2017/05/01 20:32:57 There could be a shutdown race condition here - th
zhaobin 2017/05/03 01:53:59 Per discussion with Derek, we are going to make Di
+ 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