Index: content/browser/service_worker/service_worker_dispatcher_host_unittest.cc |
diff --git a/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc b/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc |
index e2debc26b2ec9973ca0b7dc5c83d157bcc7c40c4..e5f0d75f5f0a460f50ae418d579d01557091c6f1 100644 |
--- a/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc |
+++ b/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc |
@@ -123,14 +123,16 @@ class FailToStartWorkerTestHelper : public EmbeddedWorkerTestHelper { |
public: |
FailToStartWorkerTestHelper() : EmbeddedWorkerTestHelper(base::FilePath()) {} |
- void OnStartWorker(int embedded_worker_id, |
- int64_t service_worker_version_id, |
- const GURL& scope, |
- const GURL& script_url, |
- bool pause_after_download, |
- mojom::ServiceWorkerEventDispatcherRequest request, |
- mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo |
- instance_host) override { |
+ void OnStartWorker( |
+ int embedded_worker_id, |
+ int64_t service_worker_version_id, |
+ const GURL& scope, |
+ const GURL& script_url, |
+ bool pause_after_download, |
+ mojom::ServiceWorkerEventDispatcherRequest request, |
+ mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host, |
+ mojom::ServiceWorkerProviderInfoForStartWorkerPtr provider_info) |
+ override { |
mojom::EmbeddedWorkerInstanceHostAssociatedPtr instance_host_ptr; |
instance_host_ptr.Bind(std::move(instance_host)); |
instance_host_ptr->OnStopped(); |
@@ -196,13 +198,6 @@ class ServiceWorkerDispatcherHostTest : public testing::Test { |
EXPECT_EQ(SERVICE_WORKER_OK, status); |
} |
- void SendSetHostedVersionId(int provider_id, |
- int64_t version_id, |
- int embedded_worker_id) { |
- dispatcher_host_->OnSetHostedVersionId(provider_id, version_id, |
- embedded_worker_id); |
- } |
- |
void SendProviderCreated(ServiceWorkerProviderType type, |
const GURL& pattern) { |
const int64_t kProviderId = 99; |
@@ -217,6 +212,19 @@ class ServiceWorkerDispatcherHostTest : public testing::Test { |
helper_->mock_render_process_id(), kProviderId); |
} |
+ void PrepareProviderForServiceWorkerContext(ServiceWorkerVersion* version, |
+ const GURL& pattern) { |
+ std::unique_ptr<ServiceWorkerProviderHost> host = |
+ CreateProviderHostForServiceWorkerContext( |
+ helper_->mock_render_process_id(), |
+ true /* is_parent_frame_secure */, version, |
+ helper_->context()->AsWeakPtr(), &remote_endpoint_); |
+ provider_host_ = host.get(); |
+ helper_->SimulateAddProcessToPattern(pattern, |
+ helper_->mock_render_process_id()); |
+ context()->AddProviderHost(std::move(host)); |
+ } |
+ |
void SendRegister(int64_t provider_id, GURL pattern, GURL worker_url) { |
dispatcher_host_->OnMessageReceived( |
ServiceWorkerHostMsg_RegisterServiceWorker( |
@@ -760,8 +768,8 @@ TEST_F(ServiceWorkerDispatcherHostTest, DispatchExtendableMessageEvent) { |
GURL pattern = GURL("http://www.example.com/"); |
GURL script_url = GURL("http://www.example.com/service_worker.js"); |
- SendProviderCreated(SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, pattern); |
SetUpRegistration(pattern, script_url); |
+ PrepareProviderForServiceWorkerContext(version_.get(), pattern); |
// Set the running hosted version so that we can retrieve a valid service |
// worker object information for the source attribute of the message event. |
@@ -838,62 +846,6 @@ TEST_F(ServiceWorkerDispatcherHostTest, DispatchExtendableMessageEvent_Fail) { |
EXPECT_EQ(SERVICE_WORKER_ERROR_START_WORKER_FAILED, status); |
} |
-TEST_F(ServiceWorkerDispatcherHostTest, OnSetHostedVersionId) { |
- GURL pattern = GURL("http://www.example.com/"); |
- GURL script_url = GURL("http://www.example.com/service_worker.js"); |
- |
- Initialize(base::WrapUnique(new FailToStartWorkerTestHelper)); |
- SendProviderCreated(SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, pattern); |
- SetUpRegistration(pattern, script_url); |
- |
- const int64_t kProviderId = 99; // Dummy value |
- bool called; |
- ServiceWorkerStatusCode status; |
- // StartWorker puts the worker in STARTING state but it will have no |
- // process id yet. |
- version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, |
- base::Bind(&SaveStatusCallback, &called, &status)); |
- EXPECT_NE(version_->embedded_worker()->process_id(), |
- provider_host_->process_id()); |
- // SendSetHostedVersionId should reject because the provider host process id |
- // is different. It should call BadMessageReceived because it's not an |
- // expected error state. |
- SendSetHostedVersionId(kProviderId, version_->version_id(), |
- version_->embedded_worker()->embedded_worker_id()); |
- base::RunLoop().RunUntilIdle(); |
- EXPECT_FALSE(dispatcher_host_->ipc_sink()->GetUniqueMessageMatching( |
- ServiceWorkerMsg_AssociateRegistration::ID)); |
- EXPECT_EQ(1, dispatcher_host_->bad_messages_received_count_); |
-} |
- |
-TEST_F(ServiceWorkerDispatcherHostTest, OnSetHostedVersionId_DetachedWorker) { |
- GURL pattern = GURL("http://www.example.com/"); |
- GURL script_url = GURL("http://www.example.com/service_worker.js"); |
- |
- Initialize(base::WrapUnique(new FailToStartWorkerTestHelper)); |
- SendProviderCreated(SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, pattern); |
- SetUpRegistration(pattern, script_url); |
- |
- const int64_t kProviderId = 99; // Dummy value |
- bool called; |
- ServiceWorkerStatusCode status; |
- // StartWorker puts the worker in STARTING state. |
- version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, |
- base::Bind(&SaveStatusCallback, &called, &status)); |
- |
- // SendSetHostedVersionId should bail because the embedded worker is |
- // different. It shouldn't call BadMessageReceived because receiving a message |
- // for a detached worker is a legitimite possibility. |
- int bad_embedded_worker_id = |
- version_->embedded_worker()->embedded_worker_id() + 1; |
- SendSetHostedVersionId(kProviderId, version_->version_id(), |
- bad_embedded_worker_id); |
- base::RunLoop().RunUntilIdle(); |
- EXPECT_FALSE(dispatcher_host_->ipc_sink()->GetUniqueMessageMatching( |
- ServiceWorkerMsg_AssociateRegistration::ID)); |
- EXPECT_EQ(0, dispatcher_host_->bad_messages_received_count_); |
-} |
- |
TEST_F(ServiceWorkerDispatcherHostTest, ReceivedTimedOutRequestResponse) { |
GURL pattern = GURL("https://www.example.com/"); |
GURL script_url = GURL("https://www.example.com/service_worker.js"); |