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

Unified Diff: content/browser/frame_host/render_frame_host_impl.cc

Issue 2521133002: media: Add MediaInterfaceProxy (Closed)
Patch Set: comments addressed Created 4 years 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
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.h ('k') | content/browser/media/media_interface_proxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/frame_host/render_frame_host_impl.cc
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 8556fb22081e5b385925be502ca5585fa0bcaa37..157025ea49b0c302ed875883d961a097eafc1566 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -38,6 +38,7 @@
#include "content/browser/frame_host/render_frame_proxy_host.h"
#include "content/browser/frame_host/render_widget_host_view_child_frame.h"
#include "content/browser/loader/resource_dispatcher_host_impl.h"
+#include "content/browser/media/media_interface_proxy.h"
#include "content/browser/media/session/media_session_service_impl.h"
#include "content/browser/permissions/permission_service_context.h"
#include "content/browser/permissions/permission_service_impl.h"
@@ -123,10 +124,6 @@
#include "content/browser/frame_host/popup_menu_helper_mac.h"
#endif
-#if defined(ENABLE_MOJO_CDM)
-#include "content/public/browser/provision_fetcher_impl.h"
-#endif
-
#if defined(ENABLE_WEBVR)
#include "device/vr/vr_service_impl.h" // nogncheck
#endif
@@ -856,38 +853,6 @@ void RenderFrameHostImpl::RenderProcessGone(SiteInstanceImpl* site_instance) {
set_nav_entry_id(0);
}
-void RenderFrameHostImpl::Create(
- const service_manager::Identity& remote_identity,
- media::mojom::InterfaceFactoryRequest request) {
- auto registry = base::MakeUnique<service_manager::InterfaceRegistry>(
- std::string());
-#if defined(ENABLE_MOJO_CDM)
- net::URLRequestContextGetter* context_getter =
- BrowserContext::GetDefaultStoragePartition(
- GetProcess()->GetBrowserContext())
- ->GetURLRequestContext();
- registry->AddInterface(
- base::Bind(&ProvisionFetcherImpl::Create, context_getter));
-#endif // defined(ENABLE_MOJO_CDM)
- GetContentClient()->browser()->ExposeInterfacesToMediaService(registry.get(),
- this);
- service_manager::mojom::InterfaceProviderPtr interfaces;
- registry->Bind(GetProxy(&interfaces),
- service_manager::Identity(),
- service_manager::InterfaceProviderSpec(),
- service_manager::Identity(),
- service_manager::InterfaceProviderSpec());
- media_registries_.push_back(std::move(registry));
-
- // TODO(slan): Use the BrowserContext Connector instead. See crbug.com/638950.
- media::mojom::MediaServicePtr media_service;
- service_manager::Connector* connector =
- ServiceManagerConnection::GetForProcess()->GetConnector();
- connector->ConnectToInterface("media", &media_service);
- media_service->CreateInterfaceFactory(std::move(request),
- std::move(interfaces));
-}
-
bool RenderFrameHostImpl::CreateRenderFrame(int proxy_routing_id,
int opener_routing_id,
int parent_routing_id,
@@ -3261,6 +3226,21 @@ void RenderFrameHostImpl::DeleteWebBluetoothService() {
web_bluetooth_service_.reset();
}
+void RenderFrameHostImpl::Create(
+ const service_manager::Identity& remote_identity,
+ media::mojom::InterfaceFactoryRequest request) {
+ DCHECK(!media_interface_proxy_);
+ media_interface_proxy_.reset(new MediaInterfaceProxy(
+ this, std::move(request),
+ base::Bind(&RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError,
+ base::Unretained(this))));
+}
+
+void RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError() {
+ DCHECK(media_interface_proxy_);
+ media_interface_proxy_.reset();
+}
+
std::unique_ptr<NavigationHandleImpl>
RenderFrameHostImpl::TakeNavigationHandleForCommit(
const FrameHostMsg_DidCommitProvisionalLoad_Params& params) {
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.h ('k') | content/browser/media/media_interface_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698