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

Unified Diff: content/child/child_thread_impl.cc

Issue 2096643002: Eliminate MojoApplicationHost (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mah3
Patch Set: . Created 4 years, 6 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
« no previous file with comments | « content/child/child_thread_impl.h ('k') | content/child/mojo/mojo_application.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/child/child_thread_impl.cc
diff --git a/content/child/child_thread_impl.cc b/content/child/child_thread_impl.cc
index abff09fea9eae1e11182a43a6de4915aa278a628..184c32956f52ea61f8112529131ed5cdc9fb5ab4 100644
--- a/content/child/child_thread_impl.cc
+++ b/content/child/child_thread_impl.cc
@@ -41,7 +41,6 @@
#include "content/child/fileapi/file_system_dispatcher.h"
#include "content/child/fileapi/webfilesystem_impl.h"
#include "content/child/memory/child_memory_message_filter.h"
-#include "content/child/mojo/mojo_application.h"
#include "content/child/notifications/notification_dispatcher.h"
#include "content/child/power_monitor_broadcast_source.h"
#include "content/child/push_messaging/push_dispatcher.h"
@@ -54,9 +53,9 @@
#include "content/child/websocket_message_filter.h"
#include "content/common/child_process_messages.h"
#include "content/common/in_process_child_thread_params.h"
-#include "content/common/mojo/mojo_shell_connection_impl.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/mojo_channel_switches.h"
+#include "content/public/common/mojo_shell_connection.h"
#include "ipc/attachment_broker.h"
#include "ipc/attachment_broker_unprivileged.h"
#include "ipc/ipc_channel_mojo.h"
@@ -401,12 +400,6 @@ void ChildThreadImpl::Init(const Options& options) {
mojo_ipc_support_.reset(new mojo::edk::ScopedIPCSupport(GetIOTaskRunner()));
InitializeMojoIPCChannel();
}
- if (shell::ShellIsRemote()) {
- MojoShellConnection::SetForProcess(
- MojoShellConnection::Create(
- shell::GetShellClientRequestFromCommandLine()));
- }
- mojo_application_.reset(new MojoApplication());
std::string mojo_application_token;
if (!IsInBrowserProcess()) {
mojo_application_token =
@@ -415,8 +408,12 @@ void ChildThreadImpl::Init(const Options& options) {
} else {
mojo_application_token = options.in_process_application_token;
}
- if (!mojo_application_token.empty())
- mojo_application_->InitWithToken(mojo_application_token);
+ mojo::ScopedMessagePipeHandle handle =
+ mojo::edk::CreateChildMessagePipe(mojo_application_token);
+ DCHECK(handle.is_valid());
+ mojo_shell_connection_ = MojoShellConnection::Create(
+ mojo::MakeRequest<shell::mojom::ShellClient>(std::move(handle)));
+ mojo_shell_connection_->AddEmbeddedShellClient(this);
sync_message_filter_ = channel_->CreateSyncMessageFilter();
thread_safe_sender_ = new ThreadSafeSender(
@@ -593,6 +590,30 @@ void ChildThreadImpl::RecordComputedAction(const std::string& action) {
NOTREACHED();
}
+MojoShellConnection* ChildThreadImpl::GetMojoShellConnection() {
+ return mojo_shell_connection_.get();
+}
+
+shell::InterfaceRegistry* ChildThreadImpl::GetInterfaceRegistry() {
+ if (!interface_registry_.get())
+ interface_registry_.reset(new shell::InterfaceRegistry(nullptr));
+ return interface_registry_.get();
+}
+
+shell::InterfaceProvider* ChildThreadImpl::GetRemoteInterfaces() {
+ if (!remote_interfaces_.get())
+ remote_interfaces_.reset(new shell::InterfaceProvider);
+ return remote_interfaces_.get();
+}
+
+shell::InterfaceRegistry* ChildThreadImpl::GetInterfaceRegistryForConnection() {
+ return GetInterfaceRegistry();
+}
+
+shell::InterfaceProvider* ChildThreadImpl::GetInterfaceProviderForConnection() {
+ return GetRemoteInterfaces();
+}
+
IPC::MessageRouter* ChildThreadImpl::GetRouter() {
DCHECK(base::MessageLoop::current() == message_loop());
return &router_;
« no previous file with comments | « content/child/child_thread_impl.h ('k') | content/child/mojo/mojo_application.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698