// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// IPC messages for geolocation.
// Multiply-included message file, hence no include guard.
#include "content/public/common/geoposition.h"
#include "ipc/ipc_message_macros.h"
#include "url/gurl.h"
#define IPC_MESSAGE_START GeolocationMsgStart
IPC_ENUM_TRAITS_MAX_VALUE(content::Geoposition::ErrorCode,
content::Geoposition::ERROR_CODE_LAST)
IPC_STRUCT_TRAITS_BEGIN(content::Geoposition)
IPC_STRUCT_TRAITS_MEMBER(latitude)
IPC_STRUCT_TRAITS_MEMBER(longitude)
IPC_STRUCT_TRAITS_MEMBER(altitude)
IPC_STRUCT_TRAITS_MEMBER(accuracy)
IPC_STRUCT_TRAITS_MEMBER(altitude_accuracy)
IPC_STRUCT_TRAITS_MEMBER(heading)
IPC_STRUCT_TRAITS_MEMBER(speed)
IPC_STRUCT_TRAITS_MEMBER(timestamp)
IPC_STRUCT_TRAITS_MEMBER(error_code)
IPC_STRUCT_TRAITS_MEMBER(error_message)
IPC_STRUCT_TRAITS_END()
// Messages sent from the browser to the renderer.
// Reply in response to GeolocationHostMsg_RequestPermission.
IPC_MESSAGE_ROUTED2(GeolocationMsg_PermissionSet,
int /* bridge_id */,
bool /* is_allowed */)
// Sent after GeolocationHostMsg_StartUpdating iff the user has granted
// permission and we have a position available or an error occurs (such as
// permission denied, position unavailable, etc.)
IPC_MESSAGE_ROUTED1(GeolocationMsg_PositionUpdated,
content::Geoposition /* geoposition */)
// Messages sent from the renderer to the browser.
// The |bridge_id| representing |host| is requesting permission to access
// geolocation position. This will be replied by GeolocationMsg_PermissionSet.
IPC_MESSAGE_ROUTED3(GeolocationHostMsg_RequestPermission,
int /* bridge_id */,
GURL /* GURL of the frame requesting geolocation */,
bool /* user_gesture */)
// The |bridge_id| representing |GURL| is cancelling its previous permission
// request to access geolocation position.
IPC_MESSAGE_ROUTED2(GeolocationHostMsg_CancelPermissionRequest,
int /* bridge_id */,
GURL /* GURL of the frame */)
// The render view requests the Geolocation service to start updating.
// This is an asynchronous call, and the browser process may eventually reply
// with the updated geoposition, or an error (access denied, location
// unavailable, etc.)
IPC_MESSAGE_ROUTED2(GeolocationHostMsg_StartUpdating,
GURL /* GURL of the frame requesting geolocation */,
bool /* enable_high_accuracy */)
// The render view requests Geolocation service to stop updating.
// Note that the geolocation service may continue to fetch geolocation data
// for other origins.
IPC_MESSAGE_ROUTED0(GeolocationHostMsg_StopUpdating)