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

Unified Diff: content/browser/service_worker/service_worker_context_core.cc

Issue 1257553002: [Proof-of-concept] PlzNavigate and Service Worker Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Pass navigation_provider_id Created 5 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/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) {

Powered by Google App Engine
This is Rietveld 408576698