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;
blink::WebEmbeddedWorkerStartData start_data;
start_data.scriptURL = params.script_url;
start_data.userAgent = base::UTF8ToUTF16(GetContentClient()->GetUserAgent());
+ start_data.pauseAfterDownloadMode =
+ params.pause_after_download ?
+ blink::WebEmbeddedWorkerStartData::PauseAfterDownload :
+ blink::WebEmbeddedWorkerStartData::DontPauseAfterDownload;
+ start_data.waitForDebuggerMode =
+ params.wait_for_debugger ?
+ blink::WebEmbeddedWorkerStartData::WaitForDebugger :
+ blink::WebEmbeddedWorkerStartData::DontWaitForDebugger;
+
+ // TODO(michaeln): delete setting this deprecated member once blink
+ // stops reading it.
start_data.startMode =
- params.pause_on_start ? blink::WebEmbeddedWorkerStartModePauseOnStart
- : blink::WebEmbeddedWorkerStartModeDontPauseOnStart;
+ params.wait_for_debugger ?
+ blink::WebEmbeddedWorkerStartModePauseOnStart :
+ blink::WebEmbeddedWorkerStartModeDontPauseOnStart;
wrapper->worker()->startWorkerContext(start_data);
workers_.AddWithID(wrapper.release(), params.embedded_worker_id);
wrapper->worker()->terminateWorkerContext();
}
+void EmbeddedWorkerDispatcher::OnResumeAfterDownload(int embedded_worker_id) {
+ WorkerWrapper* wrapper = workers_.Lookup(embedded_worker_id);
+ if (!wrapper) {
+ LOG(WARNING) << "Got OnResumeAfterDownload for nonexistent worker";
+ return;
+ }
+ wrapper->worker()->resumeAfterDownload();
+}
+
} // namespace content