| 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 0416733b35fd9fec878fa3d7a7e3d8c08f54f817..f4c666220a686d51c606e9aa085097d5bf266f17 100644
|
| --- a/content/browser/service_worker/service_worker_context_core.cc
|
| +++ b/content/browser/service_worker/service_worker_context_core.cc
|
| @@ -141,6 +141,7 @@ ServiceWorkerContextCore::ServiceWorkerContextCore(
|
| provider_by_uuid_(new ProviderByClientUUIDMap),
|
| next_handle_id_(0),
|
| next_registration_handle_id_(0),
|
| + next_navigation_provider_host_id_(0),
|
| observer_list_(observer_list),
|
| weak_factory_(this) {
|
| // These get a WeakPtr from weak_factory_, so must be set after weak_factory_
|
| @@ -163,6 +164,8 @@ ServiceWorkerContextCore::ServiceWorkerContextCore(
|
| provider_by_uuid_(old_context->provider_by_uuid_.release()),
|
| next_handle_id_(old_context->next_handle_id_),
|
| next_registration_handle_id_(old_context->next_registration_handle_id_),
|
| + next_navigation_provider_host_id_(
|
| + old_context->next_navigation_provider_host_id_),
|
| observer_list_(old_context->observer_list_),
|
| weak_factory_(this) {
|
| // These get a WeakPtr from weak_factory_, so must be set after weak_factory_
|
| @@ -228,6 +231,26 @@ ServiceWorkerContextCore::GetClientProviderHostIterator(const GURL& origin) {
|
| providers_.get(), base::Bind(IsSameOriginClientProviderHost, origin)));
|
| }
|
|
|
| +scoped_ptr<ServiceWorkerProviderHost>
|
| +ServiceWorkerContextCore::CreateNavigationProviderHost() {
|
| + return scoped_ptr<ServiceWorkerProviderHost>(new ServiceWorkerProviderHost(
|
| + ServiceWorkerProviderHost::kVirtualProcessIDForNavigationRequest,
|
| + MSG_ROUTING_NONE, next_navigation_provider_host_id_++,
|
| + SERVICE_WORKER_PROVIDER_FOR_WINDOW, AsWeakPtr(), nullptr));
|
| +}
|
| +
|
| +void ServiceWorkerContextCore::RegisterNavigationProviderHost(
|
| + scoped_ptr<ServiceWorkerProviderHost> provider_host) {
|
| + navigation_provider_host_map_.add(provider_host->provider_id(),
|
| + provider_host.Pass());
|
| +}
|
| +
|
| +scoped_ptr<ServiceWorkerProviderHost>
|
| +ServiceWorkerContextCore::TakeNavigationProviderHost(
|
| + int navigation_provider_id) {
|
| + return navigation_provider_host_map_.take(navigation_provider_id);
|
| +}
|
| +
|
| void ServiceWorkerContextCore::RegisterProviderHostByClientID(
|
| const std::string& client_uuid,
|
| ServiceWorkerProviderHost* provider_host) {
|
|
|