xpcom/system/nsIGeolocationProvider.idl

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

michael@0 1 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 4
michael@0 5
michael@0 6
michael@0 7 #include "nsISupports.idl"
michael@0 8
michael@0 9 interface nsIURI;
michael@0 10 interface nsIDOMWindow;
michael@0 11 interface nsIDOMElement;
michael@0 12 interface nsIDOMGeoPosition;
michael@0 13 interface nsIGeolocationPrompt;
michael@0 14
michael@0 15 /**
michael@0 16
michael@0 17 * Interface provides a way for a geolocation provider to
michael@0 18 * notify the system that a new location is available.
michael@0 19 */
michael@0 20 [scriptable, uuid(643dc5e9-b911-4b2c-8d44-603162696baf)]
michael@0 21 interface nsIGeolocationUpdate : nsISupports {
michael@0 22
michael@0 23 /**
michael@0 24 * Notify the geolocation service that a new geolocation
michael@0 25 * has been discovered.
michael@0 26 * This must be called on the main thread
michael@0 27 */
michael@0 28 void update(in nsIDOMGeoPosition position);
michael@0 29
michael@0 30 /**
michael@0 31 * Notify the geolocation service that the location has
michael@0 32 * potentially changed, and thus a new position is in the
michael@0 33 * process of being acquired.
michael@0 34 */
michael@0 35 void locationUpdatePending();
michael@0 36
michael@0 37 /**
michael@0 38 * Notify the geolocation service of an error.
michael@0 39 * This must be called on the main thread.
michael@0 40 * The parameter refers to one of the constants in the
michael@0 41 * nsIDOMGeoPositionError interface.
michael@0 42 * Use this to report spurious errors coming from the
michael@0 43 * provider; for errors occurring inside the methods in
michael@0 44 * the nsIGeolocationProvider interface, just use the return
michael@0 45 * value.
michael@0 46 */
michael@0 47 void notifyError(in unsigned short error);
michael@0 48 };
michael@0 49
michael@0 50
michael@0 51 /**
michael@0 52 * Interface provides location information to the nsGeolocator
michael@0 53 * via the nsIDOMGeolocationCallback interface. After
michael@0 54 * startup is called, any geo location change should call
michael@0 55 * callback.update().
michael@0 56 */
michael@0 57 [scriptable, uuid(AC4A133B-9F92-4F7C-B369-D40CB6B17650)]
michael@0 58 interface nsIGeolocationProvider : nsISupports {
michael@0 59
michael@0 60 /**
michael@0 61 * Start up the provider. This is called before any other
michael@0 62 * method. may be called multiple times.
michael@0 63 */
michael@0 64 void startup();
michael@0 65
michael@0 66 /**
michael@0 67 * watch
michael@0 68 * When a location change is observed, notify the callback.
michael@0 69 */
michael@0 70 void watch(in nsIGeolocationUpdate callback);
michael@0 71
michael@0 72 /**
michael@0 73 * shutdown
michael@0 74 * Shuts down the location device.
michael@0 75 */
michael@0 76 void shutdown();
michael@0 77
michael@0 78 /**
michael@0 79 * hint to provide to use any amount of power to provide a better result
michael@0 80 */
michael@0 81 void setHighAccuracy(in boolean enable);
michael@0 82
michael@0 83 };
michael@0 84
michael@0 85 %{C++
michael@0 86 /*
michael@0 87 This must be implemented by geolocation providers. It
michael@0 88 must support nsIGeolocationProvider.
michael@0 89 */
michael@0 90 #define NS_GEOLOCATION_PROVIDER_CONTRACTID "@mozilla.org/geolocation/provider;1"
michael@0 91 %}

mercurial