| Index: content/browser/service_worker/embedded_worker_instance.cc
|
| diff --git a/content/browser/service_worker/embedded_worker_instance.cc b/content/browser/service_worker/embedded_worker_instance.cc
|
| index 2620a3df16864d523209ac3d159ce325669730eb..a0c48cd25fcf2d7e7dcf2b6d0c9d7fa7a9a7c78b 100644
|
| --- a/content/browser/service_worker/embedded_worker_instance.cc
|
| +++ b/content/browser/service_worker/embedded_worker_instance.cc
|
| @@ -17,7 +17,6 @@
|
| #include "content/browser/service_worker/embedded_worker_status.h"
|
| #include "content/browser/service_worker/service_worker_context_core.h"
|
| #include "content/common/content_switches_internal.h"
|
| -#include "content/common/mojo/service_registry_impl.h"
|
| #include "content/common/service_worker/embedded_worker_messages.h"
|
| #include "content/common/service_worker/embedded_worker_settings.h"
|
| #include "content/common/service_worker/embedded_worker_setup.mojom.h"
|
| @@ -28,6 +27,7 @@
|
| #include "content/public/common/child_process_host.h"
|
| #include "ipc/ipc_message.h"
|
| #include "services/shell/public/cpp/interface_provider.h"
|
| +#include "services/shell/public/cpp/interface_registry.h"
|
| #include "url/gurl.h"
|
|
|
| namespace content {
|
| @@ -104,8 +104,8 @@ void RegisterToWorkerDevToolsManagerOnUI(
|
| void SetupMojoOnUIThread(
|
| int process_id,
|
| int thread_id,
|
| - shell::mojom::InterfaceProviderRequest services,
|
| - shell::mojom::InterfaceProviderPtrInfo exposed_services) {
|
| + shell::mojom::InterfaceProviderRequest remote_interfaces,
|
| + shell::mojom::InterfaceProviderPtrInfo exposed_interfaces) {
|
| RenderProcessHost* rph = RenderProcessHost::FromID(process_id);
|
| // |rph| or its InterfaceProvider may be NULL in unit tests.
|
| if (!rph || !rph->GetRemoteInterfaces())
|
| @@ -113,8 +113,8 @@ void SetupMojoOnUIThread(
|
| mojom::EmbeddedWorkerSetupPtr setup;
|
| rph->GetRemoteInterfaces()->GetInterface(&setup);
|
| setup->ExchangeInterfaceProviders(
|
| - thread_id, std::move(services),
|
| - mojo::MakeProxy(std::move(exposed_services)));
|
| + thread_id, std::move(remote_interfaces),
|
| + mojo::MakeProxy(std::move(exposed_interfaces)));
|
| }
|
|
|
| } // namespace
|
| @@ -439,7 +439,8 @@ void EmbeddedWorkerInstance::Start(
|
| status_ = EmbeddedWorkerStatus::STARTING;
|
| starting_phase_ = ALLOCATING_PROCESS;
|
| network_accessed_for_script_ = false;
|
| - service_registry_.reset(new ServiceRegistryImpl());
|
| + interface_registry_.reset(new shell::InterfaceRegistry(nullptr));
|
| + remote_interfaces_.reset(new shell::InterfaceProvider);
|
| FOR_EACH_OBSERVER(Listener, listener_list_, OnStarting());
|
|
|
| params->embedded_worker_id = embedded_worker_id_;
|
| @@ -505,11 +506,18 @@ void EmbeddedWorkerInstance::ResumeAfterDownload() {
|
| embedded_worker_id_));
|
| }
|
|
|
| -ServiceRegistry* EmbeddedWorkerInstance::GetServiceRegistry() {
|
| +shell::InterfaceRegistry* EmbeddedWorkerInstance::GetInterfaceRegistry() {
|
| DCHECK(status_ == EmbeddedWorkerStatus::STARTING ||
|
| status_ == EmbeddedWorkerStatus::RUNNING)
|
| << static_cast<int>(status_);
|
| - return service_registry_.get();
|
| + return interface_registry_.get();
|
| +}
|
| +
|
| +shell::InterfaceProvider* EmbeddedWorkerInstance::GetRemoteInterfaces() {
|
| + DCHECK(status_ == EmbeddedWorkerStatus::STARTING ||
|
| + status_ == EmbeddedWorkerStatus::RUNNING)
|
| + << static_cast<int>(status_);
|
| + return remote_interfaces_.get();
|
| }
|
|
|
| EmbeddedWorkerInstance::EmbeddedWorkerInstance(
|
| @@ -646,15 +654,16 @@ void EmbeddedWorkerInstance::OnThreadStarted(int thread_id) {
|
| thread_id_ = thread_id;
|
| FOR_EACH_OBSERVER(Listener, listener_list_, OnThreadStarted());
|
|
|
| - shell::mojom::InterfaceProviderPtr exposed_services;
|
| - service_registry_->Bind(GetProxy(&exposed_services));
|
| - shell::mojom::InterfaceProviderRequest request =
|
| - service_registry_->TakeRemoteRequest();
|
| + shell::mojom::InterfaceProviderPtr exposed_interfaces;
|
| + interface_registry_->Bind(GetProxy(&exposed_interfaces));
|
| + shell::mojom::InterfaceProviderPtr remote_interfaces;
|
| + shell::mojom::InterfaceProviderRequest request = GetProxy(&remote_interfaces);
|
| + remote_interfaces_->Bind(std::move(remote_interfaces));
|
| BrowserThread::PostTask(
|
| BrowserThread::UI, FROM_HERE,
|
| base::Bind(SetupMojoOnUIThread, process_id(), thread_id_,
|
| base::Passed(&request),
|
| - base::Passed(exposed_services.PassInterface())));
|
| + base::Passed(exposed_interfaces.PassInterface())));
|
| }
|
|
|
| void EmbeddedWorkerInstance::OnScriptLoadFailed() {
|
| @@ -797,7 +806,8 @@ void EmbeddedWorkerInstance::ReleaseProcess() {
|
| process_handle_.reset();
|
| status_ = EmbeddedWorkerStatus::STOPPED;
|
| thread_id_ = kInvalidEmbeddedWorkerThreadId;
|
| - service_registry_.reset();
|
| + interface_registry_.reset();
|
| + remote_interfaces_.reset();
|
| }
|
|
|
| void EmbeddedWorkerInstance::OnStartFailed(const StatusCallback& callback,
|
|
|