Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Side by Side Diff: content/browser/service_worker/embedded_worker_test_helper.cc

Issue 2787883003: [ServiceWorker] Add EmbeddedWorkerInstanceHost Interface. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/service_worker/embedded_worker_test_helper.h" 5 #include "content/browser/service_worker/embedded_worker_test_helper.h"
6 6
7 #include <map> 7 #include <map>
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/atomic_sequence_num.h" 13 #include "base/atomic_sequence_num.h"
14 #include "base/bind.h" 14 #include "base/bind.h"
15 #include "base/memory/ptr_util.h" 15 #include "base/memory/ptr_util.h"
16 #include "base/run_loop.h"
16 #include "base/threading/thread_task_runner_handle.h" 17 #include "base/threading/thread_task_runner_handle.h"
17 #include "base/time/time.h" 18 #include "base/time/time.h"
18 #include "content/browser/service_worker/embedded_worker_instance.h" 19 #include "content/browser/service_worker/embedded_worker_instance.h"
19 #include "content/browser/service_worker/embedded_worker_registry.h" 20 #include "content/browser/service_worker/embedded_worker_registry.h"
20 #include "content/browser/service_worker/embedded_worker_status.h" 21 #include "content/browser/service_worker/embedded_worker_status.h"
21 #include "content/browser/service_worker/service_worker_context_core.h" 22 #include "content/browser/service_worker/service_worker_context_core.h"
22 #include "content/browser/service_worker/service_worker_context_wrapper.h" 23 #include "content/browser/service_worker/service_worker_context_wrapper.h"
23 #include "content/browser/service_worker/service_worker_dispatcher_host.h" 24 #include "content/browser/service_worker/service_worker_dispatcher_host.h"
24 #include "content/common/background_fetch/background_fetch_types.h" 25 #include "content/common/background_fetch/background_fetch_types.h"
25 #include "content/common/service_worker/embedded_worker_messages.h" 26 #include "content/common/service_worker/embedded_worker_messages.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient:: 65 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::
65 MockEmbeddedWorkerInstanceClient( 66 MockEmbeddedWorkerInstanceClient(
66 base::WeakPtr<EmbeddedWorkerTestHelper> helper) 67 base::WeakPtr<EmbeddedWorkerTestHelper> helper)
67 : helper_(helper), binding_(this) {} 68 : helper_(helper), binding_(this) {}
68 69
69 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient:: 70 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::
70 ~MockEmbeddedWorkerInstanceClient() {} 71 ~MockEmbeddedWorkerInstanceClient() {}
71 72
72 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StartWorker( 73 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StartWorker(
73 const EmbeddedWorkerStartParams& params, 74 const EmbeddedWorkerStartParams& params,
74 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) { 75 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request,
76 mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host) {
75 if (!helper_) 77 if (!helper_)
76 return; 78 return;
77 79
78 embedded_worker_id_ = params.embedded_worker_id; 80 embedded_worker_id_ = params.embedded_worker_id;
79 81
80 EmbeddedWorkerInstance* worker = 82 EmbeddedWorkerInstance* worker =
81 helper_->registry()->GetWorker(params.embedded_worker_id); 83 helper_->registry()->GetWorker(params.embedded_worker_id);
82 ASSERT_TRUE(worker); 84 ASSERT_TRUE(worker);
83 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); 85 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status());
84 86
85 helper_->OnStartWorkerStub(params, std::move(dispatcher_request)); 87 helper_->OnStartWorkerStub(params, std::move(dispatcher_request),
88 std::move(instance_host));
86 } 89 }
87 90
88 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker( 91 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker(
89 const StopWorkerCallback& callback) { 92 const StopWorkerCallback& callback) {
90 if (!helper_) 93 if (!helper_)
91 return; 94 return;
92 95
93 ASSERT_TRUE(embedded_worker_id_); 96 ASSERT_TRUE(embedded_worker_id_);
94 EmbeddedWorkerInstance* worker = 97 EmbeddedWorkerInstance* worker =
95 helper_->registry()->GetWorker(embedded_worker_id_.value()); 98 helper_->registry()->GetWorker(embedded_worker_id_.value());
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 new net::HttpResponseHeaders(std::string(data, arraysize(data))); 367 new net::HttpResponseHeaders(std::string(data, arraysize(data)));
365 return info; 368 return info;
366 } 369 }
367 370
368 void EmbeddedWorkerTestHelper::OnStartWorker( 371 void EmbeddedWorkerTestHelper::OnStartWorker(
369 int embedded_worker_id, 372 int embedded_worker_id,
370 int64_t service_worker_version_id, 373 int64_t service_worker_version_id,
371 const GURL& scope, 374 const GURL& scope,
372 const GURL& script_url, 375 const GURL& script_url,
373 bool pause_after_download, 376 bool pause_after_download,
374 mojom::ServiceWorkerEventDispatcherRequest request) { 377 mojom::ServiceWorkerEventDispatcherRequest request,
378 mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host) {
375 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 379 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
376 ASSERT_TRUE(worker); 380 ASSERT_TRUE(worker);
377 MockServiceWorkerEventDispatcher::Create(AsWeakPtr(), worker->thread_id(), 381 MockServiceWorkerEventDispatcher::Create(AsWeakPtr(), worker->thread_id(),
378 std::move(request)); 382 std::move(request));
379 383
380 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id] = 384 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id] =
381 service_worker_version_id; 385 service_worker_version_id;
386 embedded_worker_id_instance_host_ptr_map_[embedded_worker_id].Bind(
387 std::move(instance_host));
382 SimulateWorkerReadyForInspection(embedded_worker_id); 388 SimulateWorkerReadyForInspection(embedded_worker_id);
383 SimulateWorkerScriptCached(embedded_worker_id); 389 SimulateWorkerScriptCached(embedded_worker_id);
384 SimulateWorkerScriptLoaded(embedded_worker_id); 390 SimulateWorkerScriptLoaded(embedded_worker_id);
385 if (!pause_after_download) 391 if (!pause_after_download)
386 OnResumeAfterDownload(embedded_worker_id); 392 OnResumeAfterDownload(embedded_worker_id);
387 } 393 }
388 394
389 void EmbeddedWorkerTestHelper::OnResumeAfterDownload(int embedded_worker_id) { 395 void EmbeddedWorkerTestHelper::OnResumeAfterDownload(int embedded_worker_id) {
390 SimulateWorkerThreadStarted(GetNextThreadId(), embedded_worker_id); 396 SimulateWorkerThreadStarted(GetNextThreadId(), embedded_worker_id);
391 SimulateWorkerScriptEvaluated(embedded_worker_id, true /* success */); 397 SimulateWorkerScriptEvaluated(embedded_worker_id, true /* success */);
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 DispatchPaymentRequestEventCallback& callback) { 527 DispatchPaymentRequestEventCallback& callback) {
522 response_callback->OnPaymentAppResponse( 528 response_callback->OnPaymentAppResponse(
523 payments::mojom::PaymentAppResponse::New(), base::Time::Now()); 529 payments::mojom::PaymentAppResponse::New(), base::Time::Now());
524 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); 530 callback.Run(SERVICE_WORKER_OK, base::Time::Now());
525 } 531 }
526 532
527 void EmbeddedWorkerTestHelper::SimulateWorkerReadyForInspection( 533 void EmbeddedWorkerTestHelper::SimulateWorkerReadyForInspection(
528 int embedded_worker_id) { 534 int embedded_worker_id) {
529 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 535 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
530 ASSERT_TRUE(worker); 536 ASSERT_TRUE(worker);
531 registry()->OnWorkerReadyForInspection(worker->process_id(), 537 ASSERT_TRUE(embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]);
532 embedded_worker_id); 538 embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]
539 ->OnReadyForInspection();
540 base::RunLoop().RunUntilIdle();
533 } 541 }
534 542
535 void EmbeddedWorkerTestHelper::SimulateWorkerScriptCached( 543 void EmbeddedWorkerTestHelper::SimulateWorkerScriptCached(
536 int embedded_worker_id) { 544 int embedded_worker_id) {
537 int64_t version_id = 545 int64_t version_id =
538 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id]; 546 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id];
539 ServiceWorkerVersion* version = context()->GetLiveVersion(version_id); 547 ServiceWorkerVersion* version = context()->GetLiveVersion(version_id);
540 if (!version) 548 if (!version)
541 return; 549 return;
542 if (!version->script_cache_map()->size()) { 550 if (!version->script_cache_map()->size()) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
590 registry()->OnWorkerStopped(worker->process_id(), embedded_worker_id); 598 registry()->OnWorkerStopped(worker->process_id(), embedded_worker_id);
591 } 599 }
592 600
593 void EmbeddedWorkerTestHelper::SimulateSend(IPC::Message* message) { 601 void EmbeddedWorkerTestHelper::SimulateSend(IPC::Message* message) {
594 registry()->OnMessageReceived(*message, mock_render_process_id_); 602 registry()->OnMessageReceived(*message, mock_render_process_id_);
595 delete message; 603 delete message;
596 } 604 }
597 605
598 void EmbeddedWorkerTestHelper::OnStartWorkerStub( 606 void EmbeddedWorkerTestHelper::OnStartWorkerStub(
599 const EmbeddedWorkerStartParams& params, 607 const EmbeddedWorkerStartParams& params,
600 mojom::ServiceWorkerEventDispatcherRequest request) { 608 mojom::ServiceWorkerEventDispatcherRequest request,
609 mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host) {
601 EmbeddedWorkerInstance* worker = 610 EmbeddedWorkerInstance* worker =
602 registry()->GetWorker(params.embedded_worker_id); 611 registry()->GetWorker(params.embedded_worker_id);
603 ASSERT_TRUE(worker); 612 ASSERT_TRUE(worker);
604 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); 613 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status());
605 base::ThreadTaskRunnerHandle::Get()->PostTask( 614 base::ThreadTaskRunnerHandle::Get()->PostTask(
606 FROM_HERE, 615 FROM_HERE,
607 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, AsWeakPtr(), 616 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, AsWeakPtr(),
608 params.embedded_worker_id, params.service_worker_version_id, 617 params.embedded_worker_id, params.service_worker_version_id,
609 params.scope, params.script_url, params.pause_after_download, 618 params.scope, params.script_url, params.pause_after_download,
610 base::Passed(&request))); 619 base::Passed(&request), base::Passed(&instance_host)));
611 } 620 }
612 621
613 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub( 622 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub(
614 int embedded_worker_id) { 623 int embedded_worker_id) {
615 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 624 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
616 ASSERT_TRUE(worker); 625 ASSERT_TRUE(worker);
617 base::ThreadTaskRunnerHandle::Get()->PostTask( 626 base::ThreadTaskRunnerHandle::Get()->PostTask(
618 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload, 627 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload,
619 AsWeakPtr(), embedded_worker_id)); 628 AsWeakPtr(), embedded_worker_id));
620 } 629 }
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 service_manager::InterfaceProviderSpec()); 792 service_manager::InterfaceProviderSpec());
784 793
785 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces( 794 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces(
786 new service_manager::InterfaceProvider); 795 new service_manager::InterfaceProvider);
787 remote_interfaces->Bind(std::move(interfaces)); 796 remote_interfaces->Bind(std::move(interfaces));
788 rph->SetRemoteInterfaces(std::move(remote_interfaces)); 797 rph->SetRemoteInterfaces(std::move(remote_interfaces));
789 return registry; 798 return registry;
790 } 799 }
791 800
792 } // namespace content 801 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698