chromium/services/device/public/mojom/geolocation.mojom

// Copyright 2014 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;

import "services/device/public/mojom/geoposition.mojom";

// Geolocation provides updates on the device's location. By default, it
// provides updates with low accuracy, but |SetHighAccuracy()| may be called
// to change this.
interface Geolocation {
  // Select between high and low accuracy, if supported by the implementation.
  // Ignored if unsupported.
  SetHighAccuracy(bool high_accuracy);

  // Use this method to get notified of future position updates, by calling
  // QueryNextPosition once, and then calling it again when/if it returns.
  //
  // When first called:
  //   Returns the latest known Geoposition.
  // When subsequently called:
  //   Issues a request for a single position update, which the implementation
  //   may fulfill at its discretion (e.g. when the next geoposition change is
  //   detected).
  //
  // Overlapping calls to this method are prohibited and will be treated as a
  // connection error. Position updates may be throttled by the service.
  QueryNextPosition() => (GeopositionResult result);
};