Index: content/child/service_worker/web_service_worker_provider_impl.cc |
diff --git a/content/child/service_worker/web_service_worker_provider_impl.cc b/content/child/service_worker/web_service_worker_provider_impl.cc |
index a951a5e36bdc820a88eaa3e2fa9ba06750d6dffd..c259f181375b2552b7f6a3922193808759bb560e 100644 |
--- a/content/child/service_worker/web_service_worker_provider_impl.cc |
+++ b/content/child/service_worker/web_service_worker_provider_impl.cc |
@@ -4,29 +4,42 @@ |
#include "content/child/service_worker/web_service_worker_provider_impl.h" |
+#include "base/atomic_sequence_num.h" |
#include "base/logging.h" |
#include "content/child/child_thread.h" |
#include "content/child/service_worker/service_worker_dispatcher.h" |
-#include "content/child/service_worker/service_worker_message_filter.h" |
#include "content/child/thread_safe_sender.h" |
#include "content/common/service_worker_messages.h" |
-#include "ipc/ipc_sender.h" |
-#include "third_party/WebKit/public/platform/WebString.h" |
#include "third_party/WebKit/public/platform/WebURL.h" |
-using blink::WebString; |
using blink::WebURL; |
namespace content { |
+namespace { |
+ |
+// Must be unique in the child process. |
+int GetNextProviderId() { |
+ static base::StaticAtomicSequenceNumber sequence; |
+ return sequence.GetNext() + 1; // We want to start at 1. |
+} |
+ |
+} // namespace |
+ |
WebServiceWorkerProviderImpl::WebServiceWorkerProviderImpl( |
ThreadSafeSender* thread_safe_sender, |
- ServiceWorkerMessageFilter* message_filter, |
- const blink::WebURL& origin, |
scoped_ptr<blink::WebServiceWorkerProviderClient> client) |
- : thread_safe_sender_(thread_safe_sender), client_(client.Pass()) {} |
+ : provider_id_(GetNextProviderId()), |
+ thread_safe_sender_(thread_safe_sender), |
+ client_(client.Pass()) { |
+ thread_safe_sender_->Send( |
+ new ServiceWorkerHostMsg_ProviderCreated(provider_id_)); |
+} |
-WebServiceWorkerProviderImpl::~WebServiceWorkerProviderImpl() {} |
+WebServiceWorkerProviderImpl::~WebServiceWorkerProviderImpl() { |
+ thread_safe_sender_->Send( |
+ new ServiceWorkerHostMsg_ProviderDestroyed(provider_id_)); |
+} |
void WebServiceWorkerProviderImpl::registerServiceWorker( |
const WebURL& pattern, |