| // Copyright 2017 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module device.mojom; |
| |
| // GeolocationControl manages Geolocation's permission model. In particular, |
| // before geolocation can be accessed by any client, a trusted client must |
| // connect to GeolocationControl to inform the geolocation implementation that |
| // the user has opted into location services. It is assumed that before making |
| // this connection, that trusted client has interacted with the user to obtain |
| // this permission. Note that as the Device Service is a global service, this |
| // permission is also granted globally once it is granted at all. If a |
| // finer-granularity permission model is desired in a specific context, it is up |
| // to the client of the Device Service to manage that permission model (for |
| // example, the chrome_browser trusted client manages the web's per-origin |
| // permission model). |
| interface GeolocationControl { |
| // Calling this method indicates the user has opted into using location |
| // services, including sending network requests to [Google servers to] resolve |
| // the user's location. Use this method carefully, in line with the rules in |
| // go/chrome-privacy-doc. |
| UserDidOptIntoLocationServices(); |
| }; |