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

Unified Diff: content/browser/service_worker/embedded_worker_instance.h

Issue 2936623002: Implement dumb URLLoader{Factory} for ServiceWorker script loading (for try)
Patch Set: . Created 3 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
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_;

Powered by Google App Engine
This is Rietveld 408576698