| Index: content/browser/service_worker/embedded_worker_instance.h
|
| diff --git a/content/browser/service_worker/embedded_worker_instance.h b/content/browser/service_worker/embedded_worker_instance.h
|
| index 737417c88ce30130b965a300a4ade9502c079d02..6952ab9fa9f12b65baf29ea501b48bc269be70ab 100644
|
| --- a/content/browser/service_worker/embedded_worker_instance.h
|
| +++ b/content/browser/service_worker/embedded_worker_instance.h
|
| @@ -43,6 +43,7 @@ namespace content {
|
| class EmbeddedWorkerRegistry;
|
| struct EmbeddedWorkerStartParams;
|
| class ServiceWorkerContextCore;
|
| +class ServiceWorkerProviderHost;
|
|
|
| // This gives an interface to control one EmbeddedWorker instance, which
|
| // may be 'in-waiting' or running in one of the child processes added by
|
| @@ -108,8 +109,10 @@ class CONTENT_EXPORT EmbeddedWorkerInstance
|
| // STOPPED status. |callback| is invoked after the worker script has been
|
| // started and evaluated, or when an error occurs.
|
| // |params| should be populated with service worker version info needed
|
| - // to start the worker.
|
| + // to start the worker. |provider_host| is a pre-created host for the
|
| + // controller.
|
| void Start(std::unique_ptr<EmbeddedWorkerStartParams> params,
|
| + base::WeakPtr<ServiceWorkerProviderHost> provider_host,
|
| mojom::ServiceWorkerEventDispatcherRequest dispatcher_request,
|
| const StatusCallback& callback);
|
|
|
| @@ -228,7 +231,7 @@ class CONTENT_EXPORT EmbeddedWorkerInstance
|
| void OnScriptLoaded() override;
|
| // Notifies the corresponding provider host that the thread has started and is
|
| // ready to receive messages.
|
| - void OnThreadStarted(int thread_id, int provider_id) override;
|
| + void OnThreadStarted(int thread_id) override;
|
| void OnScriptLoadFailed() override;
|
| // Fires the callback passed to Start().
|
| void OnScriptEvaluated(bool success) override;
|
| @@ -283,7 +286,10 @@ class CONTENT_EXPORT EmbeddedWorkerInstance
|
| std::unique_ptr<EmbeddedWorkerInstance::WorkerProcessHandle> process_handle_;
|
| int thread_id_;
|
|
|
| - // |client_| is used to send messages to the renderer process.
|
| + // |client_| is used to send messages to the renderer process. The browser
|
| + // process should not disconnect the pipe because other associated interfaces
|
| + // may be using it. The renderer process will disconnect the pipe when
|
| + // appropriate.
|
| mojom::EmbeddedWorkerInstanceClientPtr client_;
|
|
|
| // Binding for EmbeddedWorkerInstanceHost, runs on IO thread.
|
| @@ -293,6 +299,9 @@ class CONTENT_EXPORT EmbeddedWorkerInstance
|
| // a mojo struct.
|
| mojom::ServiceWorkerEventDispatcherRequest pending_dispatcher_request_;
|
|
|
| + // The provider host that is hosting this running worker.
|
| + base::WeakPtr<ServiceWorkerProviderHost> provider_host_;
|
| +
|
| // Whether devtools is attached or not.
|
| bool devtools_attached_;
|
|
|
|
|