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 14IPC_ENUM_TRAITS_MAX_VALUE(content::Geoposition::ErrorCode, 15 content::Geoposition::ERROR_CODE_LAST) 16 17IPC_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) 28IPC_STRUCT_TRAITS_END() 29 30// Messages sent from the browser to the renderer. 31 32// Reply in response to GeolocationHostMsg_RequestPermission. 33IPC_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.) 40IPC_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. 47IPC_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. 54IPC_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.) 62IPC_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. 69IPC_MESSAGE_ROUTED0(GeolocationHostMsg_StopUpdating) 70