| Index: content/browser/worker_host/worker_process_host.h
|
| diff --git a/content/browser/worker_host/worker_process_host.h b/content/browser/worker_host/worker_process_host.h
|
| index b555313ab0b42ee02ff92c5883883d3d55aa0b6b..2a70637fa2f77146c78a2298ed276b3b2cbd19b9 100644
|
| --- a/content/browser/worker_host/worker_process_host.h
|
| +++ b/content/browser/worker_host/worker_process_host.h
|
| @@ -62,21 +62,26 @@ class WorkerProcessHost : public BrowserChildProcessHostDelegate,
|
| const base::string16& content_security_policy,
|
| blink::WebContentSecurityPolicyType security_policy_type,
|
| int worker_route_id,
|
| - int parent_process_id,
|
| int render_frame_id,
|
| - int64 main_resource_appcache_id,
|
| - ResourceContext* resource_context,
|
| - const WorkerStoragePartition& partition);
|
| - // Used for pending instances. Rest of the parameters are ignored.
|
| - WorkerInstance(const GURL& url,
|
| - bool shared,
|
| - const base::string16& name,
|
| ResourceContext* resource_context,
|
| const WorkerStoragePartition& partition);
|
| ~WorkerInstance();
|
|
|
| // Unique identifier for a worker client.
|
| - typedef std::pair<WorkerMessageFilter*, int> FilterInfo;
|
| + class FilterInfo {
|
| + public:
|
| + FilterInfo(WorkerMessageFilter* filter, int route_id)
|
| + : filter_(filter), route_id_(route_id), message_port_id_(0) { }
|
| + WorkerMessageFilter* filter() const { return filter_; }
|
| + int route_id() const { return route_id_; }
|
| + int message_port_id() const { return message_port_id_; }
|
| + void set_message_port_id(int id) { message_port_id_ = id; }
|
| +
|
| + private:
|
| + WorkerMessageFilter* filter_;
|
| + int route_id_;
|
| + int message_port_id_;
|
| + };
|
|
|
| // APIs to manage the filter list for a given instance.
|
| void AddFilter(WorkerMessageFilter* filter, int route_id);
|
| @@ -85,6 +90,9 @@ class WorkerProcessHost : public BrowserChildProcessHostDelegate,
|
| bool HasFilter(WorkerMessageFilter* filter, int route_id) const;
|
| bool FrameIsParent(int render_process_id, int render_frame_id) const;
|
| int NumFilters() const { return filters_.size(); }
|
| + void SetMessagePortID(WorkerMessageFilter* filter,
|
| + int route_id,
|
| + int message_port_id);
|
| // Returns the single filter (must only be one).
|
| FilterInfo GetFilter() const;
|
|
|
| @@ -119,11 +127,7 @@ class WorkerProcessHost : public BrowserChildProcessHostDelegate,
|
| return security_policy_type_;
|
| }
|
| int worker_route_id() const { return worker_route_id_; }
|
| - int parent_process_id() const { return parent_process_id_; }
|
| int render_frame_id() const { return render_frame_id_; }
|
| - int64 main_resource_appcache_id() const {
|
| - return main_resource_appcache_id_;
|
| - }
|
| WorkerDocumentSet* worker_document_set() const {
|
| return worker_document_set_.get();
|
| }
|
| @@ -133,6 +137,8 @@ class WorkerProcessHost : public BrowserChildProcessHostDelegate,
|
| const WorkerStoragePartition& partition() const {
|
| return partition_;
|
| }
|
| + void set_load_failed(bool failed) { load_failed_ = failed; }
|
| + bool load_failed() { return load_failed_; }
|
|
|
| private:
|
| // Set of all filters (clients) associated with this worker.
|
| @@ -142,13 +148,12 @@ class WorkerProcessHost : public BrowserChildProcessHostDelegate,
|
| base::string16 content_security_policy_;
|
| blink::WebContentSecurityPolicyType security_policy_type_;
|
| int worker_route_id_;
|
| - int parent_process_id_;
|
| int render_frame_id_;
|
| - int64 main_resource_appcache_id_;
|
| FilterList filters_;
|
| scoped_refptr<WorkerDocumentSet> worker_document_set_;
|
| ResourceContext* const resource_context_;
|
| WorkerStoragePartition partition_;
|
| + bool load_failed_;
|
| };
|
|
|
| WorkerProcessHost(ResourceContext* resource_context,
|
| @@ -208,6 +213,9 @@ class WorkerProcessHost : public BrowserChildProcessHostDelegate,
|
| void CreateMessageFilters(int render_process_id);
|
|
|
| void OnWorkerContextClosed(int worker_route_id);
|
| + void OnWorkerScriptLoaded(int worker_route_id);
|
| + void OnWorkerScriptLoadFailed(int worker_route_id);
|
| + void OnWorkerConnected(int message_port_id, int worker_route_id);
|
| void OnAllowDatabase(int worker_route_id,
|
| const GURL& url,
|
| const base::string16& name,
|
| @@ -226,8 +234,8 @@ class WorkerProcessHost : public BrowserChildProcessHostDelegate,
|
| // Relays a message to the given endpoint. Takes care of parsing the message
|
| // if it contains a message port and sending it a valid route id.
|
| void RelayMessage(const IPC::Message& message,
|
| - WorkerMessageFilter* filter,
|
| - int route_id);
|
| + WorkerMessageFilter* incoming_filter,
|
| + WorkerInstance* instance);
|
|
|
| void ShutdownSocketStreamDispatcherHostIfNecessary();
|
|
|
|
|