Chromium Code Reviews| 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 82d206142a183a7e1d34c093e915d10730a75456..babfe74009a1052c11d0aa2ba4bffe21ef78d26d 100644 |
| --- a/content/browser/service_worker/embedded_worker_test_helper.cc |
| +++ b/content/browser/service_worker/embedded_worker_test_helper.cc |
| @@ -18,6 +18,7 @@ namespace content { |
| EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(int mock_render_process_id) |
| : wrapper_(new ServiceWorkerContextWrapper(NULL)), |
| next_thread_id_(0), |
| + mock_render_process_id_(mock_render_process_id), |
| weak_factory_(this) { |
| wrapper_->InitInternal(base::FilePath(), |
| base::MessageLoopProxy::current(), |
| @@ -53,7 +54,9 @@ bool EmbeddedWorkerTestHelper::OnMessageReceived(const IPC::Message& message) { |
| IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StartWorker, OnStartWorkerStub) |
| IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StopWorker, OnStopWorkerStub) |
| IPC_MESSAGE_HANDLER(EmbeddedWorkerContextMsg_MessageToWorker, |
| - OnMessageToWorkerStub) |
| + OnMessageToWorkerStub); |
| + IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_ResumeAfterDownload, |
| + OnResumeAfterDownloadStub); |
|
falken
2014/07/18 05:13:24
We should put the semicolon on all or none... grep
|
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| @@ -77,8 +80,18 @@ void EmbeddedWorkerTestHelper::OnStartWorker( |
| int embedded_worker_id, |
| int64 service_worker_version_id, |
| const GURL& scope, |
| - const GURL& script_url) { |
| - // By default just notify the sender that the worker is started. |
| + const GURL& script_url, |
| + bool pause_after_download) { |
| + if (pause_after_download) { |
| + SimulatePausedAfterDownload(embedded_worker_id); |
| + return; |
| + } |
| + SimulateWorkerScriptLoaded(embedded_worker_id); |
| + SimulateWorkerStarted(next_thread_id_++, embedded_worker_id); |
| +} |
| + |
| +void EmbeddedWorkerTestHelper::OnResumeAfterDownload(int embedded_worker_id) { |
| + SimulateWorkerScriptLoaded(embedded_worker_id); |
| SimulateWorkerStarted(next_thread_id_++, embedded_worker_id); |
| } |
| @@ -135,6 +148,20 @@ void EmbeddedWorkerTestHelper::OnFetchEvent( |
| std::string()))); |
| } |
| +void EmbeddedWorkerTestHelper::SimulatePausedAfterDownload( |
| + int embedded_worker_id) { |
| + EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
| + ASSERT_TRUE(worker != NULL); |
| + registry()->OnPausedAfterDownload(worker->process_id(), embedded_worker_id); |
| +} |
| + |
| +void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded( |
| + int embedded_worker_id) { |
| + EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
| + ASSERT_TRUE(worker != NULL); |
| + registry()->OnWorkerScriptLoaded(worker->process_id(), embedded_worker_id); |
| +} |
| + |
| void EmbeddedWorkerTestHelper::SimulateWorkerStarted( |
| int thread_id, int embedded_worker_id) { |
| EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
| @@ -167,11 +194,23 @@ void EmbeddedWorkerTestHelper::OnStartWorkerStub( |
| base::MessageLoopProxy::current()->PostTask( |
| FROM_HERE, |
| base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, |
| + weak_factory_.GetWeakPtr(), |
| + params.embedded_worker_id, |
| + params.service_worker_version_id, |
| + params.scope, |
| + params.script_url, |
| + params.pause_after_download)); |
| +} |
| + |
| +void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub( |
| + int embedded_worker_id) { |
| + EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
| + ASSERT_TRUE(worker != NULL); |
| + base::MessageLoopProxy::current()->PostTask( |
| + FROM_HERE, |
| + base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload, |
| weak_factory_.GetWeakPtr(), |
| - params.embedded_worker_id, |
| - params.service_worker_version_id, |
| - params.scope, |
| - params.script_url)); |
| + embedded_worker_id)); |
| } |
| void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) { |