| Index: content/child/service_worker/service_worker_message_filter.cc
|
| diff --git a/content/child/service_worker/service_worker_message_filter.cc b/content/child/service_worker/service_worker_message_filter.cc
|
| index e6b5ff1d14bcdafa3e2ab6dca8e63ecd556c76a2..734247779586b6f8cd920fb48bf3576a58fda060 100644
|
| --- a/content/child/service_worker/service_worker_message_filter.cc
|
| +++ b/content/child/service_worker/service_worker_message_filter.cc
|
| @@ -8,6 +8,7 @@
|
| #include "content/child/service_worker/service_worker_dispatcher.h"
|
| #include "content/child/thread_safe_sender.h"
|
| #include "content/child/worker_thread_task_runner.h"
|
| +#include "content/common/service_worker/service_worker_messages.h"
|
| #include "ipc/ipc_message_macros.h"
|
|
|
| namespace content {
|
| @@ -38,4 +39,23 @@ bool ServiceWorkerMessageFilter::OnMessageReceived(const IPC::Message& msg) {
|
| return true;
|
| }
|
|
|
| +void ServiceWorkerMessageFilter::OnStaleMessageReceived(
|
| + const IPC::Message& msg) {
|
| + // Specifically handle some messages in case we failed to post task
|
| + // to the thread (meaning that the context on the thread is now gone).
|
| + IPC_BEGIN_MESSAGE_MAP(ServiceWorkerMessageFilter, msg)
|
| + IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistered,
|
| + OnStaleRegistered)
|
| + IPC_END_MESSAGE_MAP()
|
| +}
|
| +
|
| +void ServiceWorkerMessageFilter::OnStaleRegistered(int32 thread_id,
|
| + int32 request_id,
|
| + int handle_id) {
|
| + // Inform the browser that the context seems to have been destroyed
|
| + // (so that it can delete the corresponding ServiceWorker handle).
|
| + thread_safe_sender_->Send(
|
| + new ServiceWorkerHostMsg_ServiceWorkerObjectDestroyed(handle_id));
|
| +}
|
| +
|
| } // namespace content
|
|
|