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

Unified Diff: content/child/geofencing/geofencing_dispatcher.cc

Issue 623823002: Chrome side of passing on the service worker registration with geofencing API calls. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 6 years, 2 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/child/geofencing/geofencing_dispatcher.cc
diff --git a/content/child/geofencing/geofencing_dispatcher.cc b/content/child/geofencing/geofencing_dispatcher.cc
index 1b0f8498c463d35c31f08f8dc68747085b7ae526..454fd96c5995ea3a0f59337d40daf8c9b052994d 100644
--- a/content/child/geofencing/geofencing_dispatcher.cc
+++ b/content/child/geofencing/geofencing_dispatcher.cc
@@ -8,6 +8,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
#include "base/thread_task_runner_handle.h"
+#include "content/child/service_worker/web_service_worker_registration_impl.h"
#include "content/child/thread_safe_sender.h"
#include "content/child/worker_thread_task_runner.h"
#include "content/common/geofencing_messages.h"
@@ -63,28 +64,60 @@ void GeofencingDispatcher::OnMessageReceived(const IPC::Message& msg) {
void GeofencingDispatcher::RegisterRegion(
const blink::WebString& region_id,
const blink::WebCircularGeofencingRegion& region,
+ blink::WebServiceWorkerRegistration* service_worker_registration,
blink::WebGeofencingCallbacks* callbacks) {
DCHECK(callbacks);
int request_id = region_registration_requests_.Add(callbacks);
- Send(new GeofencingHostMsg_RegisterRegion(
- CurrentWorkerId(), request_id, region_id.utf8(), region));
+ // TODO(mek): Reject requests without a service worker registration without
+ // bouncing through browser process.
+ int64 serviceworker_registration_id = -1;
michaeln 2014/10/14 01:03:52 could use kInvalidServiceWorkerRegistrationId here
Marijn Kruisselbrink 2014/10/14 18:51:22 Done.
+ if (service_worker_registration) {
+ serviceworker_registration_id =
+ static_cast<WebServiceWorkerRegistrationImpl*>(
+ service_worker_registration)->registration_id();
+ }
+ Send(new GeofencingHostMsg_RegisterRegion(CurrentWorkerId(),
+ request_id,
+ region_id.utf8(),
+ region,
+ serviceworker_registration_id));
}
void GeofencingDispatcher::UnregisterRegion(
const blink::WebString& region_id,
+ blink::WebServiceWorkerRegistration* service_worker_registration,
blink::WebGeofencingCallbacks* callbacks) {
DCHECK(callbacks);
int request_id = region_unregistration_requests_.Add(callbacks);
- Send(new GeofencingHostMsg_UnregisterRegion(
- CurrentWorkerId(), request_id, region_id.utf8()));
+ // TODO(mek): Reject requests without a service worker registration without
+ // bouncing through browser process.
+ int64 serviceworker_registration_id = -1;
+ if (service_worker_registration) {
+ serviceworker_registration_id =
+ static_cast<WebServiceWorkerRegistrationImpl*>(
+ service_worker_registration)->registration_id();
+ }
+ Send(new GeofencingHostMsg_UnregisterRegion(CurrentWorkerId(),
+ request_id,
+ region_id.utf8(),
+ serviceworker_registration_id));
}
void GeofencingDispatcher::GetRegisteredRegions(
+ blink::WebServiceWorkerRegistration* service_worker_registration,
blink::WebGeofencingRegionsCallbacks* callbacks) {
DCHECK(callbacks);
int request_id = get_registered_regions_requests_.Add(callbacks);
- Send(new GeofencingHostMsg_GetRegisteredRegions(CurrentWorkerId(),
- request_id));
+ // TODO(mek): Reject requests without a service worker registration without
+ // bouncing through browser process.
+ int64 serviceworker_registration_id = -1;
+ if (service_worker_registration) {
+ serviceworker_registration_id =
+ static_cast<WebServiceWorkerRegistrationImpl*>(
+ service_worker_registration)->registration_id();
+ }
+ Send(new GeofencingHostMsg_GetRegisteredRegions(
+ CurrentWorkerId(), request_id, serviceworker_registration_id));
}
GeofencingDispatcher* GeofencingDispatcher::GetOrCreateThreadSpecificInstance(

Powered by Google App Engine
This is Rietveld 408576698