Index: content/browser/worker_host/worker_process_host.cc |
=================================================================== |
--- content/browser/worker_host/worker_process_host.cc (revision 119868) |
+++ content/browser/worker_host/worker_process_host.cc (working copy) |
@@ -18,6 +18,7 @@ |
#include "content/browser/appcache/appcache_dispatcher_host.h" |
#include "content/browser/browser_child_process_host_impl.h" |
#include "content/browser/child_process_security_policy.h" |
+#include "content/browser/debugger/worker_devtools_manager.h" |
#include "content/browser/debugger/worker_devtools_message_filter.h" |
#include "content/browser/file_system/file_system_dispatcher_host.h" |
#include "content/browser/mime_registry_message_filter.h" |
@@ -52,6 +53,7 @@ |
using content::ChildProcessData; |
using content::ChildProcessHost; |
using content::UserMetricsAction; |
+using content::WorkerDevToolsManager; |
using content::WorkerServiceImpl; |
namespace { |
@@ -373,14 +375,16 @@ |
unsigned long estimated_size, |
bool* result) { |
*result = content::GetContentClient()->browser()->AllowWorkerDatabase( |
- worker_route_id, url, name, display_name, estimated_size, this); |
+ url, name, display_name, estimated_size, *resource_context_, |
+ GetRenderViewIDsForWorker(worker_route_id)); |
} |
void WorkerProcessHost::OnAllowFileSystem(int worker_route_id, |
const GURL& url, |
bool* result) { |
*result = content::GetContentClient()->browser()->AllowWorkerFileSystem( |
- worker_route_id, url, this); |
+ url, *resource_context_, |
+ GetRenderViewIDsForWorker(worker_route_id)); |
} |
void WorkerProcessHost::RelayMessage( |
@@ -440,7 +444,7 @@ |
new_message->set_routing_id(route_id); |
filter->Send(new_message); |
if (message.type() == WorkerMsg_StartWorkerContext::ID) { |
- WorkerServiceImpl::GetInstance()->NotifyWorkerContextStarted( |
+ WorkerDevToolsManager::GetInstance()->WorkerContextStarted( |
this, route_id); |
} |
return; |
@@ -525,6 +529,25 @@ |
return process_->GetData(); |
} |
+std::vector<std::pair<int, int> > WorkerProcessHost::GetRenderViewIDsForWorker( |
+ int worker_route_id) { |
+ std::vector<std::pair<int, int> > result; |
+ WorkerProcessHost::Instances::const_iterator i; |
+ for (i = instances_.begin(); i != instances_.end(); ++i) { |
+ if (i->worker_route_id() != worker_route_id) |
+ continue; |
+ const WorkerDocumentSet::DocumentInfoSet& documents = |
+ i->worker_document_set()->documents(); |
+ for (WorkerDocumentSet::DocumentInfoSet::const_iterator doc = |
+ documents.begin(); doc != documents.end(); ++doc) { |
+ result.push_back( |
+ std::make_pair(doc->render_process_id(), doc->render_view_id())); |
+ } |
+ break; |
+ } |
+ return result; |
+} |
+ |
WorkerProcessHost::WorkerInstance::WorkerInstance( |
const GURL& url, |
const string16& name, |