1/*
2    Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
3
4    This library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Library General Public
6    License as published by the Free Software Foundation; either
7    version 2 of the License, or (at your option) any later version.
8
9    This library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Library General Public License for more details.
13
14    You should have received a copy of the GNU Library General Public License
15    along with this library; see the file COPYING.LIB.  If not, write to
16    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17    Boston, MA 02110-1301, USA.
18*/
19
20module window {
21
22    interface [
23        CustomMarkFunction,
24        OmitConstructor
25    ] Navigator {
26        readonly attribute DOMString appCodeName;
27        readonly attribute DOMString appName;
28        readonly attribute DOMString appVersion;
29        readonly attribute DOMString language;
30        readonly attribute DOMString userAgent;
31        readonly attribute DOMString platform;
32        readonly attribute DOMPluginArray plugins;
33        readonly attribute DOMMimeTypeArray mimeTypes;
34        readonly attribute DOMString product;
35        readonly attribute DOMString productSub;
36        readonly attribute DOMString vendor;
37        readonly attribute DOMString vendorSub;
38        readonly attribute boolean cookieEnabled;
39        boolean javaEnabled();
40
41        readonly attribute boolean onLine;
42
43#if defined(ENABLE_CONNECTION) && ENABLE_CONNECTION
44        // ANDROID-only for now, upstreaming in progress.
45        readonly attribute Connection connection;
46#endif
47
48#if defined(ENABLE_APPLICATION_INSTALLED) && ENABLE_APPLICATION_INSTALLED
49        // ANDROID-only for now.
50        [Custom] void isApplicationInstalled(in DOMString applicationName, in ApplicationInstalledCallback callback);
51#endif
52
53#if defined(ENABLE_GEOLOCATION) && ENABLE_GEOLOCATION
54        readonly attribute [EnabledAtRuntime] Geolocation geolocation;
55#endif
56
57#if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
58        void getStorageUpdates();
59#endif
60
61#if defined(ENABLE_REGISTER_PROTOCOL_HANDLER) && ENABLE_REGISTER_PROTOCOL_HANDLER
62        void registerProtocolHandler(in DOMString scheme, in DOMString url, in DOMString title)
63            raises(DomException);
64#endif
65
66#if defined(ENABLE_MEDIA_STREAM) && ENABLE_MEDIA_STREAM
67        [Custom, EnabledAtRuntime] void webkitGetUserMedia(in DOMString options,
68                                                           in [Callback=FunctionOnly] NavigatorUserMediaSuccessCallback successCallback,
69                                                           in [Callback=FunctionOnly, Optional] NavigatorUserMediaErrorCallback errorCallback);
70#endif
71    };
72
73}
74