dom/webidl/Navigator.webidl

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     4  * You can obtain one at http://mozilla.org/MPL/2.0/.
     5  *
     6  * The origin of this IDL file is
     7  * http://www.whatwg.org/specs/web-apps/current-work/#the-navigator-object
     8  * http://www.w3.org/TR/tracking-dnt/
     9  * http://www.w3.org/TR/geolocation-API/#geolocation_interface
    10  * http://www.w3.org/TR/battery-status/#navigatorbattery-interface
    11  * http://www.w3.org/TR/vibration/#vibration-interface
    12  * http://www.w3.org/2012/sysapps/runtime/#extension-to-the-navigator-interface-1
    13  * https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#navigator-interface-extension
    14  * http://www.w3.org/TR/beacon/#sec-beacon-method
    15  *
    16  * © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and
    17  * Opera Software ASA. You are granted a license to use, reproduce
    18  * and create derivative works of this document.
    19  */
    21 // http://www.whatwg.org/specs/web-apps/current-work/#the-navigator-object
    22 [HeaderFile="Navigator.h", NeedNewResolve]
    23 interface Navigator {
    24   // objects implementing this interface also implement the interfaces given below
    25 };
    26 Navigator implements NavigatorID;
    27 Navigator implements NavigatorLanguage;
    28 Navigator implements NavigatorOnLine;
    29 Navigator implements NavigatorContentUtils;
    30 Navigator implements NavigatorStorageUtils;
    32 [NoInterfaceObject]
    33 interface NavigatorID {
    34   // WebKit/Blink/Trident/Presto support this (hardcoded "Mozilla").
    35   [Constant]
    36   readonly attribute DOMString appCodeName; // constant "Mozilla"
    37   [Constant]
    38   readonly attribute DOMString appName;
    39   [Constant]
    40   readonly attribute DOMString appVersion;
    41   [Constant]
    42   readonly attribute DOMString platform;
    43   [Constant]
    44   readonly attribute DOMString userAgent;
    45   [Constant]
    46   readonly attribute DOMString product; // constant "Gecko"
    48   // Everyone but WebKit/Blink supports this.  See bug 679971.
    49   boolean taintEnabled(); // constant false
    50 };
    52 [NoInterfaceObject]
    53 interface NavigatorLanguage {
    54   readonly attribute DOMString? language;
    55 };
    57 [NoInterfaceObject]
    58 interface NavigatorOnLine {
    59   readonly attribute boolean onLine;
    60 };
    62 [NoInterfaceObject]
    63 interface NavigatorContentUtils {
    64   // content handler registration
    65   [Throws]
    66   void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title);
    67   [Throws]
    68   void registerContentHandler(DOMString mimeType, DOMString url, DOMString title);
    69   // NOT IMPLEMENTED
    70   //DOMString isProtocolHandlerRegistered(DOMString scheme, DOMString url);
    71   //DOMString isContentHandlerRegistered(DOMString mimeType, DOMString url);
    72   //void unregisterProtocolHandler(DOMString scheme, DOMString url);
    73   //void unregisterContentHandler(DOMString mimeType, DOMString url);
    74 };
    76 [NoInterfaceObject]
    77 interface NavigatorStorageUtils {
    78   // NOT IMPLEMENTED
    79   //void yieldForStorageUpdates();
    80 };
    82 // Things that definitely need to be in the spec and and are not for some
    83 // reason.  See https://www.w3.org/Bugs/Public/show_bug.cgi?id=22406
    84 partial interface Navigator {
    85   [Throws]
    86   readonly attribute MimeTypeArray mimeTypes;
    87   [Throws]
    88   readonly attribute PluginArray plugins;
    89 };
    91 // http://www.w3.org/TR/tracking-dnt/ sort of
    92 partial interface Navigator {
    93   readonly attribute DOMString doNotTrack;
    94 };
    96 // http://www.w3.org/TR/geolocation-API/#geolocation_interface
    97 [NoInterfaceObject]
    98 interface NavigatorGeolocation {
    99   [Throws, Pref="geo.enabled"]
   100   readonly attribute Geolocation geolocation;
   101 };
   102 Navigator implements NavigatorGeolocation;
   104 // http://www.w3.org/TR/battery-status/#navigatorbattery-interface
   105 [NoInterfaceObject]
   106 interface NavigatorBattery {
   107     // XXXbz Per spec this should be non-nullable, but we return null in
   108     // torn-down windows.  See bug 884925.
   109     [Throws, Func="Navigator::HasBatterySupport"]
   110     readonly attribute BatteryManager? battery;
   111 };
   112 Navigator implements NavigatorBattery;
   114 // https://wiki.mozilla.org/WebAPI/DataStore
   115 [NoInterfaceObject]
   116 interface NavigatorDataStore {
   117     [Throws, NewObject, Func="Navigator::HasDataStoreSupport"]
   118     Promise getDataStores(DOMString name);
   119 };
   120 Navigator implements NavigatorDataStore;
   122 // http://www.w3.org/TR/vibration/#vibration-interface
   123 partial interface Navigator {
   124     // We don't support sequences in unions yet
   125     //boolean vibrate ((unsigned long or sequence<unsigned long>) pattern);
   126     boolean vibrate(unsigned long duration);
   127     boolean vibrate(sequence<unsigned long> pattern);
   128 };
   130 // http://www.w3.org/TR/pointerevents/#extensions-to-the-navigator-interface
   131 partial interface Navigator {
   132     [Pref="dom.w3c_pointer_events.enabled"]
   133     readonly attribute long maxTouchPoints;
   134 };
   136 // Mozilla-specific extensions
   138 callback interface MozIdleObserver {
   139   // Time is in seconds and is read only when idle observers are added
   140   // and removed.
   141   readonly attribute unsigned long time;
   142   void onidle();
   143   void onactive();
   144 };
   146 // nsIDOMNavigator
   147 partial interface Navigator {
   148   [Throws]
   149   readonly attribute DOMString oscpu;
   150   // WebKit/Blink support this; Trident/Presto do not.
   151   readonly attribute DOMString vendor;
   152   // WebKit/Blink supports this (hardcoded ""); Trident/Presto do not.
   153   readonly attribute DOMString vendorSub;
   154   // WebKit/Blink supports this (hardcoded "20030107"); Trident/Presto don't
   155   readonly attribute DOMString productSub;
   156   // WebKit/Blink/Trident/Presto support this.
   157   readonly attribute boolean cookieEnabled;
   158   [Throws]
   159   readonly attribute DOMString buildID;
   160   [Throws, Func="Navigator::HasPowerSupport"]
   161   readonly attribute MozPowerManager mozPower;
   163   // WebKit/Blink/Trident/Presto support this.
   164   [Throws]
   165   boolean javaEnabled();
   167   /**
   168    * Navigator requests to add an idle observer to the existing window.
   169    */
   170   [Throws, Func="Navigator::HasIdleSupport"]
   171   void addIdleObserver(MozIdleObserver aIdleObserver);
   173   /**
   174    * Navigator requests to remove an idle observer from the existing window.
   175    */
   176   [Throws, Func="Navigator::HasIdleSupport"]
   177   void removeIdleObserver(MozIdleObserver aIdleObserver);
   179   /**
   180    * Request a wake lock for a resource.
   181    *
   182    * A page holds a wake lock to request that a resource not be turned
   183    * off (or otherwise made unavailable).
   184    *
   185    * The topic is the name of a resource that might be made unavailable for
   186    * various reasons. For example, on a mobile device the power manager might
   187    * decide to turn off the screen after a period of idle time to save power.
   188    *
   189    * The resource manager checks the lock state of a topic before turning off
   190    * the associated resource. For example, a page could hold a lock on the
   191    * "screen" topic to prevent the screensaver from appearing or the screen
   192    * from turning off.
   193    *
   194    * The resource manager defines what each topic means and sets policy.  For
   195    * example, the resource manager might decide to ignore 'screen' wake locks
   196    * held by pages which are not visible.
   197    *
   198    * One topic can be locked multiple times; it is considered released only when
   199    * all locks on the topic have been released.
   200    *
   201    * The returned MozWakeLock object is a token of the lock.  You can
   202    * unlock the lock via the object's |unlock| method.  The lock is released
   203    * automatically when its associated window is unloaded.
   204    *
   205    * @param aTopic resource name
   206    */
   207   [Throws, Pref="dom.wakelock.enabled", Func="Navigator::HasWakeLockSupport"]
   208   MozWakeLock requestWakeLock(DOMString aTopic);
   209 };
   211 // nsIDOMNavigatorDeviceStorage
   212 partial interface Navigator {
   213   [Throws, Pref="device.storage.enabled"]
   214   DeviceStorage? getDeviceStorage(DOMString type);
   215   [Throws, Pref="device.storage.enabled"]
   216   sequence<DeviceStorage> getDeviceStorages(DOMString type);
   217 };
   219 // nsIDOMNavigatorDesktopNotification
   220 partial interface Navigator {
   221   [Throws, Func="Navigator::HasDesktopNotificationSupport"]
   222   readonly attribute DesktopNotificationCenter mozNotification;
   223 };
   225 // nsIDOMClientInformation
   226 partial interface Navigator {
   227   [Throws]
   228   boolean mozIsLocallyAvailable(DOMString uri, boolean whenOffline);
   229 };
   231 // nsIDOMMozNavigatorMobileMessage
   232 interface MozMobileMessageManager;
   233 partial interface Navigator {
   234   [Func="Navigator::HasMobileMessageSupport"]
   235   readonly attribute MozMobileMessageManager? mozMobileMessage;
   236 };
   238 // NetworkInformation
   239 partial interface Navigator {
   240   [Throws, Pref="dom.netinfo.enabled"]
   241   readonly attribute NetworkInformation connection;
   242 };
   244 // nsIDOMNavigatorCamera
   245 partial interface Navigator {
   246   [Throws, Func="Navigator::HasCameraSupport"]
   247   readonly attribute CameraManager mozCameras;
   248 };
   250 // nsIDOMNavigatorSystemMessages and sort of maybe
   251 // http://www.w3.org/2012/sysapps/runtime/#extension-to-the-navigator-interface-1
   252 callback systemMessageCallback = void (optional object message);
   253 partial interface Navigator {
   254   [Throws, Pref="dom.sysmsg.enabled"]
   255   void    mozSetMessageHandler (DOMString type, systemMessageCallback? callback);
   256   [Throws, Pref="dom.sysmsg.enabled"]
   257   boolean mozHasPendingMessage (DOMString type);
   258 };
   260 #ifdef MOZ_B2G_RIL
   261 partial interface Navigator {
   262   [Throws, Func="Navigator::HasMobileConnectionSupport"]
   263   readonly attribute MozMobileConnectionArray mozMobileConnections;
   264 };
   266 partial interface Navigator {
   267   [Throws, Func="Navigator::HasCellBroadcastSupport"]
   268   readonly attribute MozCellBroadcast mozCellBroadcast;
   269 };
   271 partial interface Navigator {
   272   [Throws, Func="Navigator::HasVoicemailSupport"]
   273   readonly attribute MozVoicemail mozVoicemail;
   274 };
   276 partial interface Navigator {
   277   [Throws, Func="Navigator::HasIccManagerSupport"]
   278   readonly attribute MozIccManager? mozIccManager;
   279 };
   280 #endif // MOZ_B2G_RIL
   282 partial interface Navigator {
   283   [Throws, Func="Navigator::HasTelephonySupport"]
   284   readonly attribute Telephony? mozTelephony;
   285 };
   287 #ifdef MOZ_GAMEPAD
   288 // https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#navigator-interface-extension
   289 partial interface Navigator {
   290   [Throws, Pref="dom.gamepad.enabled"]
   291   sequence<Gamepad?> getGamepads();
   292 };
   293 #endif // MOZ_GAMEPAD
   295 #ifdef MOZ_B2G_BT
   296 partial interface Navigator {
   297   [Throws, Func="Navigator::HasBluetoothSupport"]
   298   readonly attribute BluetoothManager mozBluetooth;
   299 };
   300 #endif // MOZ_B2G_BT
   302 #ifdef MOZ_B2G_FM
   303 partial interface Navigator {
   304   [Throws, Func="Navigator::HasFMRadioSupport"]
   305   readonly attribute FMRadio mozFMRadio;
   306 };
   307 #endif // MOZ_B2G_FM
   309 #ifdef MOZ_TIME_MANAGER
   310 // nsIDOMMozNavigatorTime
   311 partial interface Navigator {
   312   [Throws, Func="Navigator::HasTimeSupport"]
   313   readonly attribute MozTimeManager mozTime;
   314 };
   315 #endif // MOZ_TIME_MANAGER
   317 #ifdef MOZ_AUDIO_CHANNEL_MANAGER
   318 // nsIMozNavigatorAudioChannelManager
   319 partial interface Navigator {
   320   [Throws]
   321   readonly attribute AudioChannelManager mozAudioChannelManager;
   322 };
   323 #endif // MOZ_AUDIO_CHANNEL_MANAGER
   325 #ifdef MOZ_MEDIA_NAVIGATOR
   326 callback NavigatorUserMediaSuccessCallback = void (MediaStream stream);
   327 callback NavigatorUserMediaErrorCallback = void (DOMString error);
   329 partial interface Navigator {
   330   [Throws, Func="Navigator::HasUserMediaSupport"]
   331   void mozGetUserMedia(MediaStreamConstraints constraints,
   332                        NavigatorUserMediaSuccessCallback successCallback,
   333                        NavigatorUserMediaErrorCallback errorCallback);
   334 };
   336 // nsINavigatorUserMedia
   337 callback MozGetUserMediaDevicesSuccessCallback = void (nsIVariant? devices);
   338 partial interface Navigator {
   339   [Throws, ChromeOnly]
   340   void mozGetUserMediaDevices(MediaStreamConstraints constraints,
   341                               MozGetUserMediaDevicesSuccessCallback onsuccess,
   342                               NavigatorUserMediaErrorCallback onerror,
   343                               // The originating innerWindowID is needed to
   344                               // avoid calling the callbacks if the window has
   345                               // navigated away. It is optional only as legacy.
   346                               optional unsigned long long innerWindowID = 0);
   347 };
   348 #endif // MOZ_MEDIA_NAVIGATOR
   350 partial interface Navigator {
   351   [Throws, Pref="beacon.enabled"]
   352   boolean sendBeacon(DOMString url,
   353                      optional (ArrayBufferView or Blob or DOMString or FormData)? data = null);
   354 };

mercurial