Index: content/browser/worker_host/worker_process_host.cc |
diff --git a/content/browser/worker_host/worker_process_host.cc b/content/browser/worker_host/worker_process_host.cc |
index 87fc44ce84a94ce02771bbe1f08f2ad9e3b63a6e..228cd7b4b5b934928281414c4ba78613da347958 100644 |
--- a/content/browser/worker_host/worker_process_host.cc |
+++ b/content/browser/worker_host/worker_process_host.cc |
@@ -281,11 +281,9 @@ void WorkerProcessHost::CreateWorker(const WorkerInstance& instance) { |
WorkerProcessMsg_CreateWorker_Params params; |
params.url = instance.url(); |
- params.is_shared = instance.shared(); |
params.name = instance.name(); |
params.route_id = instance.worker_route_id(); |
params.creator_process_id = instance.parent_process_id(); |
- params.creator_appcache_host_id = instance.parent_appcache_host_id(); |
params.shared_worker_appcache_id = instance.main_resource_appcache_id(); |
Send(new WorkerProcessMsg_CreateWorker(params)); |
@@ -343,13 +341,6 @@ bool WorkerProcessHost::OnMessageReceived(const IPC::Message& message) { |
for (Instances::iterator i = instances_.begin(); i != instances_.end(); ++i) { |
if (i->worker_route_id() == message.routing_id()) { |
- if (!i->shared()) { |
- // Don't relay messages from shared workers (all communication is via |
- // the message port). |
- WorkerInstance::FilterInfo info = i->GetFilter(); |
- RelayMessage(message, info.first, info.second); |
- } |
- |
if (message.type() == WorkerHostMsg_WorkerContextDestroyed::ID) { |
instances_.erase(i); |
UpdateTitle(); |
@@ -455,12 +446,9 @@ void WorkerProcessHost::FilterShutdown(WorkerMessageFilter* filter) { |
for (Instances::iterator i = instances_.begin(); i != instances_.end();) { |
bool shutdown = false; |
i->RemoveFilters(filter); |
- if (i->shared()) { |
- i->worker_document_set()->RemoveAll(filter); |
- if (i->worker_document_set()->IsEmpty()) { |
- shutdown = true; |
- } |
- } else if (i->NumFilters() == 0) { |
+ |
+ i->worker_document_set()->RemoveAll(filter); |
+ if (i->worker_document_set()->IsEmpty()) { |
shutdown = true; |
} |
if (shutdown) { |
@@ -513,37 +501,29 @@ void WorkerProcessHost::DocumentDetached(WorkerMessageFilter* filter, |
unsigned long long document_id) { |
// Walk all instances and remove the document from their document set. |
for (Instances::iterator i = instances_.begin(); i != instances_.end();) { |
- if (!i->shared()) { |
- ++i; |
+ i->worker_document_set()->Remove(filter, document_id); |
+ if (i->worker_document_set()->IsEmpty()) { |
+ // This worker has no more associated documents - shut it down. |
+ Send(new WorkerMsg_TerminateWorkerContext(i->worker_route_id())); |
+ i = instances_.erase(i); |
} else { |
- i->worker_document_set()->Remove(filter, document_id); |
- if (i->worker_document_set()->IsEmpty()) { |
- // This worker has no more associated documents - shut it down. |
- Send(new WorkerMsg_TerminateWorkerContext(i->worker_route_id())); |
- i = instances_.erase(i); |
- } else { |
- ++i; |
- } |
+ ++i; |
} |
} |
} |
WorkerProcessHost::WorkerInstance::WorkerInstance( |
const GURL& url, |
- bool shared, |
const string16& name, |
int worker_route_id, |
int parent_process_id, |
- int parent_appcache_host_id, |
int64 main_resource_appcache_id, |
const content::ResourceContext* resource_context) |
: url_(url), |
- shared_(shared), |
closed_(false), |
name_(name), |
worker_route_id_(worker_route_id), |
parent_process_id_(parent_process_id), |
- parent_appcache_host_id_(parent_appcache_host_id), |
main_resource_appcache_id_(main_resource_appcache_id), |
worker_document_set_(new WorkerDocumentSet()), |
resource_context_(resource_context) { |
@@ -556,12 +536,10 @@ WorkerProcessHost::WorkerInstance::WorkerInstance( |
const string16& name, |
const content::ResourceContext* resource_context) |
: url_(url), |
- shared_(shared), |
closed_(false), |
name_(name), |
worker_route_id_(MSG_ROUTING_NONE), |
parent_process_id_(0), |
- parent_appcache_host_id_(0), |
main_resource_appcache_id_(0), |
worker_document_set_(new WorkerDocumentSet()), |
resource_context_(resource_context) { |
@@ -581,7 +559,7 @@ bool WorkerProcessHost::WorkerInstance::Matches( |
const string16& match_name, |
const content::ResourceContext* resource_context) const { |
// Only match open shared workers. |
- if (!shared_ || closed_) |
+ if (closed_) |
return false; |
// Have to match the same ResourceContext. |
@@ -603,8 +581,6 @@ void WorkerProcessHost::WorkerInstance::AddFilter(WorkerMessageFilter* filter, |
FilterInfo info(filter, route_id); |
filters_.push_back(info); |
} |
- // Only shared workers can have more than one associated filter. |
- DCHECK(shared_ || filters_.size() == 1); |
} |
void WorkerProcessHost::WorkerInstance::RemoveFilter( |