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 |