| Index: content/renderer/service_worker/embedded_worker_dispatcher.cc
|
| diff --git a/content/renderer/service_worker/embedded_worker_dispatcher.cc b/content/renderer/service_worker/embedded_worker_dispatcher.cc
|
| index c99168cd0cfb0616ea0b9b1d969be6447c2fb81e..74d711d54e1a91294ef8ac88d9d28becb024f8dd 100644
|
| --- a/content/renderer/service_worker/embedded_worker_dispatcher.cc
|
| +++ b/content/renderer/service_worker/embedded_worker_dispatcher.cc
|
| @@ -53,6 +53,8 @@ bool EmbeddedWorkerDispatcher::OnMessageReceived(
|
| IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerDispatcher, message)
|
| IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StartWorker, OnStartWorker)
|
| IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StopWorker, OnStopWorker)
|
| + IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_ResumeAfterDownload,
|
| + OnResumeAfterDownload)
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| return handled;
|
| @@ -97,6 +99,10 @@ void EmbeddedWorkerDispatcher::OnStartWorker(
|
| blink::WebEmbeddedWorkerStartData::DontWaitForDebugger;
|
| start_data.v8CacheOptions =
|
| static_cast<blink::WebSettings::V8CacheOptions>(params.v8_cache_options);
|
| + start_data.pauseAfterDownloadMode =
|
| + params.pause_after_download
|
| + ? blink::WebEmbeddedWorkerStartData::PauseAfterDownload
|
| + : blink::WebEmbeddedWorkerStartData::DontPauseAfterDownload;
|
|
|
| wrapper->worker()->startWorkerContext(start_data);
|
| workers_.AddWithID(wrapper.release(), params.embedded_worker_id);
|
| @@ -117,4 +123,15 @@ void EmbeddedWorkerDispatcher::OnStopWorker(int embedded_worker_id) {
|
| wrapper->worker()->terminateWorkerContext();
|
| }
|
|
|
| +void EmbeddedWorkerDispatcher::OnResumeAfterDownload(int embedded_worker_id) {
|
| + TRACE_EVENT0("ServiceWorker",
|
| + "EmbeddedWorkerDispatcher::OnResumeAfterDownload");
|
| + WorkerWrapper* wrapper = workers_.Lookup(embedded_worker_id);
|
| + if (!wrapper) {
|
| + LOG(WARNING) << "Got OnResumeAfterDownload for nonexistent worker";
|
| + return;
|
| + }
|
| + wrapper->worker()->resumeAfterDownload();
|
| +}
|
| +
|
| } // namespace content
|
|
|