/* 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 "nsISupports.idl" interface nsIURI; interface nsIDOMWindow; interface nsIDOMElement; interface nsIDOMGeoPosition; interface nsIGeolocationPrompt; /** * Interface provides a way for a geolocation provider to * notify the system that a new location is available. */ [scriptable, uuid(B89D7227-9F04-4236-A582-25A3F2779D72)] interface nsIGeolocationUpdate : nsISupports { /** * Notify the geolocation service that a new geolocation * has been discovered. * This must be called on the main thread */ void update(in nsIDOMGeoPosition position); }; /** * Interface provides location information to the nsGeolocator * via the nsIDOMGeolocationCallback interface. After * startup is called, any geo location change should call * callback.update(). */ [scriptable, uuid(483BE98B-F747-490A-8AF1-53146D2D5373)] interface nsIGeolocationProvider : nsISupports { /** * Start up the provider. This is called before any other * method. may be called multiple times. */ void startup(); /** * watch * When a location change is observed, notify the callback */ void watch(in nsIGeolocationUpdate callback); /** * shutdown * Shuts down the location device. */ void shutdown(); /** * hint to provide to use any amount of power to provide a better result */ void setHighAccuracy(in boolean enable); }; %{C++ /* This must be implemented by geolocation providers. It must support nsIGeolocationProvider. */ #define NS_GEOLOCATION_PROVIDER_CONTRACTID "@mozilla.org/geolocation/provider;1" %}