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

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

Issue 225403014: ServiceWorker: propagate provider_id to the browser process in .register + int32/int cleanup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 6 years, 8 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_dispatcher_host.cc
diff --git a/content/browser/service_worker/service_worker_dispatcher_host.cc b/content/browser/service_worker/service_worker_dispatcher_host.cc
index 3cab865ad490c7a8d99e0fd0e483fff11a911275..aa16330aa10e454babf51e078b6139cb632c9bbd 100644
--- a/content/browser/service_worker/service_worker_dispatcher_host.cc
+++ b/content/browser/service_worker/service_worker_dispatcher_host.cc
@@ -118,8 +118,9 @@ int ServiceWorkerDispatcherHost::RegisterServiceWorkerHandle(
}
void ServiceWorkerDispatcherHost::OnRegisterServiceWorker(
- int32 thread_id,
- int32 request_id,
+ int thread_id,
+ int request_id,
+ int provider_id,
const GURL& pattern,
const GURL& script_url) {
if (!context_ || !ServiceWorkerUtils::IsFeatureEnabled()) {
@@ -143,10 +144,18 @@ void ServiceWorkerDispatcherHost::OnRegisterServiceWorker(
return;
}
+ ServiceWorkerProviderHost* provider_host = context_->GetProviderHost(
+ render_process_id_, provider_id);
+ if (!provider_host) {
+ BadMessageReceived();
+ return;
+ }
+
context_->RegisterServiceWorker(
pattern,
script_url,
render_process_id_,
+ provider_host,
base::Bind(&ServiceWorkerDispatcherHost::RegistrationComplete,
this,
thread_id,
@@ -154,8 +163,9 @@ void ServiceWorkerDispatcherHost::OnRegisterServiceWorker(
}
void ServiceWorkerDispatcherHost::OnUnregisterServiceWorker(
- int32 thread_id,
- int32 request_id,
+ int thread_id,
+ int request_id,
+ int provider_id,
const GURL& pattern) {
// TODO(alecflett): This check is insufficient for release. Add a
// ServiceWorker-specific policy query in
@@ -169,9 +179,17 @@ void ServiceWorkerDispatcherHost::OnUnregisterServiceWorker(
return;
}
+ ServiceWorkerProviderHost* provider_host = context_->GetProviderHost(
+ render_process_id_, provider_id);
+ if (!provider_host) {
+ BadMessageReceived();
+ return;
+ }
+
context_->UnregisterServiceWorker(
pattern,
render_process_id_,
+ provider_host,
base::Bind(&ServiceWorkerDispatcherHost::UnregistrationComplete,
this,
thread_id,
@@ -263,8 +281,8 @@ void ServiceWorkerDispatcherHost::OnSetHostedVersionId(
}
void ServiceWorkerDispatcherHost::RegistrationComplete(
- int32 thread_id,
- int32 request_id,
+ int thread_id,
+ int request_id,
ServiceWorkerStatusCode status,
int64 registration_id,
int64 version_id) {
@@ -328,8 +346,8 @@ void ServiceWorkerDispatcherHost::OnServiceWorkerObjectDestroyed(
}
void ServiceWorkerDispatcherHost::UnregistrationComplete(
- int32 thread_id,
- int32 request_id,
+ int thread_id,
+ int request_id,
ServiceWorkerStatusCode status) {
if (status != SERVICE_WORKER_OK) {
SendRegistrationError(thread_id, request_id, status);
@@ -340,8 +358,8 @@ void ServiceWorkerDispatcherHost::UnregistrationComplete(
}
void ServiceWorkerDispatcherHost::SendRegistrationError(
- int32 thread_id,
- int32 request_id,
+ int thread_id,
+ int request_id,
ServiceWorkerStatusCode status) {
base::string16 error_message;
blink::WebServiceWorkerError::ErrorType error_type;

Powered by Google App Engine
This is Rietveld 408576698