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

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

Issue 2628553002: ServiceWorker: OnSimpleEventFinished could be called after timed out (Closed)
Patch Set: Updated comments and removed ' != NULL' Created 3 years, 11 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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 ~MockMessagePortMessageFilter() override {} 54 ~MockMessagePortMessageFilter() override {}
55 base::AtomicSequenceNumber next_routing_id_; 55 base::AtomicSequenceNumber next_routing_id_;
56 ScopedVector<IPC::Message> message_queue_; 56 ScopedVector<IPC::Message> message_queue_;
57 }; 57 };
58 58
59 } // namespace 59 } // namespace
60 60
61 class EmbeddedWorkerTestHelper::MockEmbeddedWorkerSetup 61 class EmbeddedWorkerTestHelper::MockEmbeddedWorkerSetup
62 : public mojom::EmbeddedWorkerSetup { 62 : public mojom::EmbeddedWorkerSetup {
63 public: 63 public:
64 explicit MockEmbeddedWorkerSetup(
65 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper)
66 : helper_(helper) {}
67
68 static void Create(const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, 64 static void Create(const base::WeakPtr<EmbeddedWorkerTestHelper>& helper,
69 mojom::EmbeddedWorkerSetupRequest request) { 65 mojom::EmbeddedWorkerSetupRequest request) {
70 mojo::MakeStrongBinding(base::MakeUnique<MockEmbeddedWorkerSetup>(helper), 66 // TODO(shimazu): Remove this mock after EmbeddedWorkerSetup is removed.
71 std::move(request)); 67 NOTREACHED();
72 } 68 }
73 69
74 void AttachServiceWorkerEventDispatcher( 70 void AttachServiceWorkerEventDispatcher(
75 int32_t thread_id, 71 int32_t thread_id,
76 mojom::ServiceWorkerEventDispatcherRequest request) override { 72 mojom::ServiceWorkerEventDispatcherRequest request) override {
77 if (!helper_) 73 NOTREACHED();
78 return;
79 helper_->OnSetupMojo(thread_id, std::move(request));
80 } 74 }
81
82 private:
83 base::WeakPtr<EmbeddedWorkerTestHelper> helper_;
84 }; 75 };
85 76
86 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient:: 77 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::
87 MockEmbeddedWorkerInstanceClient( 78 MockEmbeddedWorkerInstanceClient(
88 base::WeakPtr<EmbeddedWorkerTestHelper> helper) 79 base::WeakPtr<EmbeddedWorkerTestHelper> helper)
89 : helper_(helper), binding_(this) {} 80 : helper_(helper), binding_(this) {}
90 81
91 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient:: 82 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::
92 ~MockEmbeddedWorkerInstanceClient() {} 83 ~MockEmbeddedWorkerInstanceClient() {}
93 84
94 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StartWorker( 85 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StartWorker(
95 const EmbeddedWorkerStartParams& params, 86 const EmbeddedWorkerStartParams& params,
96 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) { 87 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) {
97 if (!helper_) 88 if (!helper_)
98 return; 89 return;
99 90
100 embedded_worker_id_ = params.embedded_worker_id; 91 embedded_worker_id_ = params.embedded_worker_id;
101 92
102 EmbeddedWorkerInstance* worker = 93 EmbeddedWorkerInstance* worker =
103 helper_->registry()->GetWorker(params.embedded_worker_id); 94 helper_->registry()->GetWorker(params.embedded_worker_id);
104 ASSERT_TRUE(worker != NULL); 95 ASSERT_TRUE(worker);
105 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); 96 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status());
106 97
107 base::ThreadTaskRunnerHandle::Get()->PostTask( 98 helper_->OnStartWorkerStub(params, std::move(dispatcher_request));
108 FROM_HERE,
109 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, helper_->AsWeakPtr(),
110 params.embedded_worker_id, params.service_worker_version_id,
111 params.scope, params.script_url, params.pause_after_download));
112 base::ThreadTaskRunnerHandle::Get()->PostTask(
113 FROM_HERE,
114 base::Bind(&EmbeddedWorkerTestHelper::OnSetupMojo, helper_->AsWeakPtr(),
115 worker->thread_id(), base::Passed(&dispatcher_request)));
116 } 99 }
117 100
118 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker( 101 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker(
119 const StopWorkerCallback& callback) { 102 const StopWorkerCallback& callback) {
120 if (!helper_) 103 if (!helper_)
121 return; 104 return;
122 105
123 ASSERT_TRUE(embedded_worker_id_); 106 ASSERT_TRUE(embedded_worker_id_);
124 EmbeddedWorkerInstance* worker = 107 EmbeddedWorkerInstance* worker =
125 helper_->registry()->GetWorker(embedded_worker_id_.value()); 108 helper_->registry()->GetWorker(embedded_worker_id_.value());
126 // |worker| is possible to be null when corresponding EmbeddedWorkerInstance 109 // |worker| is possible to be null when corresponding EmbeddedWorkerInstance
127 // is removed right after sending StopWorker. 110 // is removed right after sending StopWorker.
128 if (worker) 111 if (worker)
129 EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, worker->status()); 112 EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, worker->status());
130 callback.Run(); 113 helper_->OnStopWorkerStub(callback);
131 } 114 }
132 115
133 // static 116 // static
134 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::Bind( 117 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::Bind(
135 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, 118 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper,
136 mojom::EmbeddedWorkerInstanceClientRequest request) { 119 mojom::EmbeddedWorkerInstanceClientRequest request) {
137 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>>* clients = 120 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>>* clients =
138 helper->mock_instance_clients(); 121 helper->mock_instance_clients();
139 size_t next_client_index = helper->mock_instance_clients_next_index_; 122 size_t next_client_index = helper->mock_instance_clients_next_index_;
140 123
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 232
250 bool EmbeddedWorkerTestHelper::Send(IPC::Message* message) { 233 bool EmbeddedWorkerTestHelper::Send(IPC::Message* message) {
251 OnMessageReceived(*message); 234 OnMessageReceived(*message);
252 delete message; 235 delete message;
253 return true; 236 return true;
254 } 237 }
255 238
256 bool EmbeddedWorkerTestHelper::OnMessageReceived(const IPC::Message& message) { 239 bool EmbeddedWorkerTestHelper::OnMessageReceived(const IPC::Message& message) {
257 bool handled = true; 240 bool handled = true;
258 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message) 241 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message)
259 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StartWorker, OnStartWorkerStub)
260 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_ResumeAfterDownload, 242 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_ResumeAfterDownload,
261 OnResumeAfterDownloadStub) 243 OnResumeAfterDownloadStub)
262 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StopWorker, OnStopWorkerStub)
263 IPC_MESSAGE_HANDLER(EmbeddedWorkerContextMsg_MessageToWorker, 244 IPC_MESSAGE_HANDLER(EmbeddedWorkerContextMsg_MessageToWorker,
264 OnMessageToWorkerStub) 245 OnMessageToWorkerStub)
265 IPC_MESSAGE_UNHANDLED(handled = false) 246 IPC_MESSAGE_UNHANDLED(handled = false)
266 IPC_END_MESSAGE_MAP() 247 IPC_END_MESSAGE_MAP()
267 248
268 // IPC::TestSink only records messages that are not handled by filters, 249 // IPC::TestSink only records messages that are not handled by filters,
269 // so we just forward all messages to the separate sink. 250 // so we just forward all messages to the separate sink.
270 sink_.OnMessageReceived(message); 251 sink_.OnMessageReceived(message);
271 252
272 return handled; 253 return handled;
(...skipping 18 matching lines...) Expand all
291 net::HttpResponseInfo info; 272 net::HttpResponseInfo info;
292 const char data[] = 273 const char data[] =
293 "HTTP/1.1 200 OK\0" 274 "HTTP/1.1 200 OK\0"
294 "Content-Type: application/javascript\0" 275 "Content-Type: application/javascript\0"
295 "\0"; 276 "\0";
296 info.headers = 277 info.headers =
297 new net::HttpResponseHeaders(std::string(data, arraysize(data))); 278 new net::HttpResponseHeaders(std::string(data, arraysize(data)));
298 return info; 279 return info;
299 } 280 }
300 281
301 void EmbeddedWorkerTestHelper::OnStartWorker(int embedded_worker_id, 282 void EmbeddedWorkerTestHelper::OnStartWorker(
302 int64_t service_worker_version_id, 283 int embedded_worker_id,
303 const GURL& scope, 284 int64_t service_worker_version_id,
304 const GURL& script_url, 285 const GURL& scope,
305 bool pause_after_download) { 286 const GURL& script_url,
287 bool pause_after_download,
288 mojom::ServiceWorkerEventDispatcherRequest request) {
289 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
290 ASSERT_TRUE(worker);
291 MockServiceWorkerEventDispatcher::Create(AsWeakPtr(), worker->thread_id(),
292 std::move(request));
293
306 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id] = 294 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id] =
307 service_worker_version_id; 295 service_worker_version_id;
308 SimulateWorkerReadyForInspection(embedded_worker_id); 296 SimulateWorkerReadyForInspection(embedded_worker_id);
309 SimulateWorkerScriptCached(embedded_worker_id); 297 SimulateWorkerScriptCached(embedded_worker_id);
310 SimulateWorkerScriptLoaded(embedded_worker_id); 298 SimulateWorkerScriptLoaded(embedded_worker_id);
311 if (!pause_after_download) 299 if (!pause_after_download)
312 OnResumeAfterDownload(embedded_worker_id); 300 OnResumeAfterDownload(embedded_worker_id);
313 } 301 }
314 302
315 void EmbeddedWorkerTestHelper::OnResumeAfterDownload(int embedded_worker_id) { 303 void EmbeddedWorkerTestHelper::OnResumeAfterDownload(int embedded_worker_id) {
316 SimulateWorkerThreadStarted(GetNextThreadId(), embedded_worker_id); 304 SimulateWorkerThreadStarted(GetNextThreadId(), embedded_worker_id);
317 SimulateWorkerScriptEvaluated(embedded_worker_id, true /* success */); 305 SimulateWorkerScriptEvaluated(embedded_worker_id, true /* success */);
318 SimulateWorkerStarted(embedded_worker_id); 306 SimulateWorkerStarted(embedded_worker_id);
319 } 307 }
320 308
321 void EmbeddedWorkerTestHelper::OnStopWorker(int embedded_worker_id) { 309 void EmbeddedWorkerTestHelper::OnStopWorker(
322 // By default just notify the sender that the worker is stopped. 310 const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback& callback) {
falken 2017/01/12 02:29:05 Would it make sense to keep the comment that we're
shimazu 2017/01/12 03:48:27 That's great! Put it.
323 SimulateWorkerStopped(embedded_worker_id); 311 callback.Run();
324 } 312 }
325 313
326 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id, 314 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id,
327 int embedded_worker_id, 315 int embedded_worker_id,
328 const IPC::Message& message) { 316 const IPC::Message& message) {
329 bool handled = true; 317 bool handled = true;
330 current_embedded_worker_id_ = embedded_worker_id; 318 current_embedded_worker_id_ = embedded_worker_id;
331 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message) 319 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message)
332 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEventStub) 320 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEventStub)
333 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub) 321 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub)
334 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEventStub) 322 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEventStub)
335 IPC_MESSAGE_UNHANDLED(handled = false) 323 IPC_MESSAGE_UNHANDLED(handled = false)
336 IPC_END_MESSAGE_MAP() 324 IPC_END_MESSAGE_MAP()
337 // Record all messages directed to inner script context. 325 // Record all messages directed to inner script context.
338 inner_sink_.OnMessageReceived(message); 326 inner_sink_.OnMessageReceived(message);
339 return handled; 327 return handled;
340 } 328 }
341 329
342 void EmbeddedWorkerTestHelper::OnSetupMojo(
343 int thread_id,
344 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) {
345 MockServiceWorkerEventDispatcher::Create(AsWeakPtr(), thread_id,
346 std::move(dispatcher_request));
347 }
348
349 void EmbeddedWorkerTestHelper::OnActivateEvent(int embedded_worker_id, 330 void EmbeddedWorkerTestHelper::OnActivateEvent(int embedded_worker_id,
350 int request_id) { 331 int request_id) {
351 SimulateSend(new ServiceWorkerHostMsg_ActivateEventFinished( 332 SimulateSend(new ServiceWorkerHostMsg_ActivateEventFinished(
352 embedded_worker_id, request_id, 333 embedded_worker_id, request_id,
353 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); 334 blink::WebServiceWorkerEventResultCompleted, base::Time::Now()));
354 } 335 }
355 336
356 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent( 337 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent(
357 mojom::ExtendableMessageEventPtr event, 338 mojom::ExtendableMessageEventPtr event,
358 const mojom::ServiceWorkerEventDispatcher:: 339 const mojom::ServiceWorkerEventDispatcher::
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 int request_id, 377 int request_id,
397 const PushEventPayload& payload) { 378 const PushEventPayload& payload) {
398 SimulateSend(new ServiceWorkerHostMsg_PushEventFinished( 379 SimulateSend(new ServiceWorkerHostMsg_PushEventFinished(
399 embedded_worker_id, request_id, 380 embedded_worker_id, request_id,
400 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); 381 blink::WebServiceWorkerEventResultCompleted, base::Time::Now()));
401 } 382 }
402 383
403 void EmbeddedWorkerTestHelper::SimulateWorkerReadyForInspection( 384 void EmbeddedWorkerTestHelper::SimulateWorkerReadyForInspection(
404 int embedded_worker_id) { 385 int embedded_worker_id) {
405 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 386 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
406 ASSERT_TRUE(worker != NULL); 387 ASSERT_TRUE(worker);
407 registry()->OnWorkerReadyForInspection(worker->process_id(), 388 registry()->OnWorkerReadyForInspection(worker->process_id(),
408 embedded_worker_id); 389 embedded_worker_id);
409 } 390 }
410 391
411 void EmbeddedWorkerTestHelper::SimulateWorkerScriptCached( 392 void EmbeddedWorkerTestHelper::SimulateWorkerScriptCached(
412 int embedded_worker_id) { 393 int embedded_worker_id) {
413 int64_t version_id = 394 int64_t version_id =
414 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id]; 395 embedded_worker_id_service_worker_version_id_map_[embedded_worker_id];
415 ServiceWorkerVersion* version = context()->GetLiveVersion(version_id); 396 ServiceWorkerVersion* version = context()->GetLiveVersion(version_id);
416 if (!version || version->script_cache_map()->size()) 397 if (!version || version->script_cache_map()->size())
417 return; 398 return;
418 std::vector<ServiceWorkerDatabase::ResourceRecord> records; 399 std::vector<ServiceWorkerDatabase::ResourceRecord> records;
419 // Add a dummy ResourceRecord for the main script to the script cache map of 400 // Add a dummy ResourceRecord for the main script to the script cache map of
420 // the ServiceWorkerVersion. We use embedded_worker_id for resource_id to 401 // the ServiceWorkerVersion. We use embedded_worker_id for resource_id to
421 // avoid ID collision. 402 // avoid ID collision.
422 records.push_back(ServiceWorkerDatabase::ResourceRecord( 403 records.push_back(ServiceWorkerDatabase::ResourceRecord(
423 embedded_worker_id, version->script_url(), 100)); 404 embedded_worker_id, version->script_url(), 100));
424 version->script_cache_map()->SetResources(records); 405 version->script_cache_map()->SetResources(records);
425 version->SetMainScriptHttpResponseInfo(CreateHttpResponseInfo()); 406 version->SetMainScriptHttpResponseInfo(CreateHttpResponseInfo());
426 } 407 }
427 408
428 void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded( 409 void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded(
429 int embedded_worker_id) { 410 int embedded_worker_id) {
430 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 411 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
431 ASSERT_TRUE(worker != NULL); 412 ASSERT_TRUE(worker);
432 registry()->OnWorkerScriptLoaded(worker->process_id(), embedded_worker_id); 413 registry()->OnWorkerScriptLoaded(worker->process_id(), embedded_worker_id);
433 } 414 }
434 415
435 void EmbeddedWorkerTestHelper::SimulateWorkerThreadStarted( 416 void EmbeddedWorkerTestHelper::SimulateWorkerThreadStarted(
436 int thread_id, 417 int thread_id,
437 int embedded_worker_id) { 418 int embedded_worker_id) {
438 thread_id_embedded_worker_id_map_[thread_id] = embedded_worker_id; 419 thread_id_embedded_worker_id_map_[thread_id] = embedded_worker_id;
439 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 420 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
440 ASSERT_TRUE(worker != NULL); 421 ASSERT_TRUE(worker);
441 registry()->OnWorkerThreadStarted(worker->process_id(), thread_id, 422 registry()->OnWorkerThreadStarted(worker->process_id(), thread_id,
442 embedded_worker_id); 423 embedded_worker_id);
443 } 424 }
444 425
445 void EmbeddedWorkerTestHelper::SimulateWorkerScriptEvaluated( 426 void EmbeddedWorkerTestHelper::SimulateWorkerScriptEvaluated(
446 int embedded_worker_id, 427 int embedded_worker_id,
447 bool success) { 428 bool success) {
448 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 429 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
449 ASSERT_TRUE(worker != NULL); 430 ASSERT_TRUE(worker);
450 registry()->OnWorkerScriptEvaluated(worker->process_id(), embedded_worker_id, 431 registry()->OnWorkerScriptEvaluated(worker->process_id(), embedded_worker_id,
451 success); 432 success);
452 } 433 }
453 434
454 void EmbeddedWorkerTestHelper::SimulateWorkerStarted(int embedded_worker_id) { 435 void EmbeddedWorkerTestHelper::SimulateWorkerStarted(int embedded_worker_id) {
455 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 436 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
456 ASSERT_TRUE(worker != NULL); 437 ASSERT_TRUE(worker);
457 registry()->OnWorkerStarted(worker->process_id(), embedded_worker_id); 438 registry()->OnWorkerStarted(worker->process_id(), embedded_worker_id);
458 } 439 }
459 440
460 void EmbeddedWorkerTestHelper::SimulateWorkerStopped(int embedded_worker_id) { 441 void EmbeddedWorkerTestHelper::SimulateWorkerStopped(int embedded_worker_id) {
461 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 442 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
462 if (worker != NULL) 443 if (worker)
463 registry()->OnWorkerStopped(worker->process_id(), embedded_worker_id); 444 registry()->OnWorkerStopped(worker->process_id(), embedded_worker_id);
464 } 445 }
465 446
466 void EmbeddedWorkerTestHelper::SimulateSend(IPC::Message* message) { 447 void EmbeddedWorkerTestHelper::SimulateSend(IPC::Message* message) {
467 registry()->OnMessageReceived(*message, mock_render_process_id_); 448 registry()->OnMessageReceived(*message, mock_render_process_id_);
468 delete message; 449 delete message;
469 } 450 }
470 451
471 void EmbeddedWorkerTestHelper::OnStartWorkerStub( 452 void EmbeddedWorkerTestHelper::OnStartWorkerStub(
472 const EmbeddedWorkerStartParams& params) { 453 const EmbeddedWorkerStartParams& params,
454 mojom::ServiceWorkerEventDispatcherRequest request) {
473 EmbeddedWorkerInstance* worker = 455 EmbeddedWorkerInstance* worker =
474 registry()->GetWorker(params.embedded_worker_id); 456 registry()->GetWorker(params.embedded_worker_id);
475 ASSERT_TRUE(worker != NULL); 457 ASSERT_TRUE(worker);
476 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); 458 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status());
477 base::ThreadTaskRunnerHandle::Get()->PostTask( 459 base::ThreadTaskRunnerHandle::Get()->PostTask(
478 FROM_HERE, 460 FROM_HERE,
479 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, AsWeakPtr(), 461 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, AsWeakPtr(),
480 params.embedded_worker_id, params.service_worker_version_id, 462 params.embedded_worker_id, params.service_worker_version_id,
481 params.scope, params.script_url, params.pause_after_download)); 463 params.scope, params.script_url, params.pause_after_download,
464 base::Passed(&request)));
482 } 465 }
483 466
484 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub( 467 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub(
485 int embedded_worker_id) { 468 int embedded_worker_id) {
486 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 469 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
487 ASSERT_TRUE(worker); 470 ASSERT_TRUE(worker);
488 base::ThreadTaskRunnerHandle::Get()->PostTask( 471 base::ThreadTaskRunnerHandle::Get()->PostTask(
489 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload, 472 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload,
490 AsWeakPtr(), embedded_worker_id)); 473 AsWeakPtr(), embedded_worker_id));
491 } 474 }
492 475
493 void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) { 476 void EmbeddedWorkerTestHelper::OnStopWorkerStub(
494 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 477 const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback& callback) {
495 ASSERT_TRUE(worker != NULL);
496 base::ThreadTaskRunnerHandle::Get()->PostTask( 478 base::ThreadTaskRunnerHandle::Get()->PostTask(
497 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker, 479 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker,
498 AsWeakPtr(), embedded_worker_id)); 480 AsWeakPtr(), callback));
499 } 481 }
500 482
501 void EmbeddedWorkerTestHelper::OnMessageToWorkerStub( 483 void EmbeddedWorkerTestHelper::OnMessageToWorkerStub(
502 int thread_id, 484 int thread_id,
503 int embedded_worker_id, 485 int embedded_worker_id,
504 const IPC::Message& message) { 486 const IPC::Message& message) {
505 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 487 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
506 ASSERT_TRUE(worker != NULL); 488 ASSERT_TRUE(worker);
507 EXPECT_EQ(worker->thread_id(), thread_id); 489 EXPECT_EQ(worker->thread_id(), thread_id);
508 base::ThreadTaskRunnerHandle::Get()->PostTask( 490 base::ThreadTaskRunnerHandle::Get()->PostTask(
509 FROM_HERE, 491 FROM_HERE,
510 base::Bind( 492 base::Bind(
511 base::IgnoreResult(&EmbeddedWorkerTestHelper::OnMessageToWorker), 493 base::IgnoreResult(&EmbeddedWorkerTestHelper::OnMessageToWorker),
512 AsWeakPtr(), thread_id, embedded_worker_id, message)); 494 AsWeakPtr(), thread_id, embedded_worker_id, message));
513 } 495 }
514 496
515 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) { 497 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) {
516 base::ThreadTaskRunnerHandle::Get()->PostTask( 498 base::ThreadTaskRunnerHandle::Get()->PostTask(
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 service_manager::InterfaceProviderSpec()); 567 service_manager::InterfaceProviderSpec());
586 568
587 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces( 569 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces(
588 new service_manager::InterfaceProvider); 570 new service_manager::InterfaceProvider);
589 remote_interfaces->Bind(std::move(interfaces)); 571 remote_interfaces->Bind(std::move(interfaces));
590 rph->SetRemoteInterfaces(std::move(remote_interfaces)); 572 rph->SetRemoteInterfaces(std::move(remote_interfaces));
591 return registry; 573 return registry;
592 } 574 }
593 575
594 } // namespace content 576 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698