Index: content/browser/service_worker/service_worker_dispatcher_host.h |
diff --git a/content/browser/service_worker/service_worker_dispatcher_host.h b/content/browser/service_worker/service_worker_dispatcher_host.h |
index 7e75b4984348d996ff312e230a709af989450caa..3c66eb6c70a4d370e5664c8c8729f5be7f0424ff 100644 |
--- a/content/browser/service_worker/service_worker_dispatcher_host.h |
+++ b/content/browser/service_worker/service_worker_dispatcher_host.h |
@@ -44,7 +44,8 @@ struct ServiceWorkerVersionAttributes; |
// This class is bound with mojom::ServiceWorkerDispatcherHost. All |
// InterfacePtrs on the same render process are bound to the same |
-// content::ServiceWorkerDispatcherHost. |
+// content::ServiceWorkerDispatcherHost. This can be overridden only for |
+// testing. |
class CONTENT_EXPORT ServiceWorkerDispatcherHost |
: public mojom::ServiceWorkerDispatcherHost, |
public BrowserMessageFilter { |
@@ -69,13 +70,25 @@ class CONTENT_EXPORT ServiceWorkerDispatcherHost |
// be destroyed. |
bool Send(IPC::Message* message) override; |
- void RegisterServiceWorkerHandle(std::unique_ptr<ServiceWorkerHandle> handle); |
- void RegisterServiceWorkerRegistrationHandle( |
+ // Virtual for testing. |
+ virtual void RegisterServiceWorkerHandle( |
+ std::unique_ptr<ServiceWorkerHandle> handle); |
+ // Virtual for testing. |
+ virtual void RegisterServiceWorkerRegistrationHandle( |
std::unique_ptr<ServiceWorkerRegistrationHandle> handle); |
ServiceWorkerHandle* FindServiceWorkerHandle(int provider_id, |
int64_t version_id); |
+ // Gets or creates the registration and version handles appropriate for |
+ // representing |registration| inside of |provider_host|. Sets |out_info| and |
+ // |out_attrs| accordingly for these handles. |
+ void GetRegistrationObjectInfoAndVersionAttributes( |
+ base::WeakPtr<ServiceWorkerProviderHost> provider_host, |
+ ServiceWorkerRegistration* registration, |
+ ServiceWorkerRegistrationObjectInfo* out_info, |
+ ServiceWorkerVersionAttributes* out_attrs); |
+ |
// Returns the existing registration handle whose reference count is |
// incremented or a newly created one if it doesn't exist. |
ServiceWorkerRegistrationHandle* GetOrCreateRegistrationHandle( |
@@ -94,6 +107,8 @@ class CONTENT_EXPORT ServiceWorkerDispatcherHost |
ProviderCreatedAndDestroyed); |
FRIEND_TEST_ALL_PREFIXES(ServiceWorkerDispatcherHostTest, |
CleanupOnRendererCrash); |
+ FRIEND_TEST_ALL_PREFIXES(BackgroundSyncManagerTest, |
+ RegisterWithoutLiveSWRegistration); |
using StatusCallback = base::Callback<void(ServiceWorkerStatusCode status)>; |
enum class ProviderStatus { OK, NO_CONTEXT, DEAD_HOST, NO_HOST, NO_URL }; |
@@ -104,9 +119,6 @@ class CONTENT_EXPORT ServiceWorkerDispatcherHost |
// mojom::ServiceWorkerDispatcherHost implementation |
void OnProviderCreated(ServiceWorkerProviderHostInfo info) override; |
- void OnSetHostedVersionId(int provider_id, |
- int64_t version_id, |
- int embedded_worker_id) override; |
// IPC Message handlers |
void OnRegisterServiceWorker(int thread_id, |
@@ -195,12 +207,6 @@ class CONTENT_EXPORT ServiceWorkerDispatcherHost |
int provider_id, |
int64_t registration_handle_id); |
- void GetRegistrationObjectInfoAndVersionAttributes( |
- base::WeakPtr<ServiceWorkerProviderHost> provider_host, |
- ServiceWorkerRegistration* registration, |
- ServiceWorkerRegistrationObjectInfo* info, |
- ServiceWorkerVersionAttributes* attrs); |
- |
// Callbacks from ServiceWorkerContextCore |
void RegistrationComplete(int thread_id, |
int provider_id, |