Index: content/browser/service_worker/embedded_worker_instance_unittest.cc |
diff --git a/content/browser/service_worker/embedded_worker_instance_unittest.cc b/content/browser/service_worker/embedded_worker_instance_unittest.cc |
index 1ded6ee740fbf9e4d2a1c41773e6016a81c18f38..7f729ab681ba0169202c09926ebb12ac6ebb4f30 100644 |
--- a/content/browser/service_worker/embedded_worker_instance_unittest.cc |
+++ b/content/browser/service_worker/embedded_worker_instance_unittest.cc |
@@ -21,6 +21,7 @@ |
#include "content/common/service_worker/embedded_worker.mojom.h" |
#include "content/common/service_worker/embedded_worker_messages.h" |
#include "content/common/service_worker/embedded_worker_start_params.h" |
+#include "content/common/service_worker/service_worker_event_dispatcher.mojom.h" |
#include "content/common/service_worker/service_worker_utils.h" |
#include "content/public/common/child_process_host.h" |
#include "content/public/common/content_switches.h" |
@@ -40,18 +41,6 @@ void SaveStatusAndCall(ServiceWorkerStatusCode* out, |
callback.Run(); |
} |
-std::unique_ptr<EmbeddedWorkerStartParams> |
-CreateStartParams(int version_id, const GURL& scope, const GURL& script_url) { |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- new EmbeddedWorkerStartParams); |
- params->service_worker_version_id = version_id; |
- params->scope = scope; |
- params->script_url = script_url; |
- params->pause_after_download = false; |
- params->is_installed = false; |
- return params; |
-} |
- |
} // namespace |
class EmbeddedWorkerInstanceTest : public testing::Test, |
@@ -113,6 +102,24 @@ class EmbeddedWorkerInstanceTest : public testing::Test, |
return status; |
} |
+ std::unique_ptr<EmbeddedWorkerStartParams> |
+ CreateStartParams(int version_id, const GURL& scope, const GURL& script_url) { |
+ std::unique_ptr<EmbeddedWorkerStartParams> params( |
+ new EmbeddedWorkerStartParams); |
+ params->internal.service_worker_version_id = version_id; |
+ params->internal.scope = scope; |
+ params->internal.script_url = script_url; |
+ params->internal.pause_after_download = false; |
+ params->internal.is_installed = false; |
+ params->dispatcher_request = CreateEventDispatcher(); |
+ return params; |
+ } |
+ |
+ mojom::ServiceWorkerEventDispatcherRequest CreateEventDispatcher() { |
+ dispatchers_.emplace_back(); |
+ return mojo::GetProxy(&dispatchers_.back()); |
+ } |
+ |
ServiceWorkerContextCore* context() { return helper_->context(); } |
EmbeddedWorkerRegistry* embedded_worker_registry() { |
@@ -128,6 +135,8 @@ class EmbeddedWorkerInstanceTest : public testing::Test, |
return helper_->mock_instance_clients(); |
} |
+ std::vector<mojom::ServiceWorkerEventDispatcherPtr> dispatchers_; |
+ |
TestBrowserThreadBundle thread_bundle_; |
std::unique_ptr<EmbeddedWorkerTestHelper> helper_; |
std::vector<EventLog> events_; |
@@ -261,8 +270,8 @@ TEST_P(EmbeddedWorkerInstanceTestP, ForceNewProcess) { |
// Start once normally. |
ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE; |
base::RunLoop run_loop; |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(service_worker_version_id, pattern, url)); |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(service_worker_version_id, pattern, url); |
worker->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, |
run_loop.QuitClosure())); |
run_loop.Run(); |
@@ -285,8 +294,8 @@ TEST_P(EmbeddedWorkerInstanceTestP, ForceNewProcess) { |
// Start again. |
ServiceWorkerStatusCode status; |
base::RunLoop run_loop; |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(service_worker_version_id, pattern, url)); |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(service_worker_version_id, pattern, url); |
worker->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, |
run_loop.QuitClosure())); |
EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); |
@@ -365,8 +374,8 @@ TEST_P(EmbeddedWorkerInstanceTestP, RemoveWorkerInSharedProcess) { |
// Start worker1. |
ServiceWorkerStatusCode status; |
base::RunLoop run_loop; |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(version_id1, pattern, url)); |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(version_id1, pattern, url); |
worker1->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, |
run_loop.QuitClosure())); |
run_loop.Run(); |
@@ -377,8 +386,8 @@ TEST_P(EmbeddedWorkerInstanceTestP, RemoveWorkerInSharedProcess) { |
// Start worker2. |
ServiceWorkerStatusCode status; |
base::RunLoop run_loop; |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(version_id2, pattern, url)); |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(version_id2, pattern, url); |
worker2->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, |
run_loop.QuitClosure())); |
run_loop.Run(); |
@@ -414,8 +423,8 @@ TEST_P(EmbeddedWorkerInstanceTestP, DetachDuringProcessAllocation) { |
// Run the start worker sequence and detach during process allocation. |
ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE; |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(version_id, scope, url)); |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(version_id, scope, url); |
worker->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, |
base::Bind(&base::DoNothing))); |
worker->Detach(); |
@@ -446,8 +455,8 @@ TEST_P(EmbeddedWorkerInstanceTestP, DetachAfterSendingStartWorkerMessage) { |
// Run the start worker sequence until a start worker message is sent. |
ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE; |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(version_id, scope, url)); |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(version_id, scope, url); |
worker->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, |
base::Bind(&base::DoNothing))); |
base::RunLoop().RunUntilIdle(); |
@@ -485,8 +494,8 @@ TEST_P(EmbeddedWorkerInstanceTestP, StopDuringProcessAllocation) { |
// Stop the start worker sequence before a process is allocated. |
ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE; |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(version_id, scope, url)); |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(version_id, scope, url); |
worker->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, |
base::Bind(&base::DoNothing))); |
worker->Stop(); |
@@ -541,9 +550,9 @@ TEST_P(EmbeddedWorkerInstanceTestP, StopDuringPausedAfterDownload) { |
// Run the start worker sequence until pause after download. |
ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE; |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(version_id, scope, url)); |
- params->pause_after_download = true; |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(version_id, scope, url); |
+ params->internal.pause_after_download = true; |
worker->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, |
base::Bind(&base::DoNothing))); |
base::RunLoop().RunUntilIdle(); |
@@ -572,8 +581,8 @@ TEST_P(EmbeddedWorkerInstanceTestP, StopAfterSendingStartWorkerMessage) { |
// Run the start worker sequence until a start worker message is sent. |
ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE; |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(version_id, scope, url)); |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(version_id, scope, url); |
worker->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, |
base::Bind(&base::DoNothing))); |
base::RunLoop().RunUntilIdle(); |
@@ -634,8 +643,8 @@ TEST_P(EmbeddedWorkerInstanceTestP, Detach) { |
// Start the worker. |
base::RunLoop run_loop; |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(version_id, pattern, url)); |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(version_id, pattern, url); |
worker->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, |
run_loop.QuitClosure())); |
run_loop.Run(); |
@@ -673,8 +682,8 @@ TEST_P(EmbeddedWorkerInstanceTestP, FailToSendStartIPC) { |
worker->AddListener(this); |
// Attempt to start the worker. |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(version_id, pattern, url)); |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(version_id, pattern, url); |
if (is_mojo_enabled()) { |
worker->Start(std::move(params), |
base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); |
@@ -713,9 +722,8 @@ class FailEmbeddedWorkerInstanceClientImpl |
private: |
void StartWorker( |
- const EmbeddedWorkerStartParams& /* unused */, |
- service_manager::mojom::InterfaceProviderPtr /* unused */, |
- service_manager::mojom::InterfaceProviderRequest /* unused */) override { |
+ const EmbeddedWorkerStartParamsInternal& /* unused */, |
+ mojom::ServiceWorkerEventDispatcherRequest /* unused */) override { |
helper_->mock_instance_clients()->clear(); |
} |
}; |
@@ -741,8 +749,8 @@ TEST_P(EmbeddedWorkerInstanceTestP, RemoveRemoteInterface) { |
worker->AddListener(this); |
// Attempt to start the worker. |
- std::unique_ptr<EmbeddedWorkerStartParams> params( |
- CreateStartParams(version_id, pattern, url)); |
+ std::unique_ptr<EmbeddedWorkerStartParams> params = |
+ CreateStartParams(version_id, pattern, url); |
worker->Start(std::move(params), |
base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); |
base::RunLoop().RunUntilIdle(); |