| 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 94ac7e9cf539e624044c8096190ed161e09155c2..39363fc01b16f40432fbe85a9c3f2fa70a2a2274 100644
|
| --- a/content/browser/service_worker/embedded_worker_instance_unittest.cc
|
| +++ b/content/browser/service_worker/embedded_worker_instance_unittest.cc
|
| @@ -44,6 +44,38 @@ void SaveStatusAndCall(ServiceWorkerStatusCode* out,
|
|
|
| } // namespace
|
|
|
| +class MockServiceWorkerProviderHost : public ServiceWorkerProviderHost {
|
| + public:
|
| + MockServiceWorkerProviderHost(base::WeakPtr<ServiceWorkerContextCore> context)
|
| + : ServiceWorkerProviderHost(ChildProcessHost::kInvalidUniqueID,
|
| + ServiceWorkerProviderHostInfo(
|
| + kInvalidServiceWorkerProviderId,
|
| + MSG_ROUTING_NONE,
|
| + SERVICE_WORKER_PROVIDER_FOR_CONTROLLER,
|
| + false),
|
| + context,
|
| + nullptr),
|
| + binding_(this) {}
|
| +
|
| + ~MockServiceWorkerProviderHost() override {}
|
| +
|
| + void CompleteStartWorkerPreparation(int process_id,
|
| + mojom::ServiceWorkerProviderClientInfoPtr*
|
| + provider_client_info) override {
|
| + // Nothing to do.
|
| + DCHECK(!binding_.is_bound());
|
| + DCHECK(!client_.is_bound());
|
| + binding_.Bind(mojo::MakeRequest(&(*provider_client_info)->host_ptr_info));
|
| + (*provider_client_info)->client_request = mojo::MakeRequest(&client_);
|
| + }
|
| +
|
| + private:
|
| + mojom::ServiceWorkerProviderAssociatedPtr client_;
|
| + mojo::AssociatedBinding<mojom::ServiceWorkerProviderHost> binding_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(MockServiceWorkerProviderHost);
|
| +};
|
| +
|
| class EmbeddedWorkerInstanceTest : public testing::Test,
|
| public EmbeddedWorkerInstance::Listener {
|
| protected:
|
| @@ -82,7 +114,7 @@ class EmbeddedWorkerInstanceTest : public testing::Test,
|
| RecordEvent(DETACHED, old_status);
|
| }
|
|
|
| - bool OnMessageReceived(const IPC::Message& message) override { return false; }
|
| + bool OnMessageReceived(const IPC::Message&) override { return false; }
|
|
|
| void SetUp() override {
|
| helper_.reset(new EmbeddedWorkerTestHelper(base::FilePath()));
|
| @@ -113,6 +145,10 @@ class EmbeddedWorkerInstanceTest : public testing::Test,
|
| params->script_url = script_url;
|
| params->pause_after_download = false;
|
| params->is_installed = false;
|
| + mock_providers_.emplace_back(
|
| + base::MakeUnique<MockServiceWorkerProviderHost>(
|
| + helper_->context()->AsWeakPtr()));
|
| + params->controller_provider = mock_providers_.back().get();
|
| return params;
|
| }
|
|
|
| @@ -137,6 +173,7 @@ class EmbeddedWorkerInstanceTest : public testing::Test,
|
| }
|
|
|
| std::vector<mojom::ServiceWorkerEventDispatcherPtr> dispatchers_;
|
| + std::vector<std::unique_ptr<MockServiceWorkerProviderHost>> mock_providers_;
|
|
|
| TestBrowserThreadBundle thread_bundle_;
|
| std::unique_ptr<EmbeddedWorkerTestHelper> helper_;
|
| @@ -153,14 +190,15 @@ 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,
|
| - 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::ServiceWorkerProviderClientInfoPtr provider_client_info) override {
|
| if (force_stall_in_start_) {
|
| // Prepare for OnStopWorker().
|
| instance_host_ptr_map_[embedded_worker_id].Bind(std::move(instance_host));
|
| @@ -169,7 +207,8 @@ class StalledInStartWorkerHelper : public EmbeddedWorkerTestHelper {
|
| }
|
| EmbeddedWorkerTestHelper::OnStartWorker(
|
| embedded_worker_id, service_worker_version_id, scope, script_url,
|
| - pause_after_download, std::move(request), std::move(instance_host));
|
| + pause_after_download, std::move(request), std::move(instance_host),
|
| + std::move(provider_client_info));
|
| }
|
|
|
| void OnStopWorker(int embedded_worker_id) override {
|
| @@ -723,11 +762,10 @@ class FailEmbeddedWorkerInstanceClientImpl
|
| : EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient(helper) {}
|
|
|
| private:
|
| - void StartWorker(
|
| - const EmbeddedWorkerStartParams& /* unused */,
|
| - mojom::ServiceWorkerEventDispatcherRequest /* unused */,
|
| - mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo /* unused */)
|
| - override {
|
| + void StartWorker(const EmbeddedWorkerStartParams&,
|
| + mojom::ServiceWorkerEventDispatcherRequest,
|
| + mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo,
|
| + mojom::ServiceWorkerProviderClientInfoPtr) override {
|
| helper_->mock_instance_clients()->clear();
|
| }
|
| };
|
|
|