Index: content/child/child_thread_impl.h |
diff --git a/content/child/child_thread_impl.h b/content/child/child_thread_impl.h |
index 0438b9cfe40126da4c92fc436e80882a0a92e8a4..2f8f9a03efeffe231a5857a1d7f17915d71180e3 100644 |
--- a/content/child/child_thread_impl.h |
+++ b/content/child/child_thread_impl.h |
@@ -18,12 +18,12 @@ |
#include "base/sequenced_task_runner.h" |
#include "base/tracked_objects.h" |
#include "build/build_config.h" |
-#include "content/child/mojo/mojo_application.h" |
#include "content/common/content_export.h" |
#include "content/public/child/child_thread.h" |
#include "ipc/ipc_message.h" // For IPC_MESSAGE_LOG_ENABLED. |
#include "ipc/ipc_platform_file.h" |
#include "ipc/message_router.h" |
+#include "services/shell/public/cpp/shell_client.h" |
namespace base { |
class MessageLoop; |
@@ -54,6 +54,7 @@ class ChildResourceMessageFilter; |
class ChildSharedBitmapManager; |
class FileSystemDispatcher; |
class InProcessChildThreadParams; |
+class MojoShellConnection; |
class NotificationDispatcher; |
class PushDispatcher; |
class ServiceWorkerMessageFilter; |
@@ -68,7 +69,8 @@ struct RequestInfo; |
// The main thread of a child process derives from this class. |
class CONTENT_EXPORT ChildThreadImpl |
: public IPC::Listener, |
- virtual public ChildThread { |
+ virtual public ChildThread, |
+ NON_EXPORTED_BASE(shell::ShellClient) { |
public: |
struct CONTENT_EXPORT Options; |
@@ -96,6 +98,13 @@ class CONTENT_EXPORT ChildThreadImpl |
#endif |
void RecordAction(const base::UserMetricsAction& action) override; |
void RecordComputedAction(const std::string& action) override; |
+ MojoShellConnection* GetMojoShellConnection() override; |
+ shell::InterfaceRegistry* GetInterfaceRegistry() override; |
+ shell::InterfaceProvider* GetRemoteInterfaces() override; |
+ |
+ // shell::ShellClient implementation: |
+ shell::InterfaceRegistry* GetInterfaceRegistryForConnection() override; |
+ shell::InterfaceProvider* GetInterfaceProviderForConnection() override; |
IPC::SyncChannel* channel() { return channel_.get(); } |
@@ -195,14 +204,6 @@ class CONTENT_EXPORT ChildThreadImpl |
static void ShutdownThread(); |
#endif |
- shell::InterfaceRegistry* interface_registry() { |
- return mojo_application_->interface_registry(); |
- } |
- |
- shell::InterfaceProvider* remote_interfaces() const { |
- return mojo_application_->remote_interfaces(); |
- } |
- |
protected: |
friend class ChildProcess; |
@@ -253,7 +254,9 @@ class CONTENT_EXPORT ChildThreadImpl |
void EnsureConnected(); |
std::unique_ptr<mojo::edk::ScopedIPCSupport> mojo_ipc_support_; |
- std::unique_ptr<MojoApplication> mojo_application_; |
+ std::unique_ptr<MojoShellConnection> mojo_shell_connection_; |
+ std::unique_ptr<shell::InterfaceRegistry> interface_registry_; |
+ std::unique_ptr<shell::InterfaceProvider> remote_interfaces_; |
std::string channel_name_; |
std::unique_ptr<IPC::SyncChannel> channel_; |