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

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

Issue 140743012: Start EmbeddedWorker during registration - take 2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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/service_worker_register_job.h
diff --git a/content/browser/service_worker/service_worker_register_job.h b/content/browser/service_worker/service_worker_register_job.h
index 88216d66fc843aa059008528371f46ddbd60db2e..48c77c1544823828099d286ebaadeac679b75007 100644
--- a/content/browser/service_worker/service_worker_register_job.h
+++ b/content/browser/service_worker/service_worker_register_job.h
@@ -10,9 +10,12 @@
#include "base/memory/weak_ptr.h"
#include "content/browser/service_worker/service_worker_registration_status.h"
#include "content/browser/service_worker/service_worker_storage.h"
+#include "content/browser/service_worker/service_worker_version.h"
+#include "content/browser/service_worker/service_worker_version_status.h"
namespace content {
+class EmbeddedWorkerRegistry;
class ServiceWorkerJobCoordinator;
// A ServiceWorkerRegisterJob lives only for the lifetime of a single
@@ -33,13 +36,15 @@ class ServiceWorkerRegisterJob {
// All type of jobs (Register and Unregister) complete through a
// single call to this callback on the IO thread.
ServiceWorkerRegisterJob(ServiceWorkerStorage* storage,
+ EmbeddedWorkerRegistry* worker_registry,
ServiceWorkerJobCoordinator* coordinator,
const GURL& pattern,
const GURL& script_url,
RegistrationType type);
~ServiceWorkerRegisterJob();
- void AddCallback(const RegistrationCallback& callback);
+ void AddCallback(const RegistrationCallback& callback,
+ ServiceWorkerProviderHost* source_provider);
void Start();
@@ -77,12 +82,20 @@ class ServiceWorkerRegisterJob {
ServiceWorkerRegistrationStatus previous_status,
const scoped_refptr<ServiceWorkerRegistration>& previous_registration);
+ void StartWorkerAndContinue(
+ const base::Callback<void(ServiceWorkerRegistrationStatus,
+ const scoped_refptr<ServiceWorkerRegistration>&,
+ ServiceWorkerVersionStatus)> callback,
+ ServiceWorkerRegistrationStatus status,
+ const scoped_refptr<ServiceWorkerRegistration>& registration);
+
// These methods are the last internal callback in the callback
// chain, and ultimately call callback_.
void UnregisterComplete(ServiceWorkerRegistrationStatus status);
void RegisterComplete(
ServiceWorkerRegistrationStatus status,
- const scoped_refptr<ServiceWorkerRegistration>& registration);
+ const scoped_refptr<ServiceWorkerRegistration>& registration,
+ ServiceWorkerVersionStatus version_status);
void RunCallbacks(
ServiceWorkerRegistrationStatus status,
@@ -96,11 +109,14 @@ class ServiceWorkerRegisterJob {
// because we may be cancelling while there are outstanding
// callbacks that expect access to storage_.
ServiceWorkerStorage* storage_;
+ EmbeddedWorkerRegistry* worker_registry_;
ServiceWorkerJobCoordinator* coordinator_;
+ scoped_refptr<ServiceWorkerVersion> pending_version_;
const GURL pattern_;
const GURL script_url_;
const RegistrationType type_;
std::vector<RegistrationCallback> callbacks_;
+ std::vector<ServiceWorkerProviderHost*> pending_provider_hosts_;
base::WeakPtrFactory<ServiceWorkerRegisterJob> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(ServiceWorkerRegisterJob);

Powered by Google App Engine
This is Rietveld 408576698