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

Side by Side Diff: content/renderer/geolocation_dispatcher.cc

Issue 1771743002: Move geolocation and permission mojoms into WebKit/public/platform. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/renderer/geolocation_dispatcher.h" 5 #include "content/renderer/geolocation_dispatcher.h"
6 6
7 #include "content/public/common/geoposition.h" 7 #include "content/public/common/geoposition.h"
8 #include "content/renderer/render_view_impl.h" 8 #include "content/renderer/render_view_impl.h"
9 #include "third_party/WebKit/public/platform/WebString.h" 9 #include "third_party/WebKit/public/platform/WebString.h"
10 #include "third_party/WebKit/public/web/WebGeolocationPermissionRequest.h" 10 #include "third_party/WebKit/public/web/WebGeolocationPermissionRequest.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 void GeolocationDispatcher::requestPermission( 73 void GeolocationDispatcher::requestPermission(
74 const WebGeolocationPermissionRequest& permissionRequest) { 74 const WebGeolocationPermissionRequest& permissionRequest) {
75 if (!permission_service_.get()) { 75 if (!permission_service_.get()) {
76 render_frame()->GetServiceRegistry()->ConnectToRemoteService( 76 render_frame()->GetServiceRegistry()->ConnectToRemoteService(
77 mojo::GetProxy(&permission_service_)); 77 mojo::GetProxy(&permission_service_));
78 } 78 }
79 79
80 int permission_request_id = pending_permissions_->add(permissionRequest); 80 int permission_request_id = pending_permissions_->add(permissionRequest);
81 81
82 permission_service_->RequestPermission( 82 permission_service_->RequestPermission(
83 mojom::PermissionName::GEOLOCATION, 83 blink::mojom::PermissionName::GEOLOCATION,
84 permissionRequest.getSecurityOrigin().toString().utf8(), 84 permissionRequest.getSecurityOrigin().toString().utf8(),
85 base::Bind(&GeolocationDispatcher::OnPermissionSet, 85 base::Bind(&GeolocationDispatcher::OnPermissionSet,
86 base::Unretained(this), permission_request_id)); 86 base::Unretained(this), permission_request_id));
87 } 87 }
88 88
89 void GeolocationDispatcher::cancelPermissionRequest( 89 void GeolocationDispatcher::cancelPermissionRequest(
90 const blink::WebGeolocationPermissionRequest& permissionRequest) { 90 const blink::WebGeolocationPermissionRequest& permissionRequest) {
91 int permission_request_id; 91 int permission_request_id;
92 pending_permissions_->remove(permissionRequest, permission_request_id); 92 pending_permissions_->remove(permissionRequest, permission_request_id);
93 } 93 }
94 94
95 // Permission for using geolocation has been set. 95 // Permission for using geolocation has been set.
96 void GeolocationDispatcher::OnPermissionSet(int permission_request_id, 96 void GeolocationDispatcher::OnPermissionSet(
97 mojom::PermissionStatus status) { 97 int permission_request_id,
98 blink::mojom::PermissionStatus status) {
98 WebGeolocationPermissionRequest permissionRequest; 99 WebGeolocationPermissionRequest permissionRequest;
99 if (!pending_permissions_->remove(permission_request_id, permissionRequest)) 100 if (!pending_permissions_->remove(permission_request_id, permissionRequest))
100 return; 101 return;
101 102
102 permissionRequest.setIsAllowed(status == mojom::PermissionStatus::GRANTED); 103 permissionRequest.setIsAllowed(status ==
104 blink::mojom::PermissionStatus::GRANTED);
103 } 105 }
104 106
105 void GeolocationDispatcher::QueryNextPosition() { 107 void GeolocationDispatcher::QueryNextPosition() {
106 DCHECK(geolocation_service_); 108 DCHECK(geolocation_service_);
107 geolocation_service_->QueryNextPosition( 109 geolocation_service_->QueryNextPosition(
108 base::Bind(&GeolocationDispatcher::OnPositionUpdate, 110 base::Bind(&GeolocationDispatcher::OnPositionUpdate,
109 base::Unretained(this))); 111 base::Unretained(this)));
110 } 112 }
111 113
112 void GeolocationDispatcher::OnPositionUpdate( 114 void GeolocationDispatcher::OnPositionUpdate(
113 mojom::MojoGeopositionPtr geoposition) { 115 blink::mojom::GeopositionPtr geoposition) {
114 QueryNextPosition(); 116 QueryNextPosition();
115 117
116 if (geoposition->valid) { 118 if (geoposition->valid) {
117 controller_->positionChanged(WebGeolocationPosition( 119 controller_->positionChanged(WebGeolocationPosition(
118 geoposition->timestamp, 120 geoposition->timestamp,
119 geoposition->latitude, 121 geoposition->latitude,
120 geoposition->longitude, 122 geoposition->longitude,
121 geoposition->accuracy, 123 geoposition->accuracy,
122 // Lowest point on land is at approximately -400 meters. 124 // Lowest point on land is at approximately -400 meters.
123 geoposition->altitude > -10000., 125 geoposition->altitude > -10000.,
124 geoposition->altitude, 126 geoposition->altitude,
125 geoposition->altitude_accuracy >= 0., 127 geoposition->altitude_accuracy >= 0.,
126 geoposition->altitude_accuracy, 128 geoposition->altitude_accuracy,
127 geoposition->heading >= 0. && geoposition->heading <= 360., 129 geoposition->heading >= 0. && geoposition->heading <= 360.,
128 geoposition->heading, 130 geoposition->heading,
129 geoposition->speed >= 0., 131 geoposition->speed >= 0.,
130 geoposition->speed)); 132 geoposition->speed));
131 } else { 133 } else {
132 WebGeolocationError::Error code; 134 WebGeolocationError::Error code;
133 switch (geoposition->error_code) { 135 switch (geoposition->error_code) {
134 case mojom::MojoGeoposition::ErrorCode::PERMISSION_DENIED: 136 case blink::mojom::Geoposition::ErrorCode::PERMISSION_DENIED:
135 code = WebGeolocationError::ErrorPermissionDenied; 137 code = WebGeolocationError::ErrorPermissionDenied;
136 break; 138 break;
137 case mojom::MojoGeoposition::ErrorCode::POSITION_UNAVAILABLE: 139 case blink::mojom::Geoposition::ErrorCode::POSITION_UNAVAILABLE:
138 code = WebGeolocationError::ErrorPositionUnavailable; 140 code = WebGeolocationError::ErrorPositionUnavailable;
139 break; 141 break;
140 default: 142 default:
141 NOTREACHED() << geoposition->error_code; 143 NOTREACHED() << geoposition->error_code;
142 return; 144 return;
143 } 145 }
144 controller_->errorOccurred(WebGeolocationError( 146 controller_->errorOccurred(WebGeolocationError(
145 code, blink::WebString::fromUTF8(geoposition->error_message))); 147 code, blink::WebString::fromUTF8(geoposition->error_message)));
146 } 148 }
147 } 149 }
148 150
149 } // namespace content 151 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/geolocation_dispatcher.h ('k') | content/renderer/media/media_permission_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698