Home | History | Annotate | Download | only in common
      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(content::Geoposition::ErrorCode)
     15 
     16 IPC_STRUCT_TRAITS_BEGIN(content::Geoposition)
     17   IPC_STRUCT_TRAITS_MEMBER(latitude)
     18   IPC_STRUCT_TRAITS_MEMBER(longitude)
     19   IPC_STRUCT_TRAITS_MEMBER(altitude)
     20   IPC_STRUCT_TRAITS_MEMBER(accuracy)
     21   IPC_STRUCT_TRAITS_MEMBER(altitude_accuracy)
     22   IPC_STRUCT_TRAITS_MEMBER(heading)
     23   IPC_STRUCT_TRAITS_MEMBER(speed)
     24   IPC_STRUCT_TRAITS_MEMBER(timestamp)
     25   IPC_STRUCT_TRAITS_MEMBER(error_code)
     26   IPC_STRUCT_TRAITS_MEMBER(error_message)
     27 IPC_STRUCT_TRAITS_END()
     28 
     29 // Messages sent from the browser to the renderer.
     30 
     31 // Reply in response to GeolocationHostMsg_RequestPermission.
     32 IPC_MESSAGE_ROUTED2(GeolocationMsg_PermissionSet,
     33                     int /* bridge_id */,
     34                     bool /* is_allowed */)
     35 
     36 // Sent after GeolocationHostMsg_StartUpdating iff the user has granted
     37 // permission and we have a position available or an error occurs (such as
     38 // permission denied, position unavailable, etc.)
     39 IPC_MESSAGE_ROUTED1(GeolocationMsg_PositionUpdated,
     40                     content::Geoposition /* geoposition */)
     41 
     42 // Messages sent from the renderer to the browser.
     43 
     44 // The |render_view_id| and |bridge_id| representing |host| is requesting
     45 // permission to access geolocation position.
     46 // This will be replied by GeolocationMsg_PermissionSet.
     47 IPC_MESSAGE_CONTROL3(GeolocationHostMsg_RequestPermission,
     48                      int /* render_view_id */,
     49                      int /* bridge_id */,
     50                      GURL /* GURL of the frame requesting geolocation */)
     51 
     52 // The |render_view_id| and |bridge_id| representing |GURL| is cancelling its
     53 // previous permission request to access geolocation position.
     54 IPC_MESSAGE_CONTROL3(GeolocationHostMsg_CancelPermissionRequest,
     55                      int /* render_view_id */,
     56                      int /* bridge_id */,
     57                      GURL /* GURL of the frame */)
     58 
     59 // The |render_view_id| requests Geolocation service to start updating.
     60 // This is an asynchronous call, and the browser process may eventually reply
     61 // with the updated geoposition, or an error (access denied, location
     62 // unavailable, etc.)
     63 IPC_MESSAGE_CONTROL3(GeolocationHostMsg_StartUpdating,
     64                      int /* render_view_id */,
     65                      GURL /* GURL of the frame requesting geolocation */,
     66                      bool /* enable_high_accuracy */)
     67 
     68 // The |render_view_id| requests Geolocation service to stop updating.
     69 // Note that the geolocation service may continue to fetch geolocation data
     70 // for other origins.
     71 IPC_MESSAGE_CONTROL1(GeolocationHostMsg_StopUpdating,
     72                      int /* render_view_id */)
     73