Index: content/browser/shared_worker/shared_worker_host.cc |
diff --git a/content/browser/shared_worker/shared_worker_host.cc b/content/browser/shared_worker/shared_worker_host.cc |
index 10093207086d2bc0d1095ce1afb8c08c12e296a9..a41e5b623355657c468ae26353c36bbf10d56413 100644 |
--- a/content/browser/shared_worker/shared_worker_host.cc |
+++ b/content/browser/shared_worker/shared_worker_host.cc |
@@ -11,7 +11,6 @@ |
#include "content/browser/shared_worker/shared_worker_instance.h" |
#include "content/browser/shared_worker/shared_worker_message_filter.h" |
#include "content/browser/shared_worker/shared_worker_service_impl.h" |
-#include "content/browser/shared_worker/worker_document_set.h" |
#include "content/common/view_messages.h" |
#include "content/common/worker_messages.h" |
#include "content/public/browser/browser_thread.h" |
@@ -55,14 +54,14 @@ SharedWorkerHost::SharedWorkerHost(SharedWorkerInstance* instance, |
int worker_route_id) |
: instance_(instance), |
worker_document_set_(new WorkerDocumentSet()), |
- container_render_filter_(filter), |
+ worker_render_filter_(filter), |
worker_process_id_(filter->render_process_id()), |
worker_route_id_(worker_route_id), |
- termination_message_sent_(false), |
- closed_(false), |
creation_time_(base::TimeTicks::Now()), |
weak_factory_(this) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ DCHECK(instance_); |
+ DCHECK(worker_render_filter_); |
} |
SharedWorkerHost::~SharedWorkerHost() { |
@@ -75,14 +74,6 @@ SharedWorkerHost::~SharedWorkerHost() { |
worker_process_id_, worker_route_id_); |
} |
-bool SharedWorkerHost::Send(IPC::Message* message) { |
- if (!container_render_filter_) { |
- delete message; |
- return false; |
- } |
- return container_render_filter_->Send(message); |
-} |
- |
void SharedWorkerHost::Start(bool pause_on_start) { |
WorkerProcessMsg_CreateWorker_Params params; |
params.url = instance_->url(); |
@@ -110,8 +101,6 @@ bool SharedWorkerHost::FilterConnectionMessage( |
} |
void SharedWorkerHost::FilterShutdown(SharedWorkerMessageFilter* filter) { |
- if (!instance_) |
- return; |
RemoveFilters(filter); |
worker_document_set_->RemoveAll(filter); |
if (worker_document_set_->IsEmpty()) { |
@@ -122,8 +111,6 @@ void SharedWorkerHost::FilterShutdown(SharedWorkerMessageFilter* filter) { |
void SharedWorkerHost::DocumentDetached(SharedWorkerMessageFilter* filter, |
unsigned long long document_id) { |
- if (!instance_) |
- return; |
// Walk all instances and remove the document from their document set. |
worker_document_set_->Remove(filter, document_id); |
if (worker_document_set_->IsEmpty()) { |
@@ -134,8 +121,6 @@ void SharedWorkerHost::DocumentDetached(SharedWorkerMessageFilter* filter, |
void SharedWorkerHost::RenderFrameDetached(int render_process_id, |
int render_frame_id) { |
- if (!instance_) |
- return; |
// Walk all instances and remove all the documents in the frame from their |
// document set. |
worker_document_set_->RemoveRenderFrame(render_process_id, render_frame_id); |
@@ -146,8 +131,6 @@ void SharedWorkerHost::RenderFrameDetached(int render_process_id, |
} |
void SharedWorkerHost::WorkerContextClosed() { |
- if (!instance_) |
- return; |
// Set the closed flag - this will stop any further messages from |
// being sent to the worker (messages can still be sent from the worker, |
// for exception reporting, etc). |
@@ -156,13 +139,6 @@ void SharedWorkerHost::WorkerContextClosed() { |
NotifyWorkerDestroyed(worker_process_id_, worker_route_id_); |
} |
-void SharedWorkerHost::WorkerContextDestroyed() { |
- if (!instance_) |
- return; |
- instance_.reset(); |
- worker_document_set_ = nullptr; |
-} |
- |
void SharedWorkerHost::WorkerReadyForInspection() { |
NotifyWorkerReadyForInspection(worker_process_id_, worker_route_id_); |
} |
@@ -175,15 +151,11 @@ void SharedWorkerHost::WorkerScriptLoaded() { |
void SharedWorkerHost::WorkerScriptLoadFailed() { |
UMA_HISTOGRAM_TIMES("SharedWorker.TimeToScriptLoadFailed", |
base::TimeTicks::Now() - creation_time_); |
- if (!instance_) |
- return; |
for (const FilterInfo& info : filters_) |
info.filter()->Send(new ViewMsg_WorkerScriptLoadFailed(info.route_id())); |
} |
void SharedWorkerHost::WorkerConnected(int message_port_id) { |
- if (!instance_) |
- return; |
for (const FilterInfo& info : filters_) { |
if (info.message_port_id() != message_port_id) |
continue; |
@@ -195,8 +167,6 @@ void SharedWorkerHost::WorkerConnected(int message_port_id) { |
void SharedWorkerHost::AllowFileSystem( |
const GURL& url, |
std::unique_ptr<IPC::Message> reply_msg) { |
- if (!instance_) |
- return; |
GetContentClient()->browser()->AllowWorkerFileSystem( |
url, |
instance_->resource_context(), |
@@ -218,8 +188,6 @@ void SharedWorkerHost::AllowFileSystemResponse( |
void SharedWorkerHost::AllowIndexedDB(const GURL& url, |
const base::string16& name, |
bool* result) { |
- if (!instance_) |
- return; |
*result = GetContentClient()->browser()->AllowWorkerIndexedDB( |
url, name, instance_->resource_context(), GetRenderFrameIDsForWorker()); |
} |
@@ -234,8 +202,6 @@ void SharedWorkerHost::TerminateWorker() { |
std::vector<std::pair<int, int> > |
SharedWorkerHost::GetRenderFrameIDsForWorker() { |
std::vector<std::pair<int, int> > result; |
- if (!instance_) |
- return result; |
const WorkerDocumentSet::DocumentInfoSet& documents = |
worker_document_set_->documents(); |
for (const WorkerDocumentSet::DocumentInfo& doc : documents) { |
@@ -246,7 +212,7 @@ SharedWorkerHost::GetRenderFrameIDsForWorker() { |
} |
bool SharedWorkerHost::IsAvailable() const { |
- return instance_ && !termination_message_sent_ && !closed_; |
+ return !termination_message_sent_ && !closed_; |
} |
void SharedWorkerHost::AddFilter(SharedWorkerMessageFilter* filter, |
@@ -269,9 +235,8 @@ void SharedWorkerHost::RemoveFilters(SharedWorkerMessageFilter* filter) { |
bool SharedWorkerHost::HasFilter(SharedWorkerMessageFilter* filter, |
int route_id) const { |
- for (FilterList::const_iterator i = filters_.begin(); i != filters_.end(); |
- ++i) { |
- if (i->filter() == filter && i->route_id() == route_id) |
+ for (const FilterInfo& info : filters_) { |
+ if (info.filter() == filter && info.route_id() == route_id) |
return true; |
} |
return false; |
@@ -282,12 +247,12 @@ void SharedWorkerHost::Connect(int route_id, |
SharedWorkerMessageFilter* incoming_filter) { |
DCHECK(IsAvailable()); |
DCHECK(HasFilter(incoming_filter, route_id)); |
- DCHECK(container_render_filter_); |
+ DCHECK(worker_render_filter_); |
- int new_routing_id = container_render_filter_->GetNextRoutingID(); |
+ int new_routing_id = worker_render_filter_->GetNextRoutingID(); |
MessagePortService::GetInstance()->UpdateMessagePort( |
sent_message_port_id, |
- container_render_filter_->message_port_message_filter(), new_routing_id); |
+ worker_render_filter_->message_port_message_filter(), new_routing_id); |
SetMessagePortID(incoming_filter, route_id, sent_message_port_id); |
Send(new WorkerMsg_Connect(worker_route_id_, sent_message_port_id, |
new_routing_id)); |
@@ -300,12 +265,16 @@ void SharedWorkerHost::Connect(int route_id, |
void SharedWorkerHost::SetMessagePortID(SharedWorkerMessageFilter* filter, |
int route_id, |
int message_port_id) { |
- for (FilterList::iterator i = filters_.begin(); i != filters_.end(); ++i) { |
- if (i->filter() == filter && i->route_id() == route_id) { |
- i->set_message_port_id(message_port_id); |
+ for (FilterInfo& info : filters_) { |
+ if (info.filter() == filter && info.route_id() == route_id) { |
+ info.set_message_port_id(message_port_id); |
return; |
} |
} |
} |
+bool SharedWorkerHost::Send(IPC::Message* message) { |
+ return worker_render_filter_->Send(message); |
+} |
+ |
} // namespace content |