Chromium Code Reviews| Index: content/browser/shared_worker/shared_worker_service_impl.h |
| diff --git a/content/browser/shared_worker/shared_worker_service_impl.h b/content/browser/shared_worker/shared_worker_service_impl.h |
| index fd199894dedda196572c545976c37a06cc68eb1e..e79703e3c98cffa1800fe840e71dc3ce5764707f 100644 |
| --- a/content/browser/shared_worker/shared_worker_service_impl.h |
| +++ b/content/browser/shared_worker/shared_worker_service_impl.h |
| @@ -5,6 +5,8 @@ |
| #ifndef CONTENT_BROWSER_SHARED_WORKER_SHARED_WORKER_SERVICE_IMPL_H_ |
| #define CONTENT_BROWSER_SHARED_WORKER_SHARED_WORKER_SERVICE_IMPL_H_ |
| +#include <set> |
| + |
| #include "base/compiler_specific.h" |
| #include "base/containers/scoped_ptr_hash_map.h" |
| #include "base/memory/singleton.h" |
| @@ -88,6 +90,17 @@ class CONTENT_EXPORT SharedWorkerServiceImpl |
| private: |
| friend struct DefaultSingletonTraits<SharedWorkerServiceImpl>; |
| + class CONTENT_EXPORT ScopedWorkerDependencyChecker { |
| + public: |
| + ScopedWorkerDependencyChecker(SharedWorkerServiceImpl* service_impl) |
|
kinuko
2014/03/05 08:03:47
nit: explicit
horo
2014/03/05 08:16:58
Done.
|
| + : service_impl_(service_impl) {} |
| + ~ScopedWorkerDependencyChecker() { service_impl_->CheckWorkerDependency(); } |
| + |
| + private: |
| + SharedWorkerServiceImpl* service_impl_; |
| + DISALLOW_COPY_AND_ASSIGN(ScopedWorkerDependencyChecker); |
| + }; |
| + |
| SharedWorkerServiceImpl(); |
| virtual ~SharedWorkerServiceImpl(); |
| @@ -101,6 +114,17 @@ class CONTENT_EXPORT SharedWorkerServiceImpl |
| const WorkerStoragePartition& worker_partition, |
| ResourceContext* resource_context); |
| + // Returns the IDs of the renderer processes which are executing |
| + // SharedWorkers connected to other renderer processes. |
| + const std::set<int> GetWorkerDependedRenderers(); |
|
kinuko
2014/03/05 08:03:47
GetRenderersWithWorkerDependency?
'worker-depende
horo
2014/03/05 08:16:58
Done.
|
| + |
| + // Checks the worker dependency of renderer processes and calls |
| + // IncrementWorkerRefCount and DecrementWorkerRefCount of |
| + // RenderProcessHostImpl on UI thread if necessary. |
| + void CheckWorkerDependency(); |
| + |
| + std::set<int> last_worker_depended_renderers_; |
| + |
| // Pair of render_process_id and worker_route_id. |
| typedef std::pair<int, int> ProcessRouteIdPair; |
| typedef base::ScopedPtrHashMap<ProcessRouteIdPair, |