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

Unified Diff: content/browser/shared_worker/shared_worker_message_filter.cc

Issue 166273002: Add SharedWorkerMessageFilter for the embedded SharedWorker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Incorporated kinuko's comments. Created 6 years, 10 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/browser/shared_worker/shared_worker_message_filter.cc
diff --git a/content/browser/worker_host/worker_message_filter.cc b/content/browser/shared_worker/shared_worker_message_filter.cc
similarity index 22%
copy from content/browser/worker_host/worker_message_filter.cc
copy to content/browser/shared_worker/shared_worker_message_filter.cc
index b3320947e923072cf70ba1a3c9a0467714ee8fc6..1269ac3ddcb949ba6b62e7ac040d077d9c0b4ec1 100644
--- a/content/browser/worker_host/worker_message_filter.cc
+++ b/content/browser/shared_worker/shared_worker_message_filter.cc
@@ -1,18 +1,19 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/worker_host/worker_message_filter.h"
+#include "content/browser/shared_worker/shared_worker_message_filter.h"
+#include "content/browser/devtools/worker_devtools_manager.h"
#include "content/browser/message_port_message_filter.h"
-#include "content/browser/worker_host/worker_service_impl.h"
+#include "content/browser/shared_worker/shared_worker_service_impl.h"
+#include "content/common/devtools_messages.h"
#include "content/common/view_messages.h"
#include "content/common/worker_messages.h"
-#include "content/public/browser/resource_context.h"
namespace content {
-WorkerMessageFilter::WorkerMessageFilter(
+SharedWorkerMessageFilter::SharedWorkerMessageFilter(
int render_process_id,
ResourceContext* resource_context,
const WorkerStoragePartition& partition,
@@ -21,55 +22,134 @@ WorkerMessageFilter::WorkerMessageFilter(
resource_context_(resource_context),
partition_(partition),
message_port_message_filter_(message_port_message_filter) {
- // Note: This constructor is called on both IO or UI thread.
- DCHECK(resource_context);
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
}
-WorkerMessageFilter::~WorkerMessageFilter() {
+SharedWorkerMessageFilter::~SharedWorkerMessageFilter() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
}
-void WorkerMessageFilter::OnChannelClosing() {
- WorkerServiceImpl::GetInstance()->OnWorkerMessageFilterClosing(this);
+void SharedWorkerMessageFilter::OnChannelClosing() {
+ SharedWorkerServiceImpl::GetInstance()->OnSharedWorkerMessageFilterClosing(
+ this);
}
-bool WorkerMessageFilter::OnMessageReceived(const IPC::Message& message,
- bool* message_was_ok) {
+bool SharedWorkerMessageFilter::OnMessageReceived(const IPC::Message& message,
+ bool* message_was_ok) {
bool handled = true;
- IPC_BEGIN_MESSAGE_MAP_EX(WorkerMessageFilter, message, *message_was_ok)
- // Worker messages.
+ IPC_BEGIN_MESSAGE_MAP_EX(SharedWorkerMessageFilter, message, *message_was_ok)
// Only sent from renderer for now, until we have nested workers.
IPC_MESSAGE_HANDLER(ViewHostMsg_CreateWorker, OnCreateWorker)
IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardToWorker, OnForwardToWorker)
// Only sent from renderer.
IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentDetached, OnDocumentDetached)
+ // Only sent from SharedWorker in renderer.
+ IPC_MESSAGE_HANDLER(WorkerHostMsg_WorkerContextClosed,
+ OnWorkerContextClosed)
+ IPC_MESSAGE_HANDLER(WorkerHostMsg_WorkerContextDestroyed,
+ OnWorkerContextDestroyed)
+ IPC_MESSAGE_HANDLER(WorkerHostMsg_WorkerScriptLoaded,
+ OnWorkerScriptLoaded)
+ IPC_MESSAGE_HANDLER(WorkerHostMsg_WorkerScriptLoadFailed,
+ OnWorkerScriptLoadFailed)
+ IPC_MESSAGE_HANDLER(WorkerHostMsg_WorkerConnected,
+ OnWorkerConnected)
+ IPC_MESSAGE_HANDLER(WorkerProcessHostMsg_AllowDatabase, OnAllowDatabase)
+ IPC_MESSAGE_HANDLER(WorkerProcessHostMsg_AllowFileSystem, OnAllowFileSystem)
+ IPC_MESSAGE_HANDLER(WorkerProcessHostMsg_AllowIndexedDB, OnAllowIndexedDB)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP_EX()
-
return handled;
}
-int WorkerMessageFilter::GetNextRoutingID() {
+int SharedWorkerMessageFilter::GetNextRoutingID() {
return message_port_message_filter_->GetNextRoutingID();
}
-void WorkerMessageFilter::OnCreateWorker(
+void SharedWorkerMessageFilter::OnCreateWorker(
const ViewHostMsg_CreateWorker_Params& params,
int* route_id) {
bool url_error = false;
*route_id = GetNextRoutingID();
- WorkerServiceImpl::GetInstance()->CreateWorker(
+ SharedWorkerServiceImpl::GetInstance()->CreateWorker(
params, *route_id, this, resource_context_, partition_, &url_error);
if (url_error)
*route_id = MSG_ROUTING_NONE;
}
-void WorkerMessageFilter::OnForwardToWorker(const IPC::Message& message) {
- WorkerServiceImpl::GetInstance()->ForwardToWorker(message, this);
+void SharedWorkerMessageFilter::OnForwardToWorker(const IPC::Message& message) {
+ SharedWorkerServiceImpl::GetInstance()->ForwardToWorker(message, this);
+}
+
+void SharedWorkerMessageFilter::OnDocumentDetached(
+ unsigned long long document_id) {
+ SharedWorkerServiceImpl::GetInstance()->DocumentDetached(document_id, this);
+}
+
+void SharedWorkerMessageFilter::OnWorkerContextClosed(int worker_route_id) {
+ SharedWorkerServiceImpl::GetInstance()->WorkerContextClosed(worker_route_id,
+ this);
+}
+
+void SharedWorkerMessageFilter::OnWorkerContextDestroyed(int worker_route_id) {
+ SharedWorkerServiceImpl::GetInstance()->WorkerContextDestroyed(
+ worker_route_id,
+ this);
+}
+
+void SharedWorkerMessageFilter::OnWorkerScriptLoaded(int worker_route_id) {
+ SharedWorkerServiceImpl::GetInstance()->WorkerScriptLoaded(worker_route_id,
+ this);
+}
+
+void SharedWorkerMessageFilter::OnWorkerScriptLoadFailed(int worker_route_id) {
+ SharedWorkerServiceImpl::GetInstance()->WorkerScriptLoadFailed(
+ worker_route_id,
+ this);
+}
+
+void SharedWorkerMessageFilter::OnWorkerConnected(int message_port_id,
+ int worker_route_id) {
+ SharedWorkerServiceImpl::GetInstance()->WorkerConnected(
+ message_port_id,
+ worker_route_id,
+ this);
+}
+
+void SharedWorkerMessageFilter::OnAllowDatabase(
+ int worker_route_id,
+ const GURL& url,
+ const base::string16& name,
+ const base::string16& display_name,
+ unsigned long estimated_size,
+ bool* result) {
+ SharedWorkerServiceImpl::GetInstance()->AllowDatabase(worker_route_id,
+ url,
+ name,
+ display_name,
+ estimated_size,
+ result,
+ this);
+}
+
+void SharedWorkerMessageFilter::OnAllowFileSystem(int worker_route_id,
+ const GURL& url,
+ bool* result) {
+ SharedWorkerServiceImpl::GetInstance()->AllowFileSystem(worker_route_id,
+ url,
+ result,
+ this);
}
-void WorkerMessageFilter::OnDocumentDetached(unsigned long long document_id) {
- WorkerServiceImpl::GetInstance()->DocumentDetached(document_id, this);
+void SharedWorkerMessageFilter::OnAllowIndexedDB(int worker_route_id,
+ const GURL& url,
+ const base::string16& name,
+ bool* result) {
+ SharedWorkerServiceImpl::GetInstance()->AllowIndexedDB(worker_route_id,
+ url,
+ name,
+ result,
+ this);
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698