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

Side by Side Diff: content/browser/geofencing/geofencing_dispatcher_host.cc

Issue 586163003: Basic implementation of GeofencingManager class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@geofencing5
Patch Set: scope registrations by service worker 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/geofencing/geofencing_dispatcher_host.h" 5 #include "content/browser/geofencing/geofencing_dispatcher_host.h"
6 6
7 #include "content/browser/geofencing/geofencing_manager.h"
7 #include "content/common/geofencing_messages.h" 8 #include "content/common/geofencing_messages.h"
8 #include "content/common/geofencing_status.h"
9 #include "third_party/WebKit/public/platform/WebCircularGeofencingRegion.h" 9 #include "third_party/WebKit/public/platform/WebCircularGeofencingRegion.h"
10 10
11 namespace content { 11 namespace content {
12 12
13 static const int kMaxRegionIdLength = 200; 13 static const int kMaxRegionIdLength = 200;
14 14
15 GeofencingDispatcherHost::GeofencingDispatcherHost() 15 GeofencingDispatcherHost::GeofencingDispatcherHost()
16 : BrowserMessageFilter(GeofencingMsgStart) { 16 : BrowserMessageFilter(GeofencingMsgStart) {
17 } 17 }
18 18
(...skipping 16 matching lines...) Expand all
35 int thread_id, 35 int thread_id,
36 int request_id, 36 int request_id,
37 const std::string& region_id, 37 const std::string& region_id,
38 const blink::WebCircularGeofencingRegion& region) { 38 const blink::WebCircularGeofencingRegion& region) {
39 // Sanity check on region_id 39 // Sanity check on region_id
40 if (region_id.length() > kMaxRegionIdLength) { 40 if (region_id.length() > kMaxRegionIdLength) {
41 Send(new GeofencingMsg_RegisterRegionComplete( 41 Send(new GeofencingMsg_RegisterRegionComplete(
42 thread_id, request_id, GeofencingStatus::GEOFENCING_STATUS_ERROR)); 42 thread_id, request_id, GeofencingStatus::GEOFENCING_STATUS_ERROR));
43 return; 43 return;
44 } 44 }
45 // TODO(mek): Handle registration request. 45 GeofencingManager::GetInstance()->RegisterRegion(
46 Send(new GeofencingMsg_RegisterRegionComplete( 46 0, /* service_worker_registration_id */
Michael van Ouwerkerk 2014/10/06 16:43:42 I assume you need a TODO here? And below.
Marijn Kruisselbrink 2014/10/06 19:14:11 Sure, I can add more TODO's here as well, although
Michael van Ouwerkerk 2014/10/08 16:59:01 TODO's are not just reminders for your future self
47 thread_id, 47 region_id,
48 request_id, 48 region,
49 GeofencingStatus:: 49 base::Bind(&GeofencingDispatcherHost::RegisterRegionCompleted,
50 GEOFENCING_STATUS_OPERATION_FAILED_SERVICE_NOT_AVAILABLE)); 50 this,
Michael van Ouwerkerk 2014/10/06 16:43:41 Should this be a weak pointer?
Marijn Kruisselbrink 2014/10/06 19:14:11 Yes, that's probably better. Done.
51 thread_id,
52 request_id));
51 } 53 }
52 54
53 void GeofencingDispatcherHost::OnUnregisterRegion( 55 void GeofencingDispatcherHost::OnUnregisterRegion(
54 int thread_id, 56 int thread_id,
55 int request_id, 57 int request_id,
56 const std::string& region_id) { 58 const std::string& region_id) {
57 // Sanity check on region_id 59 // Sanity check on region_id
58 if (region_id.length() > kMaxRegionIdLength) { 60 if (region_id.length() > kMaxRegionIdLength) {
59 Send(new GeofencingMsg_UnregisterRegionComplete( 61 Send(new GeofencingMsg_UnregisterRegionComplete(
60 thread_id, request_id, GeofencingStatus::GEOFENCING_STATUS_ERROR)); 62 thread_id, request_id, GeofencingStatus::GEOFENCING_STATUS_ERROR));
61 return; 63 return;
62 } 64 }
63 // TODO(mek): Handle unregistration request. 65 GeofencingManager::GetInstance()->UnregisterRegion(
64 Send(new GeofencingMsg_UnregisterRegionComplete( 66 0, /* service_worker_registration_id */
65 thread_id, 67 region_id,
66 request_id, 68 base::Bind(&GeofencingDispatcherHost::UnregisterRegionCompleted,
67 GeofencingStatus:: 69 this,
68 GEOFENCING_STATUS_OPERATION_FAILED_SERVICE_NOT_AVAILABLE)); 70 thread_id,
71 request_id));
69 } 72 }
70 73
71 void GeofencingDispatcherHost::OnGetRegisteredRegions(int thread_id, 74 void GeofencingDispatcherHost::OnGetRegisteredRegions(int thread_id,
72 int request_id) { 75 int request_id) {
73 GeofencingRegistrations result; 76 GeofencingRegistrations result;
77 GeofencingStatus status =
78 GeofencingManager::GetInstance()->GetRegisteredRegions(
79 0, /* service_worker_registration_id */
80 &result);
74 Send(new GeofencingMsg_GetRegisteredRegionsComplete( 81 Send(new GeofencingMsg_GetRegisteredRegionsComplete(
75 thread_id, 82 thread_id, request_id, status, result));
76 request_id, 83 }
77 GeofencingStatus:: 84
78 GEOFENCING_STATUS_OPERATION_FAILED_SERVICE_NOT_AVAILABLE, 85 void GeofencingDispatcherHost::RegisterRegionCompleted(
79 result)); 86 int thread_id,
87 int request_id,
88 GeofencingStatus result) {
Michael van Ouwerkerk 2014/10/06 16:43:41 Let's call this status as you use result for other
Marijn Kruisselbrink 2014/10/06 19:14:11 Done.
89 Send(new GeofencingMsg_RegisterRegionComplete(thread_id, request_id, result));
90 }
91
92 void GeofencingDispatcherHost::UnregisterRegionCompleted(
93 int thread_id,
94 int request_id,
95 GeofencingStatus result) {
96 Send(new GeofencingMsg_UnregisterRegionComplete(
97 thread_id, request_id, result));
80 } 98 }
81 99
82 } // namespace content 100 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698