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

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

Issue 2307543002: ServiceWorker: Mojofication of EWInstance::StopWorker (Closed)
Patch Set: Incorporated with the review Created 4 years, 3 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 <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 100
101 embedded_worker_id_ = params.embedded_worker_id; 101 embedded_worker_id_ = params.embedded_worker_id;
102 102
103 EmbeddedWorkerInstance* worker = 103 EmbeddedWorkerInstance* worker =
104 helper_->registry()->GetWorker(params.embedded_worker_id); 104 helper_->registry()->GetWorker(params.embedded_worker_id);
105 ASSERT_TRUE(worker != NULL); 105 ASSERT_TRUE(worker != NULL);
106 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); 106 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status());
107 107
108 base::ThreadTaskRunnerHandle::Get()->PostTask( 108 base::ThreadTaskRunnerHandle::Get()->PostTask(
109 FROM_HERE, 109 FROM_HERE,
110 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, 110 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, helper_->AsWeakPtr(),
111 helper_->weak_factory_.GetWeakPtr(), params.embedded_worker_id, 111 params.embedded_worker_id, params.service_worker_version_id,
112 params.service_worker_version_id, params.scope, 112 params.scope, params.script_url, params.pause_after_download));
113 params.script_url, params.pause_after_download)); 113 }
114
115 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker(
116 const StopWorkerCallback& callback) {
117 if (!helper_)
118 return;
119
120 ASSERT_TRUE(embedded_worker_id_);
121 EmbeddedWorkerInstance* worker =
122 helper_->registry()->GetWorker(embedded_worker_id_.value());
123 ASSERT_TRUE(worker != NULL);
124 EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, worker->status());
125
126 callback.Run();
114 } 127 }
115 128
116 // static 129 // static
117 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::Bind( 130 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::Bind(
118 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, 131 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper,
119 mojom::EmbeddedWorkerInstanceClientRequest request) { 132 mojom::EmbeddedWorkerInstanceClientRequest request) {
120 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>>* clients = 133 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>>* clients =
121 helper->mock_instance_clients(); 134 helper->mock_instance_clients();
122 size_t next_client_index = helper->mock_instance_clients_next_index_; 135 size_t next_client_index = helper->mock_instance_clients_next_index_;
123 136
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 IPC_MESSAGE_UNHANDLED(handled = false) 207 IPC_MESSAGE_UNHANDLED(handled = false)
195 IPC_END_MESSAGE_MAP() 208 IPC_END_MESSAGE_MAP()
196 209
197 // IPC::TestSink only records messages that are not handled by filters, 210 // IPC::TestSink only records messages that are not handled by filters,
198 // so we just forward all messages to the separate sink. 211 // so we just forward all messages to the separate sink.
199 sink_.OnMessageReceived(message); 212 sink_.OnMessageReceived(message);
200 213
201 return handled; 214 return handled;
202 } 215 }
203 216
217 void EmbeddedWorkerTestHelper::RegisterMockInstanceClient(
218 std::unique_ptr<MockEmbeddedWorkerInstanceClient> client) {
219 mock_instance_clients_.push_back(std::move(client));
220 }
221
204 ServiceWorkerContextCore* EmbeddedWorkerTestHelper::context() { 222 ServiceWorkerContextCore* EmbeddedWorkerTestHelper::context() {
205 return wrapper_->context(); 223 return wrapper_->context();
206 } 224 }
207 225
208 void EmbeddedWorkerTestHelper::ShutdownContext() { 226 void EmbeddedWorkerTestHelper::ShutdownContext() {
209 wrapper_->Shutdown(); 227 wrapper_->Shutdown();
210 wrapper_ = NULL; 228 wrapper_ = NULL;
211 } 229 }
212 230
213 void EmbeddedWorkerTestHelper::OnStartWorker(int embedded_worker_id, 231 void EmbeddedWorkerTestHelper::OnStartWorker(int embedded_worker_id,
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 } 395 }
378 396
379 void EmbeddedWorkerTestHelper::OnStartWorkerStub( 397 void EmbeddedWorkerTestHelper::OnStartWorkerStub(
380 const EmbeddedWorkerStartParams& params) { 398 const EmbeddedWorkerStartParams& params) {
381 EmbeddedWorkerInstance* worker = 399 EmbeddedWorkerInstance* worker =
382 registry()->GetWorker(params.embedded_worker_id); 400 registry()->GetWorker(params.embedded_worker_id);
383 ASSERT_TRUE(worker != NULL); 401 ASSERT_TRUE(worker != NULL);
384 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); 402 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status());
385 base::ThreadTaskRunnerHandle::Get()->PostTask( 403 base::ThreadTaskRunnerHandle::Get()->PostTask(
386 FROM_HERE, 404 FROM_HERE,
387 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, 405 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, AsWeakPtr(),
388 weak_factory_.GetWeakPtr(), params.embedded_worker_id, 406 params.embedded_worker_id, params.service_worker_version_id,
389 params.service_worker_version_id, params.scope, 407 params.scope, params.script_url, params.pause_after_download));
390 params.script_url, params.pause_after_download));
391 } 408 }
392 409
393 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub( 410 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub(
394 int embedded_worker_id) { 411 int embedded_worker_id) {
395 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 412 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
396 ASSERT_TRUE(worker); 413 ASSERT_TRUE(worker);
397 base::ThreadTaskRunnerHandle::Get()->PostTask( 414 base::ThreadTaskRunnerHandle::Get()->PostTask(
398 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload, 415 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload,
399 weak_factory_.GetWeakPtr(), embedded_worker_id)); 416 AsWeakPtr(), embedded_worker_id));
400 } 417 }
401 418
402 void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) { 419 void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) {
403 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 420 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
404 ASSERT_TRUE(worker != NULL); 421 ASSERT_TRUE(worker != NULL);
405 base::ThreadTaskRunnerHandle::Get()->PostTask( 422 base::ThreadTaskRunnerHandle::Get()->PostTask(
406 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker, 423 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker,
407 weak_factory_.GetWeakPtr(), embedded_worker_id)); 424 AsWeakPtr(), embedded_worker_id));
408 } 425 }
409 426
410 void EmbeddedWorkerTestHelper::OnMessageToWorkerStub( 427 void EmbeddedWorkerTestHelper::OnMessageToWorkerStub(
411 int thread_id, 428 int thread_id,
412 int embedded_worker_id, 429 int embedded_worker_id,
413 const IPC::Message& message) { 430 const IPC::Message& message) {
414 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 431 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
415 ASSERT_TRUE(worker != NULL); 432 ASSERT_TRUE(worker != NULL);
416 EXPECT_EQ(worker->thread_id(), thread_id); 433 EXPECT_EQ(worker->thread_id(), thread_id);
417 base::ThreadTaskRunnerHandle::Get()->PostTask( 434 base::ThreadTaskRunnerHandle::Get()->PostTask(
418 FROM_HERE, 435 FROM_HERE,
419 base::Bind( 436 base::Bind(
420 base::IgnoreResult(&EmbeddedWorkerTestHelper::OnMessageToWorker), 437 base::IgnoreResult(&EmbeddedWorkerTestHelper::OnMessageToWorker),
421 weak_factory_.GetWeakPtr(), thread_id, embedded_worker_id, message)); 438 AsWeakPtr(), thread_id, embedded_worker_id, message));
422 } 439 }
423 440
424 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) { 441 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) {
425 base::ThreadTaskRunnerHandle::Get()->PostTask( 442 base::ThreadTaskRunnerHandle::Get()->PostTask(
426 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, 443 FROM_HERE,
427 weak_factory_.GetWeakPtr(), 444 base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, AsWeakPtr(),
428 current_embedded_worker_id_, request_id)); 445 current_embedded_worker_id_, request_id));
429 } 446 }
430 447
431 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( 448 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub(
432 int request_id, 449 int request_id,
433 const ServiceWorkerMsg_ExtendableMessageEvent_Params& params) { 450 const ServiceWorkerMsg_ExtendableMessageEvent_Params& params) {
434 base::ThreadTaskRunnerHandle::Get()->PostTask( 451 base::ThreadTaskRunnerHandle::Get()->PostTask(
435 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, 452 FROM_HERE,
436 weak_factory_.GetWeakPtr(), 453 base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent,
437 current_embedded_worker_id_, request_id)); 454 AsWeakPtr(), current_embedded_worker_id_, request_id));
438 } 455 }
439 456
440 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { 457 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) {
441 base::ThreadTaskRunnerHandle::Get()->PostTask( 458 base::ThreadTaskRunnerHandle::Get()->PostTask(
442 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, 459 FROM_HERE,
443 weak_factory_.GetWeakPtr(), 460 base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, AsWeakPtr(),
444 current_embedded_worker_id_, request_id)); 461 current_embedded_worker_id_, request_id));
445 } 462 }
446 463
447 void EmbeddedWorkerTestHelper::OnFetchEventStub( 464 void EmbeddedWorkerTestHelper::OnFetchEventStub(
448 int response_id, 465 int response_id,
449 int event_finish_id, 466 int event_finish_id,
450 const ServiceWorkerFetchRequest& request) { 467 const ServiceWorkerFetchRequest& request) {
451 base::ThreadTaskRunnerHandle::Get()->PostTask( 468 base::ThreadTaskRunnerHandle::Get()->PostTask(
452 FROM_HERE, 469 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent,
453 base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent, 470 AsWeakPtr(), current_embedded_worker_id_,
454 weak_factory_.GetWeakPtr(), current_embedded_worker_id_, 471 response_id, event_finish_id, request));
455 response_id, event_finish_id, request));
456 } 472 }
457 473
458 void EmbeddedWorkerTestHelper::OnPushEventStub( 474 void EmbeddedWorkerTestHelper::OnPushEventStub(
459 int request_id, 475 int request_id,
460 const PushEventPayload& payload) { 476 const PushEventPayload& payload) {
461 base::ThreadTaskRunnerHandle::Get()->PostTask( 477 base::ThreadTaskRunnerHandle::Get()->PostTask(
462 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent, 478 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent, AsWeakPtr(),
463 weak_factory_.GetWeakPtr(),
464 current_embedded_worker_id_, request_id, payload)); 479 current_embedded_worker_id_, request_id, payload));
465 } 480 }
466 481
467 void EmbeddedWorkerTestHelper::OnSetupMojoStub( 482 void EmbeddedWorkerTestHelper::OnSetupMojoStub(
468 int thread_id, 483 int thread_id,
469 shell::mojom::InterfaceProviderRequest request, 484 shell::mojom::InterfaceProviderRequest request,
470 shell::mojom::InterfaceProviderPtr remote_interfaces) { 485 shell::mojom::InterfaceProviderPtr remote_interfaces) {
471 std::unique_ptr<shell::InterfaceRegistry> local( 486 std::unique_ptr<shell::InterfaceRegistry> local(
472 new shell::InterfaceRegistry); 487 new shell::InterfaceRegistry);
473 local->Bind(std::move(request)); 488 local->Bind(std::move(request));
(...skipping 18 matching lines...) Expand all
492 new MockMessagePortMessageFilter); 507 new MockMessagePortMessageFilter);
493 message_port_message_filters_.push_back(filter); 508 message_port_message_filters_.push_back(filter);
494 return filter.get(); 509 return filter.get();
495 } 510 }
496 511
497 std::unique_ptr<shell::InterfaceRegistry> 512 std::unique_ptr<shell::InterfaceRegistry>
498 EmbeddedWorkerTestHelper::CreateInterfaceRegistry(MockRenderProcessHost* rph) { 513 EmbeddedWorkerTestHelper::CreateInterfaceRegistry(MockRenderProcessHost* rph) {
499 std::unique_ptr<shell::InterfaceRegistry> registry( 514 std::unique_ptr<shell::InterfaceRegistry> registry(
500 new shell::InterfaceRegistry); 515 new shell::InterfaceRegistry);
501 registry->AddInterface( 516 registry->AddInterface(
502 base::Bind(&MockEmbeddedWorkerSetup::Create, weak_factory_.GetWeakPtr())); 517 base::Bind(&MockEmbeddedWorkerSetup::Create, AsWeakPtr()));
503 registry->AddInterface(base::Bind(&MockEmbeddedWorkerInstanceClient::Bind, 518 registry->AddInterface(
504 weak_factory_.GetWeakPtr())); 519 base::Bind(&MockEmbeddedWorkerInstanceClient::Bind, AsWeakPtr()));
505 520
506 shell::mojom::InterfaceProviderPtr interfaces; 521 shell::mojom::InterfaceProviderPtr interfaces;
507 registry->Bind(mojo::GetProxy(&interfaces)); 522 registry->Bind(mojo::GetProxy(&interfaces));
508 523
509 std::unique_ptr<shell::InterfaceProvider> remote_interfaces( 524 std::unique_ptr<shell::InterfaceProvider> remote_interfaces(
510 new shell::InterfaceProvider); 525 new shell::InterfaceProvider);
511 remote_interfaces->Bind(std::move(interfaces)); 526 remote_interfaces->Bind(std::move(interfaces));
512 rph->SetRemoteInterfaces(std::move(remote_interfaces)); 527 rph->SetRemoteInterfaces(std::move(remote_interfaces));
513 return registry; 528 return registry;
514 } 529 }
515 530
516 } // namespace content 531 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698