| Index: content/browser/mojo/mojo_shell_context.cc
|
| diff --git a/content/browser/mojo/mojo_shell_context.cc b/content/browser/mojo/mojo_shell_context.cc
|
| index 31f449aec51726fefed10b822d0ef210d6b04a46..4b0e3beea3d07d6ae565d8e7d6d5694a9f533d8f 100644
|
| --- a/content/browser/mojo/mojo_shell_context.cc
|
| +++ b/content/browser/mojo/mojo_shell_context.cc
|
| @@ -13,6 +13,7 @@
|
| #include "base/thread_task_runner_handle.h"
|
| #include "content/browser/gpu/gpu_process_host.h"
|
| #include "content/common/gpu/gpu_process_launch_causes.h"
|
| +#include "content/common/mojo/mojo_shell_connection_impl.h"
|
| #include "content/common/mojo/static_application_loader.h"
|
| #include "content/common/process_control.mojom.h"
|
| #include "content/public/browser/browser_thread.h"
|
| @@ -27,12 +28,17 @@
|
| #include "mojo/shell/application_loader.h"
|
| #include "mojo/shell/connect_params.h"
|
| #include "mojo/shell/identity.h"
|
| +#include "mojo/shell/native_runner.h"
|
| #include "mojo/shell/public/cpp/shell_client.h"
|
| +#include "mojo/shell/public/interfaces/shell.mojom.h"
|
| +#include "mojo/shell/runner/host/in_process_native_runner.h"
|
|
|
| namespace content {
|
|
|
| namespace {
|
|
|
| +const char kBrowserAppUrl[] = "exe:chrome";
|
| +
|
| // An extra set of apps to register on initialization, if set by a test.
|
| const MojoShellContext::StaticApplicationMap* g_applications_for_test;
|
|
|
| @@ -201,8 +207,12 @@ MojoShellContext::MojoShellContext() {
|
| BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE);
|
| bool register_mojo_url_schemes = false;
|
|
|
| + scoped_ptr<mojo::shell::NativeRunnerFactory> native_runner_factory(
|
| + new mojo::shell::InProcessNativeRunnerFactory(
|
| + BrowserThread::GetBlockingPool()));
|
| application_manager_.reset(new mojo::shell::ApplicationManager(
|
| - nullptr, file_task_runner.get(), register_mojo_url_schemes, nullptr));
|
| + std::move(native_runner_factory), file_task_runner.get(),
|
| + register_mojo_url_schemes, nullptr));
|
|
|
| application_manager_->set_default_loader(
|
| scoped_ptr<mojo::shell::ApplicationLoader>(new DefaultApplicationLoader));
|
| @@ -249,9 +259,16 @@ MojoShellContext::MojoShellContext() {
|
| scoped_ptr<mojo::shell::ApplicationLoader>(new GpuProcessLoader()),
|
| GURL("mojo:media"));
|
| #endif
|
| +
|
| + if (!IsRunningInMojoShell()) {
|
| + MojoShellConnectionImpl::Create(
|
| + application_manager_->InitInstanceForEmbedder(GURL(kBrowserAppUrl)));
|
| + }
|
| }
|
|
|
| MojoShellContext::~MojoShellContext() {
|
| + if (!IsRunningInMojoShell())
|
| + MojoShellConnectionImpl::Destroy();
|
| }
|
|
|
| // static
|
|
|