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 b0554c003d7e5ba68c7268d50585f736f342dca1..3568ad77e5b5250e7104d705d6354fe518aa635c 100644 |
--- a/content/child/service_worker/service_worker_message_filter.cc |
+++ b/content/child/service_worker/service_worker_message_filter.cc |
@@ -4,10 +4,8 @@ |
#include "content/child/service_worker/service_worker_message_filter.h" |
-#include "base/message_loop/message_loop_proxy.h" |
#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 "content/common/service_worker/service_worker_types.h" |
#include "ipc/ipc_message_macros.h" |
@@ -39,29 +37,26 @@ void SendRegistrationObjectDestroyed( |
} // namespace |
ServiceWorkerMessageFilter::ServiceWorkerMessageFilter(ThreadSafeSender* sender) |
- : main_thread_loop_proxy_(base::MessageLoopProxy::current()), |
- thread_safe_sender_(sender) {} |
+ : WorkerThreadMessageFilter(sender) { |
+} |
ServiceWorkerMessageFilter::~ServiceWorkerMessageFilter() {} |
-base::TaskRunner* ServiceWorkerMessageFilter::OverrideTaskRunnerForMessage( |
- const IPC::Message& msg) { |
- if (IPC_MESSAGE_CLASS(msg) != ServiceWorkerMsgStart) |
- return NULL; |
- int ipc_thread_id = 0; |
- const bool success = PickleIterator(msg).ReadInt(&ipc_thread_id); |
- DCHECK(success); |
- if (!ipc_thread_id) |
- return main_thread_loop_proxy_.get(); |
- return new WorkerThreadTaskRunner(ipc_thread_id); |
+bool ServiceWorkerMessageFilter::ShouldHandleMessage( |
+ const IPC::Message& msg) const { |
+ return IPC_MESSAGE_CLASS(msg) == ServiceWorkerMsgStart; |
} |
-bool ServiceWorkerMessageFilter::OnMessageReceived(const IPC::Message& msg) { |
- if (IPC_MESSAGE_CLASS(msg) != ServiceWorkerMsgStart) |
- return false; |
+void ServiceWorkerMessageFilter::OnFilteredMessageReceived( |
+ const IPC::Message& msg) { |
ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( |
- thread_safe_sender_.get())->OnMessageReceived(msg); |
- return true; |
+ thread_safe_sender())->OnMessageReceived(msg); |
+} |
+ |
+bool ServiceWorkerMessageFilter::GetWorkerThreadIdForMessage( |
+ const IPC::Message& msg, |
+ int* ipc_thread_id) { |
+ return PickleIterator(msg).ReadInt(ipc_thread_id); |
} |
void ServiceWorkerMessageFilter::OnStaleMessageReceived( |
@@ -83,13 +78,13 @@ void ServiceWorkerMessageFilter::OnStaleRegistered( |
int request_id, |
const ServiceWorkerRegistrationObjectInfo& info, |
const ServiceWorkerVersionAttributes& attrs) { |
- SendServiceWorkerObjectDestroyed(thread_safe_sender_.get(), |
+ SendServiceWorkerObjectDestroyed(thread_safe_sender(), |
attrs.installing.handle_id); |
- SendServiceWorkerObjectDestroyed(thread_safe_sender_.get(), |
+ SendServiceWorkerObjectDestroyed(thread_safe_sender(), |
attrs.waiting.handle_id); |
- SendServiceWorkerObjectDestroyed(thread_safe_sender_.get(), |
+ SendServiceWorkerObjectDestroyed(thread_safe_sender(), |
attrs.active.handle_id); |
- SendRegistrationObjectDestroyed(thread_safe_sender_.get(), info.handle_id); |
+ SendRegistrationObjectDestroyed(thread_safe_sender(), info.handle_id); |
} |
void ServiceWorkerMessageFilter::OnStaleSetVersionAttributes( |
@@ -98,11 +93,11 @@ void ServiceWorkerMessageFilter::OnStaleSetVersionAttributes( |
int registration_handle_id, |
int changed_mask, |
const ServiceWorkerVersionAttributes& attrs) { |
- SendServiceWorkerObjectDestroyed(thread_safe_sender_.get(), |
+ SendServiceWorkerObjectDestroyed(thread_safe_sender(), |
attrs.installing.handle_id); |
- SendServiceWorkerObjectDestroyed(thread_safe_sender_.get(), |
+ SendServiceWorkerObjectDestroyed(thread_safe_sender(), |
attrs.waiting.handle_id); |
- SendServiceWorkerObjectDestroyed(thread_safe_sender_.get(), |
+ SendServiceWorkerObjectDestroyed(thread_safe_sender(), |
attrs.active.handle_id); |
// Don't have to decrement registration refcount because the sender of the |
// SetVersionAttributes message doesn't increment it. |
@@ -113,7 +108,7 @@ void ServiceWorkerMessageFilter::OnStaleSetControllerServiceWorker( |
int provider_id, |
const ServiceWorkerObjectInfo& info, |
bool should_notify_controllerchange) { |
- SendServiceWorkerObjectDestroyed(thread_safe_sender_.get(), info.handle_id); |
+ SendServiceWorkerObjectDestroyed(thread_safe_sender(), info.handle_id); |
} |
} // namespace content |