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

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

Issue 2166953006: Eliminate FrameMojoShell. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 5 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: 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 d3da9bb308b384272349830e88436d8758f47592..31da918f395cb1fe6f7f7e622a8947ad3037a4db 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -25,7 +25,6 @@
#include "content/browser/download/mhtml_generation_manager.h"
#include "content/browser/frame_host/cross_process_frame_connector.h"
#include "content/browser/frame_host/cross_site_transferring_request.h"
-#include "content/browser/frame_host/frame_mojo_shell.h"
#include "content/browser/frame_host/frame_tree.h"
#include "content/browser/frame_host/frame_tree_node.h"
#include "content/browser/frame_host/navigation_entry_impl.h"
@@ -82,6 +81,8 @@
#include "content/public/common/url_constants.h"
#include "content/public/common/url_utils.h"
#include "device/vibration/vibration_manager_impl.h"
+#include "media/mojo/interfaces/service_factory.mojom.h"
+#include "services/shell/public/cpp/connector.h"
#include "services/shell/public/cpp/interface_provider.h"
#include "ui/accessibility/ax_tree.h"
#include "ui/accessibility/ax_tree_update.h"
@@ -90,6 +91,9 @@
#if defined(OS_ANDROID)
#include "content/browser/mojo/service_registrar_android.h"
+#if defined(ENABLE_MOJO_CDM)
+#include "content/browser/media/android/provision_fetcher_impl.h"
+#endif
#endif
#if defined(OS_MACOSX)
@@ -172,6 +176,26 @@ void GrantFileAccess(int child_id,
}
}
+#if defined(MOJO_SHELL_CLIENT)
+// media::mojom::ServiceFactory is generated in GN builds only.
+void CreateMediaServiceFactory(
+ BrowserContext* browser_context,
+ RenderFrameHost* render_frame_host,
+ media::mojom::ServiceFactoryRequest request) {
+ shell::Connector* connector =
+ BrowserContext::GetShellConnectorFor(browser_context);
+ std::unique_ptr<shell::Connection> connection =
+ connector->Connect("mojo:media");
+#if defined(OS_ANDROID) && defined(ENABLE_MOJO_CDM)
+ connection->GetInterfaceRegistry()->AddInterface(
+ base::Bind(&ProvisionFetcherImpl::Create, this));
+#endif
+ GetContentClient()->browser()->ExposeInterfacesToMediaService(
+ connection->GetInterfaceRegistry(), render_frame_host);
+ connection->GetInterface(std::move(request));
+}
+#endif // defined(MOJO_SHELL_CLIENT)
+
} // namespace
// static
@@ -2077,11 +2101,13 @@ void RenderFrameHostImpl::RegisterMojoInterfaces() {
base::Unretained(this)));
}
- if (!frame_mojo_shell_)
- frame_mojo_shell_.reset(new FrameMojoShell(this));
-
- GetInterfaceRegistry()->AddInterface<shell::mojom::Connector>(base::Bind(
- &FrameMojoShell::BindRequest, base::Unretained(frame_mojo_shell_.get())));
+#if defined(MOJO_SHELL_CLIENT)
+ // media::mojom::ServiceFactory is generated in GN builds only.
+ GetInterfaceRegistry()->AddInterface<media::mojom::ServiceFactory>(
+ base::Bind(&CreateMediaServiceFactory,
+ base::Unretained(GetProcess()->GetBrowserContext()),
Ken Rockot(use gerrit already) 2016/07/21 22:34:32 nit: You don't need base::Unretained when not bind
+ base::Unretained(this)));
+#endif // defined(MOJO_SHELL_CLIENT)
#if defined(ENABLE_WEBVR)
const base::CommandLine& browser_command_line =

Powered by Google App Engine
This is Rietveld 408576698