Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Unified Diff: content/renderer/service_worker/embedded_worker_context_client.cc

Issue 118103002: Add IPC stubs between browser and ServiceWorker's worker context in the child process (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/service_worker/embedded_worker_context_client.cc
diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/embedded_worker_context_client.cc
similarity index 66%
rename from content/renderer/service_worker/service_worker_context_client.cc
rename to content/renderer/service_worker/embedded_worker_context_client.cc
index 412ed6748002aa35c472f8214d39b3c2b62cf728..a770fc44f5028ce576768d1e0175620150284de0 100644
--- a/content/renderer/service_worker/service_worker_context_client.cc
+++ b/content/renderer/service_worker/embedded_worker_context_client.cc
@@ -2,13 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/renderer/service_worker/service_worker_context_client.h"
+#include "content/renderer/service_worker/embedded_worker_context_client.h"
#include "base/lazy_instance.h"
#include "base/message_loop/message_loop_proxy.h"
#include "base/pickle.h"
#include "base/threading/thread_local.h"
#include "content/child/thread_safe_sender.h"
+#include "content/common/service_worker_messages.h"
#include "content/renderer/render_thread_impl.h"
#include "content/renderer/service_worker/embedded_worker_dispatcher.h"
#include "ipc/ipc_message_macros.h"
@@ -24,7 +25,7 @@ namespace {
// For now client must be a per-thread instance.
// TODO(kinuko): This needs to be refactored when we start using thread pool
// or having multiple clients per one thread.
-base::LazyInstance<base::ThreadLocalPointer<ServiceWorkerContextClient> >::
+base::LazyInstance<base::ThreadLocalPointer<EmbeddedWorkerContextClient> >::
Leaky g_worker_client_tls = LAZY_INSTANCE_INITIALIZER;
void CallWorkerContextDestroyedOnMainThread(int embedded_worker_id) {
@@ -37,12 +38,12 @@ void CallWorkerContextDestroyedOnMainThread(int embedded_worker_id) {
} // namespace
-ServiceWorkerContextClient*
-ServiceWorkerContextClient::ThreadSpecificInstance() {
+EmbeddedWorkerContextClient*
+EmbeddedWorkerContextClient::ThreadSpecificInstance() {
return g_worker_client_tls.Pointer()->Get();
}
-ServiceWorkerContextClient::ServiceWorkerContextClient(
+EmbeddedWorkerContextClient::EmbeddedWorkerContextClient(
int embedded_worker_id,
int64 service_worker_version_id,
const GURL& script_url)
@@ -54,19 +55,22 @@ ServiceWorkerContextClient::ServiceWorkerContextClient(
proxy_(NULL) {
}
-ServiceWorkerContextClient::~ServiceWorkerContextClient() {
+EmbeddedWorkerContextClient::~EmbeddedWorkerContextClient() {
DCHECK(g_worker_client_tls.Pointer()->Get() != NULL);
g_worker_client_tls.Pointer()->Set(NULL);
}
-bool ServiceWorkerContextClient::OnMessageReceived(
+bool EmbeddedWorkerContextClient::OnMessageReceived(
const IPC::Message& msg) {
- NOTIMPLEMENTED();
- return false;
+ bool handled = true;
+ IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerContextClient, msg)
+ IPC_MESSAGE_HANDLER(EmbeddedWorkerContextMsg_FetchEvent, OnFetchEvent)
+ IPC_MESSAGE_UNHANDLED(handled = false)
+ IPC_END_MESSAGE_MAP()
+ return handled;
}
-void ServiceWorkerContextClient::workerContextFailedToStart()
-{
+void EmbeddedWorkerContextClient::workerContextFailedToStart() {
DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
DCHECK(!proxy_);
@@ -74,19 +78,19 @@ void ServiceWorkerContextClient::workerContextFailedToStart()
WorkerContextDestroyed(embedded_worker_id_);
}
-void ServiceWorkerContextClient::workerContextStarted(
+void EmbeddedWorkerContextClient::workerContextStarted(
blink::WebServiceWorkerContextProxy* proxy) {
DCHECK_NE(0, WorkerTaskRunner::Instance()->CurrentWorkerId());
DCHECK(g_worker_client_tls.Pointer()->Get() == NULL);
g_worker_client_tls.Pointer()->Set(this);
proxy_ = proxy;
- // TODO(kinuko): Send WorkerStarted message to the browser with the
- // current thread ID so that the browser can start sending embedded worker
- // messages directly to this client.
+ sender_->Send(new EmbeddedWorkerHostMsg_WorkerStarted(
+ WorkerTaskRunner::Instance()->CurrentWorkerId(),
+ embedded_worker_id_));
}
-void ServiceWorkerContextClient::workerContextDestroyed() {
+void EmbeddedWorkerContextClient::workerContextDestroyed() {
DCHECK_NE(0, WorkerTaskRunner::Instance()->CurrentWorkerId());
proxy_ = NULL;
main_thread_proxy_->PostTask(
@@ -95,4 +99,13 @@ void ServiceWorkerContextClient::workerContextDestroyed() {
embedded_worker_id_));
}
+void EmbeddedWorkerContextClient::OnFetchEvent(
+ int thread_id,
+ int embedded_worker_id,
+ const ServiceWorkerFetchRequest& request) {
+ // TODO(kinuko): Implement.
+ // This is to call WebServiceWorkerContextProxy's dispatchFetchEvent method.
+ NOTIMPLEMENTED();
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698