Index: content/browser/service_worker/service_worker_context_core.cc |
diff --git a/content/browser/service_worker/service_worker_context_core.cc b/content/browser/service_worker/service_worker_context_core.cc |
index 9cb2cbecef8b2969c06f0e9e6302e0cd5b85cf09..22ae50070557838d6d3f29d6b7a80abf9bb36805 100644 |
--- a/content/browser/service_worker/service_worker_context_core.cc |
+++ b/content/browser/service_worker/service_worker_context_core.cc |
@@ -6,6 +6,7 @@ |
#include "base/command_line.h" |
#include "base/files/file_path.h" |
+#include "content/browser/service_worker/service_worker_provider_host.h" |
#include "content/public/common/content_switches.h" |
#include "webkit/browser/quota/quota_manager.h" |
@@ -26,12 +27,44 @@ ServiceWorkerContextCore::ServiceWorkerContextCore( |
path_ = user_data_directory.Append(kServiceWorkerDirectory); |
} |
+ServiceWorkerContextCore::~ServiceWorkerContextCore() { |
+} |
+ |
+ServiceWorkerProviderHost* ServiceWorkerContextCore::GetProviderHost( |
+ int process_id, int provider_id) { |
+ ProviderMap* map = GetProviderMapForProcess(process_id); |
+ if (!map) |
+ return NULL; |
+ return map->Lookup(provider_id); |
+} |
+ |
+void ServiceWorkerContextCore::AddProviderHost( |
+ scoped_ptr<ServiceWorkerProviderHost> host) { |
+ ServiceWorkerProviderHost* host_ptr = host.release(); // we take ownership |
+ ProviderMap* map = GetProviderMapForProcess(host_ptr->process_id()); |
+ if (!map) { |
+ map = new ProviderMap; |
+ providers_.AddWithID(map, host_ptr->process_id()); |
+ } |
+ map->AddWithID(host_ptr, host_ptr->provider_id()); |
+} |
+ |
+void ServiceWorkerContextCore::RemoveProviderHost( |
+ int process_id, int provider_id) { |
+ ProviderMap* map = GetProviderMapForProcess(process_id); |
+ DCHECK(map); |
+ map->Remove(provider_id); |
+} |
+ |
+void ServiceWorkerContextCore::RemoveAllProviderHostsForProcess( |
+ int process_id) { |
+ if (providers_.Lookup(process_id)) |
+ providers_.Remove(process_id); |
+} |
+ |
bool ServiceWorkerContextCore::IsEnabled() { |
return CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kEnableServiceWorker); |
} |
-ServiceWorkerContextCore::~ServiceWorkerContextCore() { |
-} |
- |
} // namespace content |