| Index: content/browser/service_worker/embedded_worker_test_helper.cc
|
| diff --git a/content/browser/service_worker/embedded_worker_test_helper.cc b/content/browser/service_worker/embedded_worker_test_helper.cc
|
| index d1bb82fe22a51a42bad5f253c0d21b474e83539e..e903003b89157775c43040f4567c311541942192 100644
|
| --- a/content/browser/service_worker/embedded_worker_test_helper.cc
|
| +++ b/content/browser/service_worker/embedded_worker_test_helper.cc
|
| @@ -73,7 +73,8 @@ EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::
|
| void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StartWorker(
|
| const EmbeddedWorkerStartParams& params,
|
| mojom::ServiceWorkerEventDispatcherRequest dispatcher_request,
|
| - mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host) {
|
| + mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host,
|
| + mojom::ServiceWorkerProviderClientInfoPtr provider_client_info) {
|
| if (!helper_)
|
| return;
|
|
|
| @@ -85,7 +86,8 @@ void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StartWorker(
|
| EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status());
|
|
|
| helper_->OnStartWorkerStub(params, std::move(dispatcher_request),
|
| - std::move(instance_host));
|
| + std::move(instance_host),
|
| + std::move(provider_client_info));
|
| }
|
|
|
| void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker() {
|
| @@ -290,7 +292,6 @@ EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(
|
| wrapper_(new ServiceWorkerContextWrapper(browser_context_.get())),
|
| mock_instance_clients_next_index_(0),
|
| next_thread_id_(0),
|
| - next_provider_id_(1000),
|
| mock_render_process_id_(render_process_host_->GetID()),
|
| new_mock_render_process_id_(new_render_process_host_->GetID()),
|
| weak_factory_(this) {
|
| @@ -306,8 +307,7 @@ EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(
|
| new MockServiceWorkerDispatcherHost(
|
| mock_render_process_id_, browser_context_->GetResourceContext(),
|
| this));
|
| - wrapper_->context()->AddDispatcherHost(mock_render_process_id_,
|
| - dispatcher_host.get());
|
| + dispatcher_host->Init(wrapper_.get());
|
| dispatcher_hosts_[mock_render_process_id_] = std::move(dispatcher_host);
|
|
|
| render_process_host_->OverrideBinderForTesting(
|
| @@ -329,7 +329,7 @@ void EmbeddedWorkerTestHelper::SimulateAddProcessToPattern(const GURL& pattern,
|
| scoped_refptr<ServiceWorkerDispatcherHost> dispatcher_host(
|
| new MockServiceWorkerDispatcherHost(
|
| process_id, browser_context_->GetResourceContext(), this));
|
| - wrapper_->context()->AddDispatcherHost(process_id, dispatcher_host.get());
|
| + dispatcher_host->Init(wrapper_.get());
|
| dispatcher_hosts_[process_id] = std::move(dispatcher_host);
|
| }
|
| wrapper_->process_manager()->AddProcessReferenceToPattern(pattern,
|
| @@ -362,6 +362,12 @@ void EmbeddedWorkerTestHelper::RegisterMockInstanceClient(
|
| mock_instance_clients_.push_back(std::move(client));
|
| }
|
|
|
| +void EmbeddedWorkerTestHelper::RegisterMockDispatcherHost(
|
| + int process_id,
|
| + scoped_refptr<ServiceWorkerDispatcherHost> dispatcher_host) {
|
| + dispatcher_hosts_[process_id] = std::move(dispatcher_host);
|
| +}
|
| +
|
| ServiceWorkerContextCore* EmbeddedWorkerTestHelper::context() {
|
| return wrapper_->context();
|
| }
|
| @@ -390,7 +396,8 @@ void EmbeddedWorkerTestHelper::OnStartWorker(
|
| const GURL& script_url,
|
| bool pause_after_download,
|
| mojom::ServiceWorkerEventDispatcherRequest request,
|
| - mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host) {
|
| + mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host,
|
| + mojom::ServiceWorkerProviderClientInfoPtr provider_client_info) {
|
| EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
|
| ASSERT_TRUE(worker);
|
| MockServiceWorkerEventDispatcher::Create(AsWeakPtr(), worker->thread_id(),
|
| @@ -400,6 +407,9 @@ void EmbeddedWorkerTestHelper::OnStartWorker(
|
| service_worker_version_id;
|
| embedded_worker_id_instance_host_ptr_map_[embedded_worker_id].Bind(
|
| std::move(instance_host));
|
| + ServiceWorkerRemoteProviderEndpoint* provider_endpoint =
|
| + &embedded_worker_id_remote_provider_map_[embedded_worker_id];
|
| + provider_endpoint->BindWithProviderClientInfo(provider_client_info.get());
|
|
|
| SimulateWorkerReadyForInspection(embedded_worker_id);
|
| SimulateWorkerScriptCached(embedded_worker_id);
|
| @@ -409,8 +419,7 @@ void EmbeddedWorkerTestHelper::OnStartWorker(
|
| }
|
|
|
| void EmbeddedWorkerTestHelper::OnResumeAfterDownload(int embedded_worker_id) {
|
| - SimulateWorkerThreadStarted(GetNextThreadId(), embedded_worker_id,
|
| - GetNextProviderId());
|
| + SimulateWorkerThreadStarted(GetNextThreadId(), embedded_worker_id);
|
| SimulateWorkerScriptEvaluated(embedded_worker_id, true /* success */);
|
| SimulateWorkerStarted(embedded_worker_id);
|
| }
|
| @@ -571,22 +580,12 @@ void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded(
|
|
|
| void EmbeddedWorkerTestHelper::SimulateWorkerThreadStarted(
|
| int thread_id,
|
| - int embedded_worker_id,
|
| - int provider_id) {
|
| + int embedded_worker_id) {
|
| EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
|
| ASSERT_TRUE(worker);
|
| ASSERT_TRUE(embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]);
|
| -
|
| - // Prepare a provider host to be used by following OnThreadStarted().
|
| - std::unique_ptr<ServiceWorkerProviderHost> host =
|
| - CreateProviderHostForServiceWorkerContext(
|
| - worker->process_id(), provider_id, true /* is_parent_frame_secure */,
|
| - context()->AsWeakPtr(),
|
| - &embedded_worker_id_remote_provider_map_[embedded_worker_id]);
|
| - context()->AddProviderHost(std::move(host));
|
| -
|
| embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]
|
| - ->OnThreadStarted(thread_id, provider_id);
|
| + ->OnThreadStarted(thread_id);
|
| base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| @@ -626,7 +625,8 @@ void EmbeddedWorkerTestHelper::SimulateSend(IPC::Message* message) {
|
| void EmbeddedWorkerTestHelper::OnStartWorkerStub(
|
| const EmbeddedWorkerStartParams& params,
|
| mojom::ServiceWorkerEventDispatcherRequest request,
|
| - mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host) {
|
| + mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host,
|
| + mojom::ServiceWorkerProviderClientInfoPtr provider_client_info) {
|
| EmbeddedWorkerInstance* worker =
|
| registry()->GetWorker(params.embedded_worker_id);
|
| ASSERT_TRUE(worker);
|
| @@ -636,7 +636,8 @@ void EmbeddedWorkerTestHelper::OnStartWorkerStub(
|
| base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, AsWeakPtr(),
|
| params.embedded_worker_id, params.service_worker_version_id,
|
| params.scope, params.script_url, params.pause_after_download,
|
| - base::Passed(&request), base::Passed(&instance_host)));
|
| + base::Passed(&request), base::Passed(&instance_host),
|
| + base::Passed(&provider_client_info)));
|
| }
|
|
|
| void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub(
|
|
|