| 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 ea9adb81cca6d1d4d40a0a97573353ac515d1653..94ac7e9cf539e624044c8096190ed161e09155c2 100644
|
| --- a/content/browser/service_worker/embedded_worker_instance_unittest.cc
|
| +++ b/content/browser/service_worker/embedded_worker_instance_unittest.cc
|
| @@ -153,20 +153,32 @@ class StalledInStartWorkerHelper : public EmbeddedWorkerTestHelper {
|
| StalledInStartWorkerHelper() : EmbeddedWorkerTestHelper(base::FilePath()) {}
|
| ~StalledInStartWorkerHelper() 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) 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) override {
|
| if (force_stall_in_start_) {
|
| + // Prepare for OnStopWorker().
|
| + instance_host_ptr_map_[embedded_worker_id].Bind(std::move(instance_host));
|
| // Do nothing to simulate a stall in the worker process.
|
| return;
|
| }
|
| EmbeddedWorkerTestHelper::OnStartWorker(
|
| embedded_worker_id, service_worker_version_id, scope, script_url,
|
| - pause_after_download, std::move(request));
|
| + pause_after_download, std::move(request), std::move(instance_host));
|
| + }
|
| +
|
| + void OnStopWorker(int embedded_worker_id) override {
|
| + if (instance_host_ptr_map_[embedded_worker_id]) {
|
| + instance_host_ptr_map_[embedded_worker_id]->OnStopped();
|
| + base::RunLoop().RunUntilIdle();
|
| + return;
|
| + }
|
| + EmbeddedWorkerTestHelper::OnStopWorker(embedded_worker_id);
|
| }
|
|
|
| void set_force_stall_in_start(bool force_stall_in_start) {
|
| @@ -175,6 +187,11 @@ class StalledInStartWorkerHelper : public EmbeddedWorkerTestHelper {
|
|
|
| private:
|
| bool force_stall_in_start_ = true;
|
| +
|
| + std::map<
|
| + int /* embedded_worker_id */,
|
| + mojom::EmbeddedWorkerInstanceHostAssociatedPtr /* instance_host_ptr */>
|
| + instance_host_ptr_map_;
|
| };
|
|
|
| TEST_F(EmbeddedWorkerInstanceTest, StartAndStop) {
|
| @@ -708,7 +725,9 @@ class FailEmbeddedWorkerInstanceClientImpl
|
| private:
|
| void StartWorker(
|
| const EmbeddedWorkerStartParams& /* unused */,
|
| - mojom::ServiceWorkerEventDispatcherRequest /* unused */) override {
|
| + mojom::ServiceWorkerEventDispatcherRequest /* unused */,
|
| + mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo /* unused */)
|
| + override {
|
| helper_->mock_instance_clients()->clear();
|
| }
|
| };
|
|
|