chromium/services/device/public/mojom/geolocation_control.mojom

// 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();
};