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 3 // found in the LICENSE file. 4 5 // IPC messages for geolocation. 6 // Multiply-included message file, hence no include guard. 7 8 #include "content/public/common/geoposition.h" 9 #include "ipc/ipc_message_macros.h" 10 #include "url/gurl.h" 11 12 #define IPC_MESSAGE_START GeolocationMsgStart 13 14 IPC_ENUM_TRAITS_MAX_VALUE(content::Geoposition::ErrorCode, 15 content::Geoposition::ERROR_CODE_LAST) 16 17 IPC_STRUCT_TRAITS_BEGIN(content::Geoposition) 18 IPC_STRUCT_TRAITS_MEMBER(latitude) 19 IPC_STRUCT_TRAITS_MEMBER(longitude) 20 IPC_STRUCT_TRAITS_MEMBER(altitude) 21 IPC_STRUCT_TRAITS_MEMBER(accuracy) 22 IPC_STRUCT_TRAITS_MEMBER(altitude_accuracy) 23 IPC_STRUCT_TRAITS_MEMBER(heading) 24 IPC_STRUCT_TRAITS_MEMBER(speed) 25 IPC_STRUCT_TRAITS_MEMBER(timestamp) 26 IPC_STRUCT_TRAITS_MEMBER(error_code) 27 IPC_STRUCT_TRAITS_MEMBER(error_message) 28 IPC_STRUCT_TRAITS_END() 29 30 // Messages sent from the browser to the renderer. 31 32 // Reply in response to GeolocationHostMsg_RequestPermission. 33 IPC_MESSAGE_ROUTED2(GeolocationMsg_PermissionSet, 34 int /* bridge_id */, 35 bool /* is_allowed */) 36 37 // Sent after GeolocationHostMsg_StartUpdating iff the user has granted 38 // permission and we have a position available or an error occurs (such as 39 // permission denied, position unavailable, etc.) 40 IPC_MESSAGE_ROUTED1(GeolocationMsg_PositionUpdated, 41 content::Geoposition /* geoposition */) 42 43 // Messages sent from the renderer to the browser. 44 45 // The |bridge_id| representing |host| is requesting permission to access 46 // geolocation position. This will be replied by GeolocationMsg_PermissionSet. 47 IPC_MESSAGE_ROUTED3(GeolocationHostMsg_RequestPermission, 48 int /* bridge_id */, 49 GURL /* GURL of the frame requesting geolocation */, 50 bool /* user_gesture */) 51 52 // The |bridge_id| representing |GURL| is cancelling its previous permission 53 // request to access geolocation position. 54 IPC_MESSAGE_ROUTED2(GeolocationHostMsg_CancelPermissionRequest, 55 int /* bridge_id */, 56 GURL /* GURL of the frame */) 57 58 // The render view requests the Geolocation service to start updating. 59 // This is an asynchronous call, and the browser process may eventually reply 60 // with the updated geoposition, or an error (access denied, location 61 // unavailable, etc.) 62 IPC_MESSAGE_ROUTED2(GeolocationHostMsg_StartUpdating, 63 GURL /* GURL of the frame requesting geolocation */, 64 bool /* enable_high_accuracy */) 65 66 // The render view requests Geolocation service to stop updating. 67 // Note that the geolocation service may continue to fetch geolocation data 68 // for other origins. 69 IPC_MESSAGE_ROUTED0(GeolocationHostMsg_StopUpdating) 70