Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(529)

Unified Diff: content/browser/worker_host/worker_process_host.h

Issue 411283002: Remove disable-embedded-shared-worker flag and shared worker process related codes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
deleted file mode 100644
index 48e5607b8fc47dc7e290fe716b8c770eede0e75f..0000000000000000000000000000000000000000
--- a/content/browser/worker_host/worker_process_host.h
+++ /dev/null
@@ -1,293 +0,0 @@
-// Copyright (c) 2012 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.
-
-#ifndef CONTENT_BROWSER_WORKER_HOST_WORKER_PROCESS_HOST_H_
-#define CONTENT_BROWSER_WORKER_HOST_WORKER_PROCESS_HOST_H_
-
-#include <list>
-#include <string>
-#include <utility>
-
-#include "base/basictypes.h"
-#include "base/files/file_path.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "content/browser/worker_host/worker_document_set.h"
-#include "content/browser/worker_host/worker_storage_partition.h"
-#include "content/common/content_export.h"
-#include "content/public/browser/browser_child_process_host_delegate.h"
-#include "content/public/browser/browser_child_process_host_iterator.h"
-#include "content/public/common/process_type.h"
-#include "content/public/common/resource_type.h"
-#include "ipc/ipc_sender.h"
-#include "third_party/WebKit/public/web/WebContentSecurityPolicy.h"
-#include "url/gurl.h"
-
-struct ResourceHostMsg_Request;
-
-namespace fileapi {
-class FileSystemContext;
-} // namespace fileapi
-
-namespace net {
-class URLRequestContext;
-}
-
-namespace webkit_database {
-class DatabaseTracker;
-} // namespace webkit_database
-
-namespace content {
-class BrowserChildProcessHostImpl;
-class IndexedDBContextImpl;
-class ResourceContext;
-class SocketStreamDispatcherHost;
-class WorkerMessageFilter;
-class WorkerServiceImpl;
-
-// The WorkerProcessHost is the interface that represents the browser side of
-// the browser <-> worker communication channel. There will be one
-// WorkerProcessHost per worker process. Currently each worker runs in its own
-// process, but that may change. However, we do assume (by storing a
-// net::URLRequestContext) that a WorkerProcessHost serves a single
-// BrowserContext.
-class WorkerProcessHost : public BrowserChildProcessHostDelegate,
- public IPC::Sender {
- public:
- // Contains information about each worker instance, needed to forward messages
- // between the renderer and worker processes.
- class WorkerInstance {
- public:
- WorkerInstance(const GURL& url,
- const base::string16& name,
- const base::string16& content_security_policy,
- blink::WebContentSecurityPolicyType security_policy_type,
- int worker_route_id,
- int render_frame_id,
- ResourceContext* resource_context,
- const WorkerStoragePartition& partition);
- ~WorkerInstance();
-
- // Unique identifier for a worker client.
- 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);
- void RemoveFilter(WorkerMessageFilter* filter, int route_id);
- void RemoveFilters(WorkerMessageFilter* filter);
- 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;
-
- typedef std::list<FilterInfo> FilterList;
- const FilterList& filters() const { return filters_; }
-
- // Checks if this WorkerInstance matches the passed url/name params
- // (per the comparison algorithm in the WebWorkers spec). This API only
- // applies to shared workers.
- bool Matches(
- const GURL& url,
- const base::string16& name,
- const WorkerStoragePartition& partition,
- ResourceContext* resource_context) const;
-
- // Shares the passed instance's WorkerDocumentSet with this instance. This
- // instance's current WorkerDocumentSet is dereferenced (and freed if this
- // is the only reference) as a result.
- void ShareDocumentSet(const WorkerInstance& instance) {
- worker_document_set_ = instance.worker_document_set_;
- };
-
- // Accessors
- bool closed() const { return closed_; }
- void set_closed(bool closed) { closed_ = closed; }
- const GURL& url() const { return url_; }
- const base::string16 name() const { return name_; }
- const base::string16 content_security_policy() const {
- return content_security_policy_;
- }
- blink::WebContentSecurityPolicyType security_policy_type() const {
- return security_policy_type_;
- }
- int worker_route_id() const { return worker_route_id_; }
- int render_frame_id() const { return render_frame_id_; }
- WorkerDocumentSet* worker_document_set() const {
- return worker_document_set_.get();
- }
- ResourceContext* resource_context() const {
- return resource_context_;
- }
- 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.
- GURL url_;
- bool closed_;
- base::string16 name_;
- base::string16 content_security_policy_;
- blink::WebContentSecurityPolicyType security_policy_type_;
- int worker_route_id_;
- int render_frame_id_;
- FilterList filters_;
- scoped_refptr<WorkerDocumentSet> worker_document_set_;
- ResourceContext* const resource_context_;
- WorkerStoragePartition partition_;
- bool load_failed_;
- };
-
- WorkerProcessHost(ResourceContext* resource_context,
- const WorkerStoragePartition& partition);
- virtual ~WorkerProcessHost();
-
- // IPC::Sender implementation:
- virtual bool Send(IPC::Message* message) OVERRIDE;
-
- // Starts the process. Returns true iff it succeeded.
- // |render_process_id| and |render_frame_id| are the renderer process and the
- // renderer frame responsible for starting this worker.
- bool Init(int render_process_id, int render_frame_id);
-
- // Creates a worker object in the process.
- void CreateWorker(const WorkerInstance& instance, bool pause_on_start);
-
- // Returns true iff the given message from a renderer process was forwarded to
- // the worker.
- bool FilterMessage(const IPC::Message& message, WorkerMessageFilter* filter);
-
- void FilterShutdown(WorkerMessageFilter* filter);
-
- // Shuts down any shared workers that are no longer referenced by active
- // documents.
- void DocumentDetached(WorkerMessageFilter* filter,
- unsigned long long document_id);
-
- // Terminates the given worker, i.e. based on a UI action.
- CONTENT_EXPORT void TerminateWorker(int worker_route_id);
-
- // Callers can reduce the WorkerProcess' priority.
- void SetBackgrounded(bool backgrounded);
-
- CONTENT_EXPORT const ChildProcessData& GetData();
-
- typedef std::list<WorkerInstance> Instances;
- const Instances& instances() const { return instances_; }
-
- ResourceContext* resource_context() const {
- return resource_context_;
- }
-
- bool process_launched() const { return process_launched_; }
-
- protected:
- friend class WorkerServiceImpl;
-
- Instances& mutable_instances() { return instances_; }
-
- private:
- // BrowserChildProcessHostDelegate implementation:
- virtual void OnProcessLaunched() OVERRIDE;
- virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
-
- // Creates and adds the message filters.
- void CreateMessageFilters(int render_process_id);
-
- void OnWorkerContextClosed(int worker_route_id);
- void OnWorkerContextDestroyed(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,
- const base::string16& display_name,
- unsigned long estimated_size,
- bool* result);
- void OnRequestFileSystemAccess(int worker_route_id,
- const GURL& url,
- IPC::Message* reply_msg);
- void OnRequestFileSystemAccessResponse(scoped_ptr<IPC::Message> reply_msg,
- bool allowed);
- void OnAllowIndexedDB(int worker_route_id,
- const GURL& url,
- const base::string16& name,
- bool* result);
- void OnForceKillWorkerProcess();
-
- // 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* incoming_filter,
- WorkerInstance* instance);
-
- void ShutdownSocketStreamDispatcherHostIfNecessary();
-
- virtual bool CanShutdown() OVERRIDE;
-
- // Updates the title shown in the task manager.
- void UpdateTitle();
-
- // Return a vector of all the render process/render frame IDs that use the
- // given worker.
- std::vector<std::pair<int, int> > GetRenderFrameIDsForWorker(int route_id);
-
- // Callbacks for ResourceMessageFilter and SocketStreamDispatcherHost.
- void GetContexts(const ResourceHostMsg_Request& request,
- ResourceContext** resource_context,
- net::URLRequestContext** request_context);
- net::URLRequestContext* GetRequestContext(ResourceType::Type resource_type);
-
- Instances instances_;
-
- ResourceContext* const resource_context_;
- WorkerStoragePartition partition_;
-
- // A reference to the filter associated with this worker process. We need to
- // keep this around since we'll use it when forward messages to the worker
- // process.
- scoped_refptr<WorkerMessageFilter> worker_message_filter_;
-
- scoped_ptr<BrowserChildProcessHostImpl> process_;
- bool process_launched_;
-
- scoped_refptr<SocketStreamDispatcherHost> socket_stream_dispatcher_host_;
-
- base::WeakPtrFactory<WorkerProcessHost> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(WorkerProcessHost);
-};
-
-class WorkerProcessHostIterator
- : public BrowserChildProcessHostTypeIterator<WorkerProcessHost> {
- public:
- WorkerProcessHostIterator()
- : BrowserChildProcessHostTypeIterator<WorkerProcessHost>(
- PROCESS_TYPE_WORKER) {
- }
-};
-
-} // namespace content
-
-#endif // CONTENT_BROWSER_WORKER_HOST_WORKER_PROCESS_HOST_H_
« no previous file with comments | « content/browser/worker_host/worker_message_filter.cc ('k') | content/browser/worker_host/worker_process_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698