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 a9a8af9f88d82e132e4ba126e879c8182fb9d3a6..40c3a49498ada8aae80a3bb79d70f10c18ab054c 100644 |
--- a/content/browser/service_worker/embedded_worker_test_helper.cc |
+++ b/content/browser/service_worker/embedded_worker_test_helper.cc |
@@ -21,6 +21,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(), |
@@ -57,6 +58,8 @@ bool EmbeddedWorkerTestHelper::OnMessageReceived(const IPC::Message& message) { |
IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StopWorker, OnStopWorkerStub) |
IPC_MESSAGE_HANDLER(EmbeddedWorkerContextMsg_MessageToWorker, |
OnMessageToWorkerStub) |
+ IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_ResumeAfterDownload, |
+ OnResumeAfterDownloadStub) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
@@ -80,8 +83,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); |
} |
@@ -138,6 +151,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); |
@@ -170,11 +197,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) { |