blob: bed9a8ffba5588c2cdf3994ae030cefed83e5c31 [file] [log] [blame]
// 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();
};