| 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..db7fae8d25113c39d34e42486bf7a1554a9718cd 100644
|
| --- a/content/browser/service_worker/embedded_worker_instance.h
|
| +++ b/content/browser/service_worker/embedded_worker_instance.h
|
| @@ -71,6 +71,10 @@ class CONTENT_EXPORT EmbeddedWorkerInstance
|
| STARTING_PHASE_MAX_VALUE,
|
| };
|
|
|
| + using ProviderInfoGetter =
|
| + base::OnceCallback<mojom::ServiceWorkerProviderInfoForStartWorkerPtr(
|
| + int /* process_id */)>;
|
| +
|
| class Listener {
|
| public:
|
| virtual ~Listener() {}
|
| @@ -108,8 +112,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_info_getter| is called when this instance
|
| + // allocates a process and is ready to send a StartWorker message.
|
| void Start(std::unique_ptr<EmbeddedWorkerStartParams> params,
|
| + ProviderInfoGetter provider_info_getter,
|
| mojom::ServiceWorkerEventDispatcherRequest dispatcher_request,
|
| const StatusCallback& callback);
|
|
|
| @@ -228,7 +234,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 +289,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 +302,9 @@ class CONTENT_EXPORT EmbeddedWorkerInstance
|
| // a mojo struct.
|
| mojom::ServiceWorkerEventDispatcherRequest pending_dispatcher_request_;
|
|
|
| + // This is set at Start and used on SendStartWorker.
|
| + ProviderInfoGetter provider_info_getter_;
|
| +
|
| // Whether devtools is attached or not.
|
| bool devtools_attached_;
|
|
|
|
|