summaryrefslogtreecommitdiffstats
path: root/dom/bindings/Bindings.conf
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /dom/bindings/Bindings.conf
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'dom/bindings/Bindings.conf')
-rw-r--r--dom/bindings/Bindings.conf1701
1 files changed, 1701 insertions, 0 deletions
diff --git a/dom/bindings/Bindings.conf b/dom/bindings/Bindings.conf
new file mode 100644
index 000000000..aa7f26ad6
--- /dev/null
+++ b/dom/bindings/Bindings.conf
@@ -0,0 +1,1701 @@
+# -*- Mode:Python; tab-width:8; indent-tabs-mode:nil -*- */
+# vim: set ts=8 sts=4 et sw=4 tw=80: */
+# 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/.
+
+# DOM Bindings Configuration.
+#
+# The WebIDL interfaces are defined in dom/webidl. For interfaces requiring
+# special handling, there are corresponding entries in the configuration table
+# below. The configuration table maps each interface name to a |descriptor|.
+#
+# Valid fields for all descriptors:
+# * nativeType - The native type (concrete class or XPCOM interface) that
+# instances of this interface will unwrap to. If not
+# specified, defaults to 'nsIDOM' followed by the interface
+# name for external interfaces and
+# 'mozilla::dom::InterfaceName' for everything else.
+# * headerFile - The file in which the nativeType is declared (defaults
+# to an educated guess).
+# * concrete - Indicates whether there exist JS objects with this interface as
+# their primary interface (and hence whose prototype is this
+# interface's prototype object). Always False for callback
+# interfaces. Defaults to True otherwise.
+# * notflattened - The native type does not have nsIClassInfo, so when
+# wrapping it the right IID needs to be passed in.
+# Only relevant for callback interfaces.
+# * register - True if this binding should be registered. Defaults to true.
+# * binaryNames - Dict for mapping method and attribute names to different
+# names when calling the native methods (defaults to an empty
+# dict). The keys are the property names as they appear in the
+# .webidl file and the values are the names as they should be
+# in the WebIDL.
+# * wrapperCache: True if this object is a wrapper cache. Objects that are
+# not can only be returned from a limited set of methods,
+# cannot be prefable, and must ensure that they disallow
+# XPConnect wrapping. Always false for callback interfaces.
+# Defaults to true for non-callback descriptors.
+#
+# The following fields are either a string, an array (defaults to an empty
+# array) or a dictionary with three possible keys (all, getterOnly and
+# setterOnly) each having such an array as the value
+#
+# * implicitJSContext - attributes and methods specified in the .webidl file
+# that require a JSContext as the first argument
+#
+# The value for an interface is a dictionary which specifies the
+# descriptor to use when generating that interface's binding.
+
+DOMInterfaces = {
+
+'AbstractWorker': {
+ 'concrete': False
+},
+
+'AddonManagerPermissions': {
+ 'wrapperCache': False,
+ 'concrete': False
+},
+
+'AnimationEffectReadOnly': {
+ 'concrete': False
+},
+
+'AnimationTimeline': {
+ 'concrete': False
+},
+
+'AnonymousContent': {
+ 'wrapperCache': False
+},
+
+'ArchiveReader': {
+ 'nativeType': 'mozilla::dom::archivereader::ArchiveReader',
+},
+
+'ArchiveRequest': {
+ 'nativeType': 'mozilla::dom::archivereader::ArchiveRequest',
+},
+
+'AudioChannelManager': {
+ 'nativeType': 'mozilla::dom::system::AudioChannelManager',
+ 'headerFile': 'AudioChannelManager.h'
+},
+
+'AudioBuffer': {
+ 'implicitJSContext': [ 'copyToChannel' ],
+},
+
+'AudioBufferSourceNode': {
+ 'implicitJSContext': [ 'buffer' ],
+},
+
+'AudioNode' : {
+ 'concrete': False,
+ 'binaryNames': {
+ 'channelCountMode': 'channelCountModeValue',
+ 'channelInterpretation': 'channelInterpretationValue',
+ },
+},
+
+'BarProp': {
+ 'headerFile': 'mozilla/dom/BarProps.h',
+},
+
+'Blob': {
+ 'headerFile': 'mozilla/dom/File.h',
+},
+
+'BatteryManager': {
+ 'nativeType': 'mozilla::dom::battery::BatteryManager',
+ 'headerFile': 'BatteryManager.h'
+},
+
+'BoxObject': {
+ 'resultNotAddRefed': ['element'],
+},
+
+'Cache': {
+ 'implicitJSContext': [ 'add', 'addAll' ],
+ 'nativeType': 'mozilla::dom::cache::Cache',
+},
+
+'CacheStorage': {
+ 'nativeType': 'mozilla::dom::cache::CacheStorage',
+},
+
+'CanvasRenderingContext2D': {
+ 'implicitJSContext': [
+ 'createImageData', 'getImageData'
+ ],
+ 'binaryNames': {
+ 'mozImageSmoothingEnabled': 'imageSmoothingEnabled'
+ }
+},
+
+'CaretPosition' : {
+ 'nativeType': 'nsDOMCaretPosition',
+},
+
+'CharacterData': {
+ 'nativeType': 'nsGenericDOMDataNode',
+ 'concrete': False
+},
+
+'ChromeUtils': {
+ # The codegen is dumb, and doesn't understand that this interface is only a
+ # collection of static methods, so we have this `concrete: False` hack.
+ 'concrete': False,
+},
+
+'ChromeWindow': {
+ 'concrete': False,
+},
+
+'ChromeWorker': {
+ 'headerFile': 'mozilla/dom/WorkerPrivate.h',
+ 'nativeType': 'mozilla::dom::workers::ChromeWorkerPrivate',
+},
+
+'Client': {
+ 'nativeType': 'mozilla::dom::workers::ServiceWorkerClient',
+ 'headerFile': 'mozilla/dom/workers/bindings/ServiceWorkerClient.h',
+},
+
+'Clients': {
+ 'nativeType': 'mozilla::dom::workers::ServiceWorkerClients',
+ 'headerFile': 'mozilla/dom/workers/bindings/ServiceWorkerClients.h',
+},
+
+'console': {
+ 'nativeType': 'mozilla::dom::Console',
+},
+
+'ConvolverNode': {
+ 'implicitJSContext': [ 'buffer' ],
+},
+
+'Coordinates': {
+ 'headerFile': 'nsGeoPosition.h'
+},
+
+'Crypto' : {
+ 'headerFile': 'Crypto.h'
+},
+
+'CSS': {
+ 'concrete': False,
+},
+
+'CSS2Properties': {
+ 'nativeType': 'nsDOMCSSDeclaration'
+},
+
+'CSSLexer': {
+ 'wrapperCache': False
+},
+
+'CSSPrimitiveValue': {
+ 'nativeType': 'nsROCSSPrimitiveValue',
+},
+
+'CSSStyleDeclaration': {
+ 'nativeType': 'nsICSSDeclaration'
+},
+
+'CSSStyleSheet': {
+ 'nativeType': 'mozilla::StyleSheet',
+ 'binaryNames': { 'ownerRule': 'DOMOwnerRule' },
+},
+
+'CSSValue': {
+ 'concrete': False
+},
+
+'CSSValueList': {
+ 'nativeType': 'nsDOMCSSValueList'
+},
+
+'DataChannel': {
+ 'nativeType': 'nsDOMDataChannel',
+},
+
+'DedicatedWorkerGlobalScope': {
+ 'headerFile': 'mozilla/dom/WorkerScope.h',
+},
+
+'DeviceAcceleration': {
+ 'headerFile': 'mozilla/dom/DeviceMotionEvent.h',
+},
+
+'DeviceRotationRate': {
+ 'headerFile': 'mozilla/dom/DeviceMotionEvent.h',
+},
+
+'Document': {
+ 'nativeType': 'nsIDocument',
+ 'binaryNames': {
+ 'documentURI': 'documentURIFromJS',
+ 'URL': 'documentURIFromJS'
+ }
+},
+
+'DominatorTree': {
+ 'nativeType': 'mozilla::devtools::DominatorTree'
+},
+
+'DOMException': {
+ 'binaryNames': {
+ 'message': 'messageMoz',
+ },
+ 'implicitJSContext': [ 'filename', 'lineNumber', 'stack' ],
+},
+
+'DOMMatrixReadOnly': {
+ 'headerFile': 'mozilla/dom/DOMMatrix.h',
+ 'concrete': False,
+},
+
+'DOMPointReadOnly': {
+ 'headerFile': 'mozilla/dom/DOMPoint.h',
+ 'concrete': False,
+},
+
+'DOMRectList': {
+ 'headerFile': 'mozilla/dom/DOMRect.h',
+},
+
+'DOMRectReadOnly': {
+ 'headerFile': 'mozilla/dom/DOMRect.h',
+},
+
+'DOMRequest': {
+ 'implicitJSContext': [ 'then' ],
+},
+
+'DOMStringMap': {
+ 'nativeType': 'nsDOMStringMap'
+},
+
+'DOMTokenList': {
+ 'nativeType': 'nsDOMTokenList',
+},
+
+'DynamicsCompressorNode': {
+ 'binaryNames': {
+ 'release': 'getRelease'
+ },
+},
+
+'Event': {
+ 'implicitJSContext': [ 'defaultPrevented', 'preventDefault' ],
+},
+
+'EventTarget': {
+ # When we get rid of hasXPConnectImpls, we can get rid of the
+ # couldBeDOMBinding stuff in GetOrCreateDOMReflector.
+ #
+ # We can also get rid of the UnwrapArg bits in
+ # the dom QueryInterface (in BindingUtils.cpp) at that point.
+ 'hasXPConnectImpls': True,
+ 'concrete': False,
+ 'jsImplParent': 'mozilla::DOMEventTargetHelper',
+ 'implicitJSContext': [ 'dispatchEvent' ]
+},
+
+'Exception': {
+ 'headerFile': 'mozilla/dom/DOMException.h',
+ 'binaryNames': {
+ 'message': 'messageMoz',
+ },
+ 'implicitJSContext': [ '__stringifier', 'filename', 'lineNumber', 'stack' ],
+},
+
+'ExtendableEvent': {
+ 'headerFile': 'mozilla/dom/ServiceWorkerEvents.h',
+ 'nativeType': 'mozilla::dom::workers::ExtendableEvent',
+ 'implicitJSContext': [ 'waitUntil' ],
+},
+
+'ExtendableMessageEvent': {
+ 'headerFile': 'mozilla/dom/ServiceWorkerEvents.h',
+ 'nativeType': 'mozilla::dom::workers::ExtendableMessageEvent',
+},
+
+'FetchEvent': {
+ 'headerFile': 'ServiceWorkerEvents.h',
+ 'nativeType': 'mozilla::dom::workers::FetchEvent',
+ 'binaryNames': {
+ 'request': 'request_'
+ },
+ 'implicitJSContext': [ 'respondWith' ],
+},
+
+'FileReader': {
+ 'implicitJSContext': [ 'readAsArrayBuffer' ],
+},
+
+'FileReaderSync': {
+ 'wrapperCache': False,
+},
+
+'FlyWebFetchEvent': {
+ 'headerFile': 'FlyWebServerEvents.h',
+},
+
+'FlyWebWebSocketEvent': {
+ 'headerFile': 'FlyWebServerEvents.h',
+},
+
+'FontFaceSet': {
+ 'implicitJSContext': [ 'load' ],
+},
+
+'FontFaceSetIterator': {
+ 'wrapperCache': False,
+},
+
+'Geolocation': {
+ 'headerFile': 'nsGeolocation.h'
+},
+
+'HeapSnapshot': {
+ 'nativeType': 'mozilla::devtools::HeapSnapshot'
+},
+
+'History': {
+ 'headerFile': 'nsHistory.h',
+ 'nativeType': 'nsHistory'
+},
+
+'HTMLAppletElement': {
+ 'nativeType': 'mozilla::dom::HTMLSharedObjectElement'
+},
+
+'HTMLBaseElement': {
+ 'nativeType': 'mozilla::dom::HTMLSharedElement'
+},
+
+'HTMLCollection': {
+ 'nativeType': 'nsIHTMLCollection',
+ # nsContentList.h pulls in nsIHTMLCollection.h
+ 'headerFile': 'nsContentList.h',
+},
+
+'HTMLDirectoryElement': {
+ 'nativeType': 'mozilla::dom::HTMLSharedElement'
+},
+
+'HTMLDListElement': {
+ 'nativeType' : 'mozilla::dom::HTMLSharedListElement'
+},
+
+'HTMLDocument': {
+ 'nativeType': 'nsHTMLDocument',
+ 'implicitJSContext': [ 'open', 'write', 'writeln' ]
+},
+
+'HTMLElement': {
+ 'nativeType': 'nsGenericHTMLElement',
+},
+
+'HTMLEmbedElement': {
+ 'nativeType': 'mozilla::dom::HTMLSharedObjectElement'
+},
+
+'HTMLHeadElement': {
+ 'nativeType': 'mozilla::dom::HTMLSharedElement'
+},
+
+'HTMLHtmlElement': {
+ 'nativeType': 'mozilla::dom::HTMLSharedElement'
+},
+
+'HTMLMediaElement': {
+ 'concrete': False
+},
+
+'HTMLOListElement': {
+ 'nativeType' : 'mozilla::dom::HTMLSharedListElement'
+},
+
+'HTMLParamElement': {
+ 'nativeType': 'mozilla::dom::HTMLSharedElement'
+},
+
+'HTMLQuoteElement': {
+ 'nativeType': 'mozilla::dom::HTMLSharedElement'
+},
+
+'HTMLTextAreaElement': {
+ 'binaryNames': {
+ 'textLength': 'getTextLength'
+ }
+},
+
+'HTMLUListElement': {
+ 'nativeType' : 'mozilla::dom::HTMLSharedListElement'
+},
+
+'IDBCursor': {
+ 'implicitJSContext': [ 'delete' ],
+ 'binaryNames': {
+ 'direction': 'getDirection'
+ }
+},
+
+'IDBCursorWithValue': {
+ 'nativeType': 'mozilla::dom::IDBCursor',
+},
+
+'IDBDatabase': {
+ 'implicitJSContext': [ 'transaction', 'createMutableFile',
+ 'mozCreateFileHandle' ],
+},
+
+'IDBFactory': {
+ 'implicitJSContext': [ 'open', 'deleteDatabase', 'openForPrincipal',
+ 'deleteForPrincipal' ],
+},
+
+'IDBIndex': {
+ 'binaryNames': {
+ 'mozGetAll': 'getAll',
+ 'mozGetAllKeys': 'getAllKeys',
+ }
+},
+
+'IDBKeyRange': {
+ 'wrapperCache': False,
+},
+
+'IDBLocaleAwareKeyRange': {
+ 'headerFile': 'IDBKeyRange.h',
+ 'wrapperCache': False,
+},
+
+'IDBObjectStore': {
+ 'binaryNames': {
+ 'mozGetAll': 'getAll'
+ },
+ 'implicitJSContext': [ 'clear' ],
+},
+
+'IDBOpenDBRequest': {
+ 'headerFile': 'IDBRequest.h'
+},
+
+'IDBVersionChangeEvent': {
+ 'headerFile': 'IDBEvents.h',
+},
+
+'IID': {
+ 'nativeType': 'nsIJSID',
+ 'headerFile': 'xpcjsid.h',
+},
+
+'ImageBitmap': {
+ 'implicitJSContext': [ 'mapDataInto' ],
+},
+
+'ImageCapture': {
+ 'binaryNames': { 'videoStreamTrack': 'GetVideoStreamTrack' }
+},
+
+'ImageData': {
+ 'wrapperCache': False,
+},
+
+'InputStream': {
+ 'nativeType': 'nsIInputStream',
+ 'notflattened': True
+},
+
+'IntersectionObserver': {
+ 'nativeType': 'mozilla::dom::DOMIntersectionObserver',
+},
+
+'IntersectionObserverEntry': {
+ 'nativeType': 'mozilla::dom::DOMIntersectionObserverEntry',
+ 'headerFile': 'DOMIntersectionObserver.h',
+},
+
+'KeyEvent': {
+ 'concrete': False
+},
+
+'KeyframeEffect': {
+ 'implicitJSContext': { 'setterOnly': [ 'spacing' ] }
+},
+
+'LegacyMozTCPSocket': {
+ 'headerFile': 'TCPSocket.h',
+ 'wrapperCache': False,
+},
+
+'LocalMediaStream': {
+ 'headerFile': 'DOMMediaStream.h',
+ 'nativeType': 'mozilla::DOMLocalMediaStream'
+},
+
+'MediaList': {
+ 'nativeType': 'nsMediaList',
+ 'headerFile': 'nsIMediaList.h',
+},
+
+'MediaKeys' : {
+ 'implicitJSContext': [ 'createSession']
+},
+
+'MediaStream': {
+ 'headerFile': 'DOMMediaStream.h',
+ 'nativeType': 'mozilla::DOMMediaStream'
+},
+
+'MediaStreamAudioDestinationNode': {
+ 'binaryNames': { 'stream': 'DOMStream' }
+},
+
+'MediaStreamList': {
+ 'headerFile': 'MediaStreamList.h',
+},
+
+'MediaStreamTrack': {
+ 'concrete': False
+},
+
+'MediaRecorder': {
+ 'headerFile': 'MediaRecorder.h',
+},
+
+'MimeType': {
+ 'headerFile' : 'nsMimeTypeArray.h',
+ 'nativeType': 'nsMimeType',
+},
+
+'MimeTypeArray': {
+ 'nativeType': 'nsMimeTypeArray',
+},
+
+'MozCanvasPrintState': {
+ 'headerFile': 'mozilla/dom/HTMLCanvasElement.h',
+ 'nativeType': 'mozilla::dom::HTMLCanvasPrintState',
+},
+
+'MozChannel': {
+ 'nativeType': 'nsIChannel',
+ 'notflattened': True
+},
+
+'MozSpeakerManager': {
+ 'nativeType': 'mozilla::dom::SpeakerManager',
+ 'headerFile': 'SpeakerManager.h'
+},
+
+'MozPowerManager': {
+ 'nativeType': 'mozilla::dom::PowerManager',
+},
+
+'MozWakeLock': {
+ 'nativeType': 'mozilla::dom::WakeLock',
+},
+
+'MozTimeManager': {
+ 'nativeType': 'mozilla::dom::time::TimeManager',
+},
+
+'MutationObserver': {
+ 'nativeType': 'nsDOMMutationObserver',
+},
+
+'MutationRecord': {
+ 'nativeType': 'nsDOMMutationRecord',
+ 'headerFile': 'nsDOMMutationObserver.h',
+},
+
+'NamedNodeMap': {
+ 'nativeType': 'nsDOMAttributeMap',
+},
+
+'NetworkInformation': {
+ 'nativeType': 'mozilla::dom::network::Connection',
+},
+
+'Node': {
+ 'nativeType': 'nsINode',
+ 'concrete': False,
+ 'binaryNames': {
+ 'baseURI': 'baseURIFromJS'
+ }
+},
+
+'NodeIterator': {
+ 'wrapperCache': False,
+},
+
+'NodeList': {
+ 'nativeType': 'nsINodeList',
+},
+
+'NotificationEvent': {
+ 'headerFile': 'mozilla/dom/NotificationEvent.h',
+ 'nativeType': 'mozilla::dom::workers::NotificationEvent',
+ 'binaryNames': {
+ 'notification': 'notification_'
+ }
+},
+
+'OfflineAudioContext': {
+ 'nativeType': 'mozilla::dom::AudioContext',
+},
+
+'OfflineResourceList': {
+ 'nativeType': 'nsDOMOfflineResourceList',
+},
+
+'PaintRequestList': {
+ 'headerFile': 'mozilla/dom/PaintRequest.h',
+},
+
+'Path2D': {
+ 'nativeType': 'mozilla::dom::CanvasPath',
+ 'headerFile': 'CanvasPath.h'
+},
+
+'PeerConnectionImpl': {
+ 'nativeType': 'mozilla::PeerConnectionImpl',
+ 'headerFile': 'PeerConnectionImpl.h',
+ 'wrapperCache': False
+},
+
+'Plugin': {
+ 'headerFile' : 'nsPluginArray.h',
+ 'nativeType': 'nsPluginElement',
+},
+
+'PluginArray': {
+ 'nativeType': 'nsPluginArray',
+},
+
+'PluginTag': {
+ 'nativeType': 'nsIPluginTag',
+},
+
+'PopupBoxObject': {
+ 'resultNotAddRefed': ['triggerNode', 'anchorNode'],
+},
+
+'Position': {
+ 'headerFile': 'nsGeoPosition.h'
+},
+
+'PositionError': {
+ 'headerFile': 'nsGeolocation.h'
+},
+
+'Promise': {
+ 'implicitJSContext': [ 'then', 'catch' ],
+},
+
+'PromiseDebugging': {
+ 'concrete': False,
+},
+
+'PromiseNativeHandler': {
+ 'wrapperCache': False,
+},
+
+'PushEvent': {
+ 'headerFile': 'ServiceWorkerEvents.h',
+ 'nativeType': 'mozilla::dom::workers::PushEvent',
+},
+
+'PushMessageData': {
+ 'headerFile': 'ServiceWorkerEvents.h',
+ 'nativeType': 'mozilla::dom::workers::PushMessageData',
+},
+
+'Range': {
+ 'nativeType': 'nsRange',
+ 'binaryNames': {
+ '__stringifier': 'ToString'
+ }
+},
+
+'Rect': {
+ 'nativeType': 'nsDOMCSSRect',
+},
+
+'Request': {
+ 'binaryNames': {
+ 'headers': 'headers_',
+ 'referrerPolicy': 'referrerPolicy_'
+ },
+},
+
+'Response': {
+ 'binaryNames': { 'headers': 'headers_' },
+},
+
+'RGBColor': {
+ 'nativeType': 'nsDOMCSSRGBColor',
+},
+
+'Screen': {
+ 'nativeType': 'nsScreen',
+},
+
+'ServiceWorker': {
+ 'nativeType': 'mozilla::dom::workers::ServiceWorker',
+ 'headerFile': 'mozilla/dom/workers/bindings/ServiceWorker.h',
+},
+
+'ServiceWorkerGlobalScope': {
+ 'headerFile': 'mozilla/dom/WorkerScope.h',
+},
+
+'ServiceWorkerRegistration': {
+ 'implicitJSContext': [ 'pushManager' ],
+},
+
+'SharedWorker': {
+ 'nativeType': 'mozilla::dom::workers::SharedWorker',
+ 'headerFile': 'mozilla/dom/workers/bindings/SharedWorker.h',
+ 'implicitJSContext': [ 'constructor' ],
+},
+
+'SharedWorkerGlobalScope': {
+ 'headerFile': 'mozilla/dom/WorkerScope.h',
+},
+
+'Storage': {
+ 'nativeType': 'mozilla::dom::DOMStorage',
+},
+
+'StyleSheet': {
+ 'nativeType': 'mozilla::StyleSheet',
+ 'headerFile': 'mozilla/StyleSheetInlines.h',
+},
+
+'SVGAnimatedLengthList': {
+ 'nativeType': 'mozilla::DOMSVGAnimatedLengthList',
+ 'headerFile': 'DOMSVGAnimatedLengthList.h',
+},
+
+'SVGAnimatedNumberList': {
+ 'nativeType': 'mozilla::DOMSVGAnimatedNumberList',
+ 'headerFile': 'DOMSVGAnimatedNumberList.h'
+},
+
+'SVGAnimatedPreserveAspectRatio': {
+ 'nativeType': 'mozilla::dom::DOMSVGAnimatedPreserveAspectRatio',
+ 'headerFile': 'SVGAnimatedPreserveAspectRatio.h'
+},
+
+'SVGAnimationElement': {
+ 'concrete': False
+},
+
+'SVGComponentTransferFunctionElement': {
+ 'concrete': False,
+},
+
+'SVGElement': {
+ 'nativeType': 'nsSVGElement',
+},
+
+'SVGFEFuncAElement': {
+ 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h',
+},
+
+'SVGFEFuncBElement': {
+ 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h',
+},
+
+'SVGFEFuncGElement': {
+ 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h',
+},
+
+'SVGFEFuncRElement': {
+ 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h',
+},
+
+'SVGGraphicsElement': {
+ 'concrete': False,
+},
+
+'SVGGradientElement': {
+ 'concrete': False,
+},
+
+'SVGLength': {
+ 'nativeType': 'mozilla::DOMSVGLength',
+ 'headerFile': 'DOMSVGLength.h'
+},
+
+'SVGLengthList': {
+ 'nativeType': 'mozilla::DOMSVGLengthList',
+ 'headerFile': 'DOMSVGLengthList.h'
+},
+
+'SVGLinearGradientElement': {
+ 'headerFile': 'mozilla/dom/SVGGradientElement.h',
+},
+
+'SVGNumber': {
+ 'nativeType': 'mozilla::DOMSVGNumber',
+ 'headerFile': 'DOMSVGNumber.h',
+},
+
+'SVGNumberList': {
+ 'nativeType': 'mozilla::DOMSVGNumberList',
+ 'headerFile': 'DOMSVGNumberList.h'
+},
+
+'SVGPathSeg': {
+ 'nativeType': 'mozilla::DOMSVGPathSeg',
+ 'headerFile': 'DOMSVGPathSeg.h',
+ 'concrete': False,
+},
+
+'SVGPathSegClosePath': {
+ 'nativeType': 'mozilla::DOMSVGPathSegClosePath',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegMovetoAbs': {
+ 'nativeType': 'mozilla::DOMSVGPathSegMovetoAbs',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegMovetoRel': {
+ 'nativeType': 'mozilla::DOMSVGPathSegMovetoRel',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegLinetoAbs': {
+ 'nativeType': 'mozilla::DOMSVGPathSegLinetoAbs',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegLinetoRel': {
+ 'nativeType': 'mozilla::DOMSVGPathSegLinetoRel',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegCurvetoCubicAbs': {
+ 'nativeType': 'mozilla::DOMSVGPathSegCurvetoCubicAbs',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegCurvetoCubicRel': {
+ 'nativeType': 'mozilla::DOMSVGPathSegCurvetoCubicRel',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegCurvetoQuadraticAbs': {
+ 'nativeType': 'mozilla::DOMSVGPathSegCurvetoQuadraticAbs',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegCurvetoQuadraticRel': {
+ 'nativeType': 'mozilla::DOMSVGPathSegCurvetoQuadraticRel',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegArcAbs': {
+ 'nativeType': 'mozilla::DOMSVGPathSegArcAbs',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegArcRel': {
+ 'nativeType': 'mozilla::DOMSVGPathSegArcRel',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegLinetoHorizontalAbs': {
+ 'nativeType': 'mozilla::DOMSVGPathSegLinetoHorizontalAbs',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegLinetoHorizontalRel': {
+ 'nativeType': 'mozilla::DOMSVGPathSegLinetoHorizontalRel',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegLinetoVerticalAbs': {
+ 'nativeType': 'mozilla::DOMSVGPathSegLinetoVerticalAbs',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegLinetoVerticalRel': {
+ 'nativeType': 'mozilla::DOMSVGPathSegLinetoVerticalRel',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegCurvetoCubicSmoothAbs': {
+ 'nativeType': 'mozilla::DOMSVGPathSegCurvetoCubicSmoothAbs',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegCurvetoCubicSmoothRel': {
+ 'nativeType': 'mozilla::DOMSVGPathSegCurvetoCubicSmoothRel',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegCurvetoQuadraticSmoothAbs': {
+ 'nativeType': 'mozilla::DOMSVGPathSegCurvetoQuadraticSmoothAbs',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegCurvetoQuadraticSmoothRel': {
+ 'nativeType': 'mozilla::DOMSVGPathSegCurvetoQuadraticSmoothRel',
+ 'headerFile': 'DOMSVGPathSeg.h'
+},
+
+'SVGPathSegList': {
+ 'nativeType': 'mozilla::DOMSVGPathSegList',
+ 'headerFile': 'DOMSVGPathSegList.h'
+},
+
+'SVGPoint': {
+ 'nativeType': 'mozilla::nsISVGPoint',
+ 'headerFile': 'nsISVGPoint.h'
+},
+
+'SVGPointList': {
+ 'nativeType': 'mozilla::DOMSVGPointList',
+ 'headerFile': 'DOMSVGPointList.h'
+},
+
+'SVGPreserveAspectRatio': {
+ 'nativeType': 'mozilla::dom::DOMSVGPreserveAspectRatio',
+ 'headerFile': 'SVGPreserveAspectRatio.h'
+},
+
+'SVGRadialGradientElement': {
+ 'headerFile': 'mozilla/dom/SVGGradientElement.h',
+},
+
+'SVGRect': {
+ 'nativeType': 'mozilla::dom::SVGIRect'
+},
+
+'SVGTextContentElement': {
+ 'concrete': False
+},
+
+'SVGTextPositioningElement': {
+ 'concrete': False
+},
+
+'SVGTransform': {
+ 'binaryNames': {
+ "matrix": "GetMatrix"
+ }
+},
+
+'SVGTransformList': {
+ 'nativeType': 'mozilla::DOMSVGTransformList',
+ 'headerFile': 'DOMSVGTransformList.h'
+},
+
+'SVGStringList': {
+ 'nativeType': 'mozilla::DOMSVGStringList',
+ 'headerFile': 'DOMSVGStringList.h',
+},
+
+'SVGUnitTypes' : {
+ 'concrete': False,
+},
+
+'SVGZoomAndPan' : {
+ 'concrete': False,
+},
+
+'TestFunctions': {
+ 'wrapperCache': False
+},
+
+'Text': {
+ # Total hack to allow binding code to realize that nsTextNode can
+ # in fact be cast to Text.
+ 'headerFile': 'nsTextNode.h',
+},
+
+'TextDecoder': {
+ 'wrapperCache': False
+},
+
+'TextEncoder': {
+ 'wrapperCache': False
+},
+
+'TextMetrics': {
+ 'wrapperCache': False
+},
+
+'TCPSocket': {
+ 'implicitJSContext': ['send']
+},
+
+'ThreadSafeChromeUtils': {
+ # The codegen is dumb, and doesn't understand that this interface is only a
+ # collection of static methods, so we have this `concrete: False` hack.
+ 'concrete': False,
+ 'headerFile': 'mozilla/dom/ChromeUtils.h',
+},
+
+'TouchList': {
+ 'headerFile': 'mozilla/dom/TouchEvent.h',
+},
+
+'TreeColumn': {
+ 'nativeType': 'nsTreeColumn',
+ 'headerFile': 'nsTreeColumns.h',
+},
+
+'TreeColumns': {
+ 'nativeType': 'nsTreeColumns',
+},
+
+'TreeWalker': {
+ 'wrapperCache': False,
+},
+
+'VTTCue': {
+ 'nativeType': 'mozilla::dom::TextTrackCue'
+},
+
+'VTTRegion': {
+ 'nativeType': 'mozilla::dom::TextTrackRegion',
+},
+
+'WindowClient': {
+ 'nativeType': 'mozilla::dom::workers::ServiceWorkerWindowClient',
+ 'headerFile': 'mozilla/dom/workers/bindings/ServiceWorkerWindowClient.h',
+},
+
+'WebGLActiveInfo': {
+ 'nativeType': 'mozilla::WebGLActiveInfo',
+ 'headerFile': 'WebGLActiveInfo.h'
+},
+
+'WebGLBuffer': {
+ 'nativeType': 'mozilla::WebGLBuffer',
+ 'headerFile': 'WebGLBuffer.h'
+},
+
+'WEBGL_compressed_texture_atc': {
+ 'nativeType': 'mozilla::WebGLExtensionCompressedTextureATC',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'WEBGL_compressed_texture_etc': {
+ 'nativeType': 'mozilla::WebGLExtensionCompressedTextureES3',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'WEBGL_compressed_texture_etc1': {
+ 'nativeType': 'mozilla::WebGLExtensionCompressedTextureETC1',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'WEBGL_compressed_texture_pvrtc': {
+ 'nativeType': 'mozilla::WebGLExtensionCompressedTexturePVRTC',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'WEBGL_compressed_texture_s3tc': {
+ 'nativeType': 'mozilla::WebGLExtensionCompressedTextureS3TC',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'WEBGL_depth_texture': {
+ 'nativeType': 'mozilla::WebGLExtensionDepthTexture',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'WEBGL_debug_renderer_info': {
+ 'nativeType': 'mozilla::WebGLExtensionDebugRendererInfo',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'WEBGL_debug_shaders': {
+ 'nativeType': 'mozilla::WebGLExtensionDebugShaders',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'OES_element_index_uint': {
+ 'nativeType': 'mozilla::WebGLExtensionElementIndexUint',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'EXT_frag_depth': {
+ 'nativeType': 'mozilla::WebGLExtensionFragDepth',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'WEBGL_lose_context': {
+ 'nativeType': 'mozilla::WebGLExtensionLoseContext',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'EXT_sRGB': {
+ 'nativeType': 'mozilla::WebGLExtensionSRGB',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'OES_standard_derivatives': {
+ 'nativeType': 'mozilla::WebGLExtensionStandardDerivatives',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'EXT_shader_texture_lod': {
+ 'nativeType': 'mozilla::WebGLExtensionShaderTextureLod',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'EXT_texture_filter_anisotropic': {
+ 'nativeType': 'mozilla::WebGLExtensionTextureFilterAnisotropic',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'OES_texture_float': {
+ 'nativeType': 'mozilla::WebGLExtensionTextureFloat',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'OES_texture_float_linear': {
+ 'nativeType': 'mozilla::WebGLExtensionTextureFloatLinear',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'OES_texture_half_float': {
+ 'nativeType': 'mozilla::WebGLExtensionTextureHalfFloat',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'OES_texture_half_float_linear': {
+ 'nativeType': 'mozilla::WebGLExtensionTextureHalfFloatLinear',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'WEBGL_color_buffer_float': {
+ 'nativeType': 'mozilla::WebGLExtensionColorBufferFloat',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'EXT_color_buffer_half_float': {
+ 'nativeType': 'mozilla::WebGLExtensionColorBufferHalfFloat',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'EXT_color_buffer_float': {
+ 'nativeType': 'mozilla::WebGLExtensionEXTColorBufferFloat',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'WEBGL_draw_buffers': {
+ 'nativeType': 'mozilla::WebGLExtensionDrawBuffers',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'OES_vertex_array_object': {
+ 'nativeType': 'mozilla::WebGLExtensionVertexArray',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'ANGLE_instanced_arrays': {
+ 'nativeType': 'mozilla::WebGLExtensionInstancedArrays',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'EXT_blend_minmax': {
+ 'nativeType': 'mozilla::WebGLExtensionBlendMinMax',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'EXT_disjoint_timer_query': {
+ 'nativeType': 'mozilla::WebGLExtensionDisjointTimerQuery',
+ 'headerFile': 'WebGLExtensions.h'
+},
+
+'WebGLFramebuffer': {
+ 'nativeType': 'mozilla::WebGLFramebuffer',
+ 'headerFile': 'WebGLFramebuffer.h'
+},
+
+'WebGLProgram': {
+ 'nativeType': 'mozilla::WebGLProgram',
+ 'headerFile': 'WebGLProgram.h'
+},
+
+'WebGLQuery': {
+ 'nativeType': 'mozilla::WebGLQuery',
+ 'headerFile': 'WebGLQuery.h'
+},
+
+'WebGLRenderbuffer': {
+ 'nativeType': 'mozilla::WebGLRenderbuffer',
+ 'headerFile': 'WebGLRenderbuffer.h'
+},
+
+'WebGLRenderingContext': {
+ 'nativeType': 'mozilla::WebGLContext',
+ 'headerFile': 'WebGLContext.h',
+},
+
+'WebGL2RenderingContext': {
+ 'nativeType': 'mozilla::WebGL2Context',
+ 'headerFile': 'WebGL2Context.h',
+},
+
+'WebGLSampler': {
+ 'nativeType': 'mozilla::WebGLSampler',
+ 'headerFile': 'WebGLSampler.h'
+},
+
+'WebGLShader': {
+ 'nativeType': 'mozilla::WebGLShader',
+ 'headerFile': 'WebGLShader.h'
+},
+
+'WebGLShaderPrecisionFormat': {
+ 'nativeType': 'mozilla::WebGLShaderPrecisionFormat',
+ 'headerFile': 'WebGLShaderPrecisionFormat.h',
+ 'wrapperCache': False
+},
+
+'WebGLSync': {
+ 'nativeType': 'mozilla::WebGLSync',
+ 'headerFile': 'WebGLSync.h'
+},
+
+'WebGLTexture': {
+ 'nativeType': 'mozilla::WebGLTexture',
+ 'headerFile': 'WebGLTexture.h'
+},
+
+'WebGLTransformFeedback': {
+ 'nativeType': 'mozilla::WebGLTransformFeedback',
+ 'headerFile': 'WebGLTransformFeedback.h'
+},
+
+'WebGLUniformLocation': {
+ 'nativeType': 'mozilla::WebGLUniformLocation',
+ 'headerFile': 'WebGLUniformLocation.h'
+},
+
+'WebGLVertexArrayObject': {
+ 'nativeType': 'mozilla::WebGLVertexArray',
+ 'headerFile': 'WebGLVertexArray.h'
+},
+
+'WebrtcGlobalInformation': {
+ 'nativeType': 'mozilla::dom::WebrtcGlobalInformation',
+ 'headerFile': 'WebrtcGlobalInformation.h',
+ 'wrapperCache': False,
+ 'concrete': False,
+},
+
+'Window': {
+ 'nativeType': 'nsGlobalWindow',
+ 'binaryNames': {
+ 'postMessage': 'postMessageMoz',
+ },
+ 'implicitJSContext': [
+ 'requestIdleCallback'
+ ],
+},
+
+'WindowProxy': {
+ 'nativeType': 'nsPIDOMWindowOuter',
+ 'headerFile': 'nsPIDOMWindow.h',
+ 'concrete': False
+},
+
+'WindowRoot': {
+ 'nativeType': 'nsWindowRoot'
+},
+
+'Worker': {
+ 'headerFile': 'mozilla/dom/WorkerPrivate.h',
+ 'nativeType': 'mozilla::dom::workers::WorkerPrivate',
+},
+
+'WorkerDebuggerGlobalScope': {
+ 'headerFile': 'mozilla/dom/WorkerScope.h',
+ 'implicitJSContext': [
+ 'dump', 'global', 'reportError', 'setConsoleEventHandler',
+ ],
+},
+
+'WorkerGlobalScope': {
+ 'headerFile': 'mozilla/dom/WorkerScope.h',
+ 'concrete': False,
+ 'implicitJSContext': [
+ 'close',
+ ],
+ # Rename a few things so we don't have both classes and methods
+ # with the same name
+ 'binaryNames': {
+ 'performance': 'getPerformance',
+ },
+},
+
+'XMLHttpRequest': {
+ 'implicitJSContext': [ 'send'],
+},
+
+'XMLHttpRequestEventTarget': {
+ 'concrete': False
+},
+
+'XMLSerializer': {
+ 'nativeType': 'nsDOMSerializer',
+},
+
+'XPathEvaluator': {
+ 'wrapperCache': False
+},
+
+'XPathExpression': {
+ 'wrapperCache': False,
+},
+
+'XSLTProcessor': {
+ 'nativeType': 'txMozillaXSLTProcessor',
+},
+
+'XULDocument': {
+ 'headerFile': 'XULDocument.h'
+},
+
+'XULElement': {
+ 'nativeType': 'nsXULElement',
+},
+
+####################################
+# Test Interfaces of various sorts #
+####################################
+
+'TestInterface' : {
+ # Keep this in sync with TestExampleInterface
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ 'binaryNames': { 'methodRenamedFrom': 'methodRenamedTo',
+ 'attributeGetterRenamedFrom': 'attributeGetterRenamedTo',
+ 'attributeRenamedFrom': 'attributeRenamedTo' }
+ },
+
+'TestParentInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ },
+
+'TestChildInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ },
+
+'TestCImplementedInterface' : {
+ 'headerFile': 'TestCImplementedInterface.h',
+ 'register': False,
+ },
+
+'TestCImplementedInterface2' : {
+ 'headerFile': 'TestCImplementedInterface.h',
+ 'register': False,
+ },
+
+'TestJSImplInterface' : {
+ # Keep this in sync with TestExampleInterface
+ 'headerFile': 'TestJSImplGenBinding.h',
+ 'register': False,
+ 'binaryNames': { 'methodRenamedFrom': 'methodRenamedTo',
+ 'attributeGetterRenamedFrom': 'attributeGetterRenamedTo',
+ 'attributeRenamedFrom': 'attributeRenamedTo' }
+ },
+
+'TestJSImplInterface2' : {
+ 'headerFile': 'TestJSImplGenBinding.h',
+ 'register': False
+ },
+
+'TestJSImplInterface3' : {
+ 'headerFile': 'TestJSImplGenBinding.h',
+ 'register': False
+ },
+
+'TestJSImplInterface4' : {
+ 'headerFile': 'TestJSImplGenBinding.h',
+ 'register': False
+ },
+
+'TestJSImplInterface5' : {
+ 'headerFile': 'TestJSImplGenBinding.h',
+ 'register': False
+ },
+
+'TestJSImplInterface6' : {
+ 'headerFile': 'TestJSImplGenBinding.h',
+ 'register': False
+ },
+
+'TestNavigator' : {
+ 'headerFile': 'TestJSImplGenBinding.h',
+ 'register' : False
+ },
+
+'TestNavigatorWithConstructor' : {
+ 'headerFile': 'TestJSImplGenBinding.h',
+ 'register' : False
+ },
+
+'TestExternalInterface' : {
+ 'nativeType': 'mozilla::dom::TestExternalInterface',
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestNonWrapperCacheInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ 'wrapperCache': False
+ },
+
+'IndirectlyImplementedInterface': {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ 'castable': False,
+ 'concrete': False
+ },
+
+'OnlyForUseInConstructor' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'ImplementedInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'concrete': False,
+ 'register': False,
+ },
+
+'ImplementedInterfaceParent' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'concrete': False,
+ 'register': False
+ },
+
+'DiamondImplements' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'concrete': False,
+ 'register': False
+ },
+
+'DiamondBranch1A' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'concrete': False,
+ 'register': False
+ },
+
+'DiamondBranch1B' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'concrete': False,
+ 'register': False
+ },
+
+'DiamondBranch2A' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'concrete': False,
+ 'register': False
+ },
+
+'DiamondBranch2B' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'concrete': False,
+ 'register': False
+ },
+
+'TestIndexedGetterInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestNamedGetterInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestIndexedGetterAndSetterAndNamedGetterInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestIndexedAndNamedGetterInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestIndexedSetterInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestNamedSetterInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestIndexedAndNamedSetterInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestIndexedAndNamedGetterAndSetterInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ },
+
+'TestRenamedInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ 'nativeType': 'nsRenamedInterface'
+ },
+
+'TestNamedDeleterInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestNamedDeleterWithRetvalInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestCppKeywordNamedMethodsInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestExampleInterface' : {
+ # Keep this in sync with TestInterface
+ 'headerFile': 'TestExampleInterface-example.h',
+ 'register': False,
+ 'binaryNames': { 'methodRenamedFrom': 'methodRenamedTo',
+ 'attributeGetterRenamedFrom': 'attributeGetterRenamedTo',
+ 'attributeRenamedFrom': 'attributeRenamedTo' }
+ },
+
+'TestExampleWorkerInterface' : {
+ 'headerFile': 'TestExampleWorkerInterface-example.h',
+ 'register': False,
+ },
+
+'TestExampleProxyInterface' : {
+ 'headerFile': 'TestExampleProxyInterface-example.h',
+ 'register': False
+ },
+
+'TestDeprecatedInterface' : {
+ # Keep this in sync with TestExampleInterface
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestInterfaceWithPromiseConstructorArg' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ },
+
+'TestSecureContextInterface' : {
+ # Keep this in sync with TestExampleInterface
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False
+ },
+
+'TestNamespace' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ },
+
+'TestRenamedNamespace' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ },
+
+'TestProtoObjectHackedNamespace' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ },
+
+'TestWorkerExposedInterface' : {
+ 'headerFile': 'TestBindingHeader.h',
+ 'register': False,
+ },
+
+}
+
+# These are temporary, until they've been converted to use new DOM bindings
+def addExternalIface(iface, nativeType=None, headerFile=None,
+ notflattened=False):
+ if iface in DOMInterfaces:
+ raise Exception('Interface declared both as WebIDL and External interface')
+ domInterface = {
+ 'concrete': False
+ }
+ if not nativeType is None:
+ domInterface['nativeType'] = nativeType
+ if not headerFile is None:
+ domInterface['headerFile'] = headerFile
+ domInterface['notflattened'] = notflattened
+ DOMInterfaces[iface] = domInterface
+
+addExternalIface('ApplicationCache', nativeType='nsIDOMOfflineResourceList')
+addExternalIface('Counter')
+addExternalIface('CSSRule')
+addExternalIface('RTCDataChannel', nativeType='nsIDOMDataChannel')
+addExternalIface('HitRegionOptions', nativeType='nsISupports')
+addExternalIface('imgINotificationObserver', nativeType='imgINotificationObserver')
+addExternalIface('imgIRequest', nativeType='imgIRequest', notflattened=True)
+addExternalIface('MenuBuilder', nativeType='nsIMenuBuilder', notflattened=True)
+addExternalIface('MozControllers', nativeType='nsIControllers')
+addExternalIface('MozFrameLoader', nativeType='nsIFrameLoader', notflattened=True)
+addExternalIface('MozObserver', nativeType='nsIObserver', notflattened=True)
+addExternalIface('MozRDFCompositeDataSource', nativeType='nsIRDFCompositeDataSource',
+ notflattened=True)
+addExternalIface('MozRDFResource', nativeType='nsIRDFResource', notflattened=True)
+addExternalIface('MozTreeView', nativeType='nsITreeView',
+ headerFile='nsITreeView.h', notflattened=True)
+addExternalIface('MozWakeLockListener', headerFile='nsIDOMWakeLockListener.h')
+addExternalIface('MozXULTemplateBuilder', nativeType='nsIXULTemplateBuilder')
+addExternalIface('nsIBrowserDOMWindow', nativeType='nsIBrowserDOMWindow',
+ notflattened=True)
+addExternalIface('nsIControllers', nativeType='nsIControllers')
+addExternalIface('nsIDOMCrypto', nativeType='nsIDOMCrypto',
+ headerFile='Crypto.h')
+addExternalIface('nsIFile', nativeType='nsIFile', notflattened=True)
+addExternalIface('nsILoadGroup', nativeType='nsILoadGroup',
+ headerFile='nsILoadGroup.h', notflattened=True)
+addExternalIface('nsIMessageBroadcaster', nativeType='nsIMessageBroadcaster',
+ headerFile='nsIMessageManager.h', notflattened=True)
+addExternalIface('nsISelectionListener', nativeType='nsISelectionListener')
+addExternalIface('nsIStreamListener', nativeType='nsIStreamListener', notflattened=True)
+addExternalIface('nsITransportProvider', nativeType='nsITransportProvider')
+addExternalIface('nsISupports', nativeType='nsISupports')
+addExternalIface('nsIDocShell', nativeType='nsIDocShell', notflattened=True)
+addExternalIface('nsIEditor', nativeType='nsIEditor', notflattened=True)
+addExternalIface('nsIVariant', nativeType='nsIVariant', notflattened=True)
+addExternalIface('nsIScriptableRegion', nativeType='nsIScriptableRegion', notflattened=True)
+addExternalIface('OutputStream', nativeType='nsIOutputStream',
+ notflattened=True)
+addExternalIface('Principal', nativeType='nsIPrincipal',
+ headerFile='nsIPrincipal.h', notflattened=True)
+addExternalIface('StackFrame', nativeType='nsIStackFrame',
+ headerFile='nsIException.h', notflattened=True)
+addExternalIface('URI', nativeType='nsIURI', headerFile='nsIURI.h',
+ notflattened=True)
+addExternalIface('XULCommandDispatcher')