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

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

Issue 2787883003: [ServiceWorker] Add EmbeddedWorkerInstanceHost Interface. (Closed)
Patch Set: Address comments from shimazu@ 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/message_loop/message_loop.h"
17 #include "base/run_loop.h"
16 #include "base/threading/thread_task_runner_handle.h" 18 #include "base/threading/thread_task_runner_handle.h"
17 #include "base/time/time.h" 19 #include "base/time/time.h"
18 #include "content/browser/service_worker/embedded_worker_instance.h" 20 #include "content/browser/service_worker/embedded_worker_instance.h"
19 #include "content/browser/service_worker/embedded_worker_registry.h" 21 #include "content/browser/service_worker/embedded_worker_registry.h"
20 #include "content/browser/service_worker/embedded_worker_status.h" 22 #include "content/browser/service_worker/embedded_worker_status.h"
21 #include "content/browser/service_worker/service_worker_context_core.h" 23 #include "content/browser/service_worker/service_worker_context_core.h"
22 #include "content/browser/service_worker/service_worker_context_wrapper.h" 24 #include "content/browser/service_worker/service_worker_context_wrapper.h"
23 #include "content/browser/service_worker/service_worker_dispatcher_host.h" 25 #include "content/browser/service_worker/service_worker_dispatcher_host.h"
26 #include "content/browser/service_worker/service_worker_test_utils.h"
24 #include "content/common/background_fetch/background_fetch_types.h" 27 #include "content/common/background_fetch/background_fetch_types.h"
25 #include "content/common/service_worker/embedded_worker_messages.h" 28 #include "content/common/service_worker/embedded_worker_messages.h"
26 #include "content/common/service_worker/embedded_worker_start_params.h" 29 #include "content/common/service_worker/embedded_worker_start_params.h"
27 #include "content/common/service_worker/service_worker_messages.h" 30 #include "content/common/service_worker/service_worker_messages.h"
28 #include "content/common/service_worker/service_worker_utils.h" 31 #include "content/common/service_worker/service_worker_utils.h"
29 #include "content/public/common/push_event_payload.h" 32 #include "content/public/common/push_event_payload.h"
30 #include "content/public/test/mock_render_process_host.h" 33 #include "content/public/test/mock_render_process_host.h"
31 #include "content/public/test/test_browser_context.h" 34 #include "content/public/test/test_browser_context.h"
32 #include "mojo/public/cpp/bindings/interface_request.h" 35 #include "mojo/public/cpp/bindings/interface_request.h"
33 #include "mojo/public/cpp/bindings/strong_binding.h" 36 #include "mojo/public/cpp/bindings/strong_binding.h"
(...skipping 30 matching lines...) Expand all
64 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient:: 67 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::
65 MockEmbeddedWorkerInstanceClient( 68 MockEmbeddedWorkerInstanceClient(
66 base::WeakPtr<EmbeddedWorkerTestHelper> helper) 69 base::WeakPtr<EmbeddedWorkerTestHelper> helper)
67 : helper_(helper), binding_(this) {} 70 : helper_(helper), binding_(this) {}
68 71
69 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient:: 72 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::
70 ~MockEmbeddedWorkerInstanceClient() {} 73 ~MockEmbeddedWorkerInstanceClient() {}
71 74
72 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StartWorker( 75 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StartWorker(
73 const EmbeddedWorkerStartParams& params, 76 const EmbeddedWorkerStartParams& params,
74 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) { 77 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request,
78 mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host) {
75 if (!helper_) 79 if (!helper_)
76 return; 80 return;
77 81
78 embedded_worker_id_ = params.embedded_worker_id; 82 embedded_worker_id_ = params.embedded_worker_id;
79 83
80 EmbeddedWorkerInstance* worker = 84 EmbeddedWorkerInstance* worker =
81 helper_->registry()->GetWorker(params.embedded_worker_id); 85 helper_->registry()->GetWorker(params.embedded_worker_id);
82 ASSERT_TRUE(worker); 86 ASSERT_TRUE(worker);
83 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); 87 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status());
84 88
85 helper_->OnStartWorkerStub(params, std::move(dispatcher_request)); 89 helper_->OnStartWorkerStub(params, std::move(dispatcher_request),
90 std::move(instance_host));
86 } 91 }
87 92
88 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker( 93 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker() {
89 const StopWorkerCallback& callback) {
90 if (!helper_) 94 if (!helper_)
91 return; 95 return;
92 96
93 ASSERT_TRUE(embedded_worker_id_); 97 ASSERT_TRUE(embedded_worker_id_);
94 EmbeddedWorkerInstance* worker = 98 EmbeddedWorkerInstance* worker =
95 helper_->registry()->GetWorker(embedded_worker_id_.value()); 99 helper_->registry()->GetWorker(embedded_worker_id_.value());
96 // |worker| is possible to be null when corresponding EmbeddedWorkerInstance 100 // |worker| is possible to be null when corresponding EmbeddedWorkerInstance
97 // is removed right after sending StopWorker. 101 // is removed right after sending StopWorker.
98 if (worker) 102 if (worker)
99 EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, worker->status()); 103 EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, worker->status());
100 helper_->OnStopWorkerStub(callback); 104 helper_->OnStopWorkerStub(embedded_worker_id_.value());
101 } 105 }
102 106
103 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient:: 107 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::
104 ResumeAfterDownload() { 108 ResumeAfterDownload() {
105 helper_->OnResumeAfterDownloadStub(embedded_worker_id_.value()); 109 helper_->OnResumeAfterDownloadStub(embedded_worker_id_.value());
106 } 110 }
107 111
108 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient:: 112 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::
109 AddMessageToConsole(blink::WebConsoleMessage::Level level, 113 AddMessageToConsole(blink::WebConsoleMessage::Level level,
110 const std::string& message) { 114 const std::string& message) {
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 271
268 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper( 272 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(
269 const base::FilePath& user_data_directory) 273 const base::FilePath& user_data_directory)
270 : browser_context_(new TestBrowserContext), 274 : browser_context_(new TestBrowserContext),
271 render_process_host_(new MockRenderProcessHost(browser_context_.get())), 275 render_process_host_(new MockRenderProcessHost(browser_context_.get())),
272 new_render_process_host_( 276 new_render_process_host_(
273 new MockRenderProcessHost(browser_context_.get())), 277 new MockRenderProcessHost(browser_context_.get())),
274 wrapper_(new ServiceWorkerContextWrapper(browser_context_.get())), 278 wrapper_(new ServiceWorkerContextWrapper(browser_context_.get())),
275 mock_instance_clients_next_index_(0), 279 mock_instance_clients_next_index_(0),
276 next_thread_id_(0), 280 next_thread_id_(0),
281 next_provider_id_(1000),
277 mock_render_process_id_(render_process_host_->GetID()), 282 mock_render_process_id_(render_process_host_->GetID()),
278 new_mock_render_process_id_(new_render_process_host_->GetID()), 283 new_mock_render_process_id_(new_render_process_host_->GetID()),
279 weak_factory_(this) { 284 weak_factory_(this) {
280 std::unique_ptr<MockServiceWorkerDatabaseTaskManager> database_task_manager( 285 std::unique_ptr<MockServiceWorkerDatabaseTaskManager> database_task_manager(
281 new MockServiceWorkerDatabaseTaskManager( 286 new MockServiceWorkerDatabaseTaskManager(
282 base::ThreadTaskRunnerHandle::Get())); 287 base::ThreadTaskRunnerHandle::Get()));
283 wrapper_->InitInternal(user_data_directory, std::move(database_task_manager), 288 wrapper_->InitInternal(user_data_directory, std::move(database_task_manager),
284 base::ThreadTaskRunnerHandle::Get(), nullptr, nullptr); 289 base::ThreadTaskRunnerHandle::Get(), nullptr, nullptr);
285 wrapper_->process_manager()->SetProcessIdForTest(mock_render_process_id()); 290 wrapper_->process_manager()->SetProcessIdForTest(mock_render_process_id());
286 wrapper_->process_manager()->SetNewProcessIdForTest(new_render_process_id()); 291 wrapper_->process_manager()->SetNewProcessIdForTest(new_render_process_id());
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 new net::HttpResponseHeaders(std::string(data, arraysize(data))); 369 new net::HttpResponseHeaders(std::string(data, arraysize(data)));
365 return info; 370 return info;
366 } 371 }
367 372
368 void EmbeddedWorkerTestHelper::OnStartWorker( 373 void EmbeddedWorkerTestHelper::OnStartWorker(
369 int embedded_worker_id, 374 int embedded_worker_id,
370 int64_t service_worker_version_id, 375 int64_t service_worker_version_id,
371 const GURL& scope, 376 const GURL& scope,
372 const GURL& script_url, 377 const GURL& script_url,
373 bool pause_after_download, 378 bool pause_after_download,
374 mojom::ServiceWorkerEventDispatcherRequest request) { 379 mojom::ServiceWorkerEventDispatcherRequest request,
380 mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host) {
375 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 381 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
376 ASSERT_TRUE(worker); 382 ASSERT_TRUE(worker);
377 MockServiceWorkerEventDispatcher::Create(AsWeakPtr(), worker->thread_id(), 383 MockServiceWorkerEventDispatcher::Create(AsWeakPtr(), worker->thread_id(),
378 std::move(request)); 384 std::move(request));
379 385
380 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id] = 386 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id] =
381 service_worker_version_id; 387 service_worker_version_id;
388 embedded_worker_id_instance_host_ptr_map_[embedded_worker_id].Bind(
389 std::move(instance_host));
390
382 SimulateWorkerReadyForInspection(embedded_worker_id); 391 SimulateWorkerReadyForInspection(embedded_worker_id);
383 SimulateWorkerScriptCached(embedded_worker_id); 392 SimulateWorkerScriptCached(embedded_worker_id);
384 SimulateWorkerScriptLoaded(embedded_worker_id); 393 SimulateWorkerScriptLoaded(embedded_worker_id);
385 if (!pause_after_download) 394 if (!pause_after_download)
386 OnResumeAfterDownload(embedded_worker_id); 395 OnResumeAfterDownload(embedded_worker_id);
387 } 396 }
388 397
389 void EmbeddedWorkerTestHelper::OnResumeAfterDownload(int embedded_worker_id) { 398 void EmbeddedWorkerTestHelper::OnResumeAfterDownload(int embedded_worker_id) {
390 SimulateWorkerThreadStarted(GetNextThreadId(), embedded_worker_id); 399 SimulateWorkerThreadStarted(GetNextThreadId(), embedded_worker_id,
400 GetNextProviderId());
391 SimulateWorkerScriptEvaluated(embedded_worker_id, true /* success */); 401 SimulateWorkerScriptEvaluated(embedded_worker_id, true /* success */);
392 SimulateWorkerStarted(embedded_worker_id); 402 SimulateWorkerStarted(embedded_worker_id);
393 } 403 }
394 404
395 void EmbeddedWorkerTestHelper::OnStopWorker( 405 void EmbeddedWorkerTestHelper::OnStopWorker(int embedded_worker_id) {
396 const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback& callback) {
397 // By default just notify the sender that the worker is stopped. 406 // By default just notify the sender that the worker is stopped.
398 callback.Run(); 407 SimulateWorkerStopped(embedded_worker_id);
399 } 408 }
400 409
401 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id, 410 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id,
402 int embedded_worker_id, 411 int embedded_worker_id,
403 const IPC::Message& message) { 412 const IPC::Message& message) {
404 bool handled = true; 413 bool handled = true;
405 current_embedded_worker_id_ = embedded_worker_id; 414 current_embedded_worker_id_ = embedded_worker_id;
406 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message) 415 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message)
407 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub) 416 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub)
408 IPC_MESSAGE_UNHANDLED(handled = false) 417 IPC_MESSAGE_UNHANDLED(handled = false)
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 DispatchPaymentRequestEventCallback& callback) { 530 DispatchPaymentRequestEventCallback& callback) {
522 response_callback->OnPaymentAppResponse( 531 response_callback->OnPaymentAppResponse(
523 payments::mojom::PaymentAppResponse::New(), base::Time::Now()); 532 payments::mojom::PaymentAppResponse::New(), base::Time::Now());
524 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); 533 callback.Run(SERVICE_WORKER_OK, base::Time::Now());
525 } 534 }
526 535
527 void EmbeddedWorkerTestHelper::SimulateWorkerReadyForInspection( 536 void EmbeddedWorkerTestHelper::SimulateWorkerReadyForInspection(
528 int embedded_worker_id) { 537 int embedded_worker_id) {
529 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 538 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
530 ASSERT_TRUE(worker); 539 ASSERT_TRUE(worker);
531 registry()->OnWorkerReadyForInspection(worker->process_id(), 540 ASSERT_TRUE(embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]);
532 embedded_worker_id); 541 embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]
542 ->OnReadyForInspection();
543 base::RunLoop().RunUntilIdle();
533 } 544 }
534 545
535 void EmbeddedWorkerTestHelper::SimulateWorkerScriptCached( 546 void EmbeddedWorkerTestHelper::SimulateWorkerScriptCached(
536 int embedded_worker_id) { 547 int embedded_worker_id) {
537 int64_t version_id = 548 int64_t version_id =
538 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id]; 549 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id];
539 ServiceWorkerVersion* version = context()->GetLiveVersion(version_id); 550 ServiceWorkerVersion* version = context()->GetLiveVersion(version_id);
540 if (!version) 551 if (!version)
541 return; 552 return;
542 if (!version->script_cache_map()->size()) { 553 if (!version->script_cache_map()->size()) {
543 std::vector<ServiceWorkerDatabase::ResourceRecord> records; 554 std::vector<ServiceWorkerDatabase::ResourceRecord> records;
544 // Add a dummy ResourceRecord for the main script to the script cache map of 555 // Add a dummy ResourceRecord for the main script to the script cache map of
545 // the ServiceWorkerVersion. We use embedded_worker_id for resource_id to 556 // the ServiceWorkerVersion. We use embedded_worker_id for resource_id to
546 // avoid ID collision. 557 // avoid ID collision.
547 records.push_back(ServiceWorkerDatabase::ResourceRecord( 558 records.push_back(ServiceWorkerDatabase::ResourceRecord(
548 embedded_worker_id, version->script_url(), 100)); 559 embedded_worker_id, version->script_url(), 100));
549 version->script_cache_map()->SetResources(records); 560 version->script_cache_map()->SetResources(records);
550 } 561 }
551 if (!version->GetMainScriptHttpResponseInfo()) 562 if (!version->GetMainScriptHttpResponseInfo())
552 version->SetMainScriptHttpResponseInfo(CreateHttpResponseInfo()); 563 version->SetMainScriptHttpResponseInfo(CreateHttpResponseInfo());
553 } 564 }
554 565
555 void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded( 566 void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded(
556 int embedded_worker_id) { 567 int embedded_worker_id) {
557 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 568 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
558 ASSERT_TRUE(worker); 569 ASSERT_TRUE(worker);
559 registry()->OnWorkerScriptLoaded(worker->process_id(), embedded_worker_id); 570 ASSERT_TRUE(embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]);
571 embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]
572 ->OnScriptLoaded();
573 base::RunLoop().RunUntilIdle();
560 } 574 }
561 575
562 void EmbeddedWorkerTestHelper::SimulateWorkerThreadStarted( 576 void EmbeddedWorkerTestHelper::SimulateWorkerThreadStarted(
563 int thread_id, 577 int thread_id,
564 int embedded_worker_id) { 578 int embedded_worker_id,
565 thread_id_embedded_worker_id_map_[thread_id] = embedded_worker_id; 579 int provider_id) {
566 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 580 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
567 ASSERT_TRUE(worker); 581 ASSERT_TRUE(worker);
568 registry()->OnWorkerThreadStarted(worker->process_id(), thread_id, 582 // Prepare a provider host to be used by following OnThreadStarted().
569 embedded_worker_id); 583 auto host = CreateProviderHostForServiceWorkerContext(
584 worker->process_id(), provider_id, true /* is_parent_frame_secure */,
585 context()->AsWeakPtr());
586 context()->AddProviderHost(std::move(host));
587
588 ASSERT_TRUE(embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]);
589 embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]
590 ->OnThreadStarted(thread_id, provider_id);
591 base::RunLoop().RunUntilIdle();
570 } 592 }
571 593
572 void EmbeddedWorkerTestHelper::SimulateWorkerScriptEvaluated( 594 void EmbeddedWorkerTestHelper::SimulateWorkerScriptEvaluated(
573 int embedded_worker_id, 595 int embedded_worker_id,
574 bool success) { 596 bool success) {
575 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 597 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
576 ASSERT_TRUE(worker); 598 ASSERT_TRUE(worker);
577 registry()->OnWorkerScriptEvaluated(worker->process_id(), embedded_worker_id, 599 ASSERT_TRUE(embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]);
578 success); 600 embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]
601 ->OnScriptEvaluated(success);
602 base::RunLoop().RunUntilIdle();
579 } 603 }
580 604
581 void EmbeddedWorkerTestHelper::SimulateWorkerStarted(int embedded_worker_id) { 605 void EmbeddedWorkerTestHelper::SimulateWorkerStarted(int embedded_worker_id) {
582 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 606 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
583 ASSERT_TRUE(worker); 607 ASSERT_TRUE(worker);
584 registry()->OnWorkerStarted(worker->process_id(), embedded_worker_id); 608 ASSERT_TRUE(embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]);
609 embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]->OnStarted();
610 base::RunLoop().RunUntilIdle();
585 } 611 }
586 612
587 void EmbeddedWorkerTestHelper::SimulateWorkerStopped(int embedded_worker_id) { 613 void EmbeddedWorkerTestHelper::SimulateWorkerStopped(int embedded_worker_id) {
588 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 614 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
589 if (worker) 615 if (worker) {
590 registry()->OnWorkerStopped(worker->process_id(), embedded_worker_id); 616 ASSERT_TRUE(embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]);
617 embedded_worker_id_instance_host_ptr_map_[embedded_worker_id]->OnStopped();
618 base::RunLoop().RunUntilIdle();
619 }
591 } 620 }
592 621
593 void EmbeddedWorkerTestHelper::SimulateSend(IPC::Message* message) { 622 void EmbeddedWorkerTestHelper::SimulateSend(IPC::Message* message) {
594 registry()->OnMessageReceived(*message, mock_render_process_id_); 623 registry()->OnMessageReceived(*message, mock_render_process_id_);
595 delete message; 624 delete message;
596 } 625 }
597 626
598 void EmbeddedWorkerTestHelper::OnStartWorkerStub( 627 void EmbeddedWorkerTestHelper::OnStartWorkerStub(
599 const EmbeddedWorkerStartParams& params, 628 const EmbeddedWorkerStartParams& params,
600 mojom::ServiceWorkerEventDispatcherRequest request) { 629 mojom::ServiceWorkerEventDispatcherRequest request,
630 mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host) {
601 EmbeddedWorkerInstance* worker = 631 EmbeddedWorkerInstance* worker =
602 registry()->GetWorker(params.embedded_worker_id); 632 registry()->GetWorker(params.embedded_worker_id);
603 ASSERT_TRUE(worker); 633 ASSERT_TRUE(worker);
604 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); 634 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status());
605 base::ThreadTaskRunnerHandle::Get()->PostTask( 635 base::ThreadTaskRunnerHandle::Get()->PostTask(
606 FROM_HERE, 636 FROM_HERE,
607 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, AsWeakPtr(), 637 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, AsWeakPtr(),
608 params.embedded_worker_id, params.service_worker_version_id, 638 params.embedded_worker_id, params.service_worker_version_id,
609 params.scope, params.script_url, params.pause_after_download, 639 params.scope, params.script_url, params.pause_after_download,
610 base::Passed(&request))); 640 base::Passed(&request), base::Passed(&instance_host)));
611 } 641 }
612 642
613 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub( 643 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub(
614 int embedded_worker_id) { 644 int embedded_worker_id) {
615 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 645 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
616 ASSERT_TRUE(worker); 646 ASSERT_TRUE(worker);
617 base::ThreadTaskRunnerHandle::Get()->PostTask( 647 base::ThreadTaskRunnerHandle::Get()->PostTask(
618 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload, 648 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload,
619 AsWeakPtr(), embedded_worker_id)); 649 AsWeakPtr(), embedded_worker_id));
620 } 650 }
621 651
622 void EmbeddedWorkerTestHelper::OnStopWorkerStub( 652 void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) {
623 const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback& callback) {
624 base::ThreadTaskRunnerHandle::Get()->PostTask( 653 base::ThreadTaskRunnerHandle::Get()->PostTask(
625 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker, 654 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker,
626 AsWeakPtr(), callback)); 655 AsWeakPtr(), embedded_worker_id));
627 } 656 }
628 657
629 void EmbeddedWorkerTestHelper::OnMessageToWorkerStub( 658 void EmbeddedWorkerTestHelper::OnMessageToWorkerStub(
630 int thread_id, 659 int thread_id,
631 int embedded_worker_id, 660 int embedded_worker_id,
632 const IPC::Message& message) { 661 const IPC::Message& message) {
633 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 662 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
634 ASSERT_TRUE(worker); 663 ASSERT_TRUE(worker);
635 EXPECT_EQ(worker->thread_id(), thread_id); 664 EXPECT_EQ(worker->thread_id(), thread_id);
636 base::ThreadTaskRunnerHandle::Get()->PostTask( 665 base::ThreadTaskRunnerHandle::Get()->PostTask(
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 service_manager::InterfaceProviderSpec()); 812 service_manager::InterfaceProviderSpec());
784 813
785 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces( 814 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces(
786 new service_manager::InterfaceProvider); 815 new service_manager::InterfaceProvider);
787 remote_interfaces->Bind(std::move(interfaces)); 816 remote_interfaces->Bind(std::move(interfaces));
788 rph->SetRemoteInterfaces(std::move(remote_interfaces)); 817 rph->SetRemoteInterfaces(std::move(remote_interfaces));
789 return registry; 818 return registry;
790 } 819 }
791 820
792 } // namespace content 821 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698