Chromium Code Reviews| Index: extensions/browser/extension_service_worker_message_filter.cc |
| diff --git a/extensions/browser/extension_service_worker_message_filter.cc b/extensions/browser/extension_service_worker_message_filter.cc |
| index fa3357e7903bf05e56aeef2ca3cf00d0721b5b10..60cd05506c1db59cef80a6b3e221a55e2464785d 100644 |
| --- a/extensions/browser/extension_service_worker_message_filter.cc |
| +++ b/extensions/browser/extension_service_worker_message_filter.cc |
| @@ -4,6 +4,7 @@ |
| #include "extensions/browser/extension_service_worker_message_filter.h" |
| +#include "content/public/browser/service_worker_context.h" |
| #include "extensions/browser/extension_function_dispatcher.h" |
| #include "extensions/common/extension_messages.h" |
| @@ -11,9 +12,11 @@ namespace extensions { |
| ExtensionServiceWorkerMessageFilter::ExtensionServiceWorkerMessageFilter( |
| int render_process_id, |
| - content::BrowserContext* context) |
| + content::BrowserContext* context, |
| + content::ServiceWorkerContext* service_worker_context) |
| : content::BrowserMessageFilter(ExtensionWorkerMsgStart), |
| render_process_id_(render_process_id), |
| + service_worker_context_(service_worker_context), |
| dispatcher_(new ExtensionFunctionDispatcher(context)) {} |
| ExtensionServiceWorkerMessageFilter::~ExtensionServiceWorkerMessageFilter() { |
| @@ -33,6 +36,10 @@ bool ExtensionServiceWorkerMessageFilter::OnMessageReceived( |
| bool handled = true; |
| IPC_BEGIN_MESSAGE_MAP(ExtensionServiceWorkerMessageFilter, message) |
| IPC_MESSAGE_HANDLER(ExtensionHostMsg_RequestWorker, OnRequestWorker) |
| + IPC_MESSAGE_HANDLER(ExtensionHostMsg_IncrementServiceWorkerActivity, |
| + OnIncrementServiceWorkerActivity) |
| + IPC_MESSAGE_HANDLER(ExtensionHostMsg_DecrementServiceWorkerActivity, |
| + OnDecrementServiceWorkerActivity) |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| return handled; |
| @@ -44,4 +51,16 @@ void ExtensionServiceWorkerMessageFilter::OnRequestWorker( |
| dispatcher_->Dispatch(params, nullptr, render_process_id_); |
| } |
| +void ExtensionServiceWorkerMessageFilter::OnIncrementServiceWorkerActivity( |
| + int64_t service_worker_version_id) { |
| + DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
| + service_worker_context_->IncrementPendingActivity(service_worker_version_id); |
|
falken
2016/09/30 01:48:56
Check return val and BadMessageReceieved?
lazyboy
2016/09/30 08:02:15
Done.
|
| +} |
| + |
| +void ExtensionServiceWorkerMessageFilter::OnDecrementServiceWorkerActivity( |
| + int64_t service_worker_version_id) { |
| + DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
| + service_worker_context_->DecrementPendingActivity(service_worker_version_id); |
| +} |
| + |
| } // namespace extensions |