| Index: content/browser/worker_host/worker_process_host.cc
|
| ===================================================================
|
| --- content/browser/worker_host/worker_process_host.cc (revision 238432)
|
| +++ content/browser/worker_host/worker_process_host.cc (working copy)
|
| @@ -318,6 +318,8 @@
|
| IPC_MESSAGE_HANDLER(WorkerProcessHostMsg_AllowDatabase, OnAllowDatabase)
|
| IPC_MESSAGE_HANDLER(WorkerProcessHostMsg_AllowFileSystem, OnAllowFileSystem)
|
| IPC_MESSAGE_HANDLER(WorkerProcessHostMsg_AllowIndexedDB, OnAllowIndexedDB)
|
| + IPC_MESSAGE_HANDLER(WorkerProcessHostMsg_ForceKillWorker,
|
| + OnForceKillWorkerProcess)
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP_EX()
|
|
|
| @@ -388,6 +390,14 @@
|
| url, name, resource_context_, GetRenderViewIDsForWorker(worker_route_id));
|
| }
|
|
|
| +void WorkerProcessHost::OnForceKillWorkerProcess() {
|
| + if (process_ && process_launched_)
|
| + base::KillProcess(
|
| + process_->GetData().handle, RESULT_CODE_NORMAL_EXIT, false);
|
| + else
|
| + RecordAction(UserMetricsAction("WorkerProcess_BadProcessToKill"));
|
| +}
|
| +
|
| void WorkerProcessHost::RelayMessage(
|
| const IPC::Message& message,
|
| WorkerMessageFilter* filter,
|
|
|