/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "domstubs.idl"

interface nsIDOMGeoPosition;
interface nsIDOMGeoPositionOptions;
interface nsIDOMGeoPositionCallback;
interface nsIDOMGeoPositionErrorCallback;

dictionary GeoPositionOptions
{
  boolean enableHighAccuracy;
  long timeout;
  long maximumAge;
};

[scriptable, uuid(b9a301f7-285b-4be9-b739-fb869019c77a)]
interface nsIDOMGeoGeolocation : nsISupports
{
  [implicit_jscontext]
  void getCurrentPosition(in nsIDOMGeoPositionCallback successCallback,
                          [optional] in nsIDOMGeoPositionErrorCallback errorCallback,
                          /* GeoPositionOptions */
                          [optional] in jsval options);

  [implicit_jscontext]
  long watchPosition(in nsIDOMGeoPositionCallback successCallback,
                     [optional] in nsIDOMGeoPositionErrorCallback errorCallback,
                     /* GeoPositionOptions */
                     [optional] in jsval options);

  void clearWatch(in long watchId);
};
