michael@0: # This Source Code Form is subject to the terms of the Mozilla Public michael@0: # License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: # file, You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: michael@0: # DOM Bindings Configuration. michael@0: # michael@0: # The WebIDL interfaces are defined in dom/webidl. For each such interface, there michael@0: # is a corresponding entry in the configuration table below. The configuration michael@0: # table maps each interface name to a |descriptor| or list of |descriptor|s. michael@0: # michael@0: # Valid fields for all descriptors: michael@0: # * nativeType - The native type (concrete class or XPCOM interface) that michael@0: # instances of this interface will unwrap to. If not michael@0: # specified, defaults to 'mozilla::dom::InterfaceName' for michael@0: # non-worker non-external-or-callback interfaces, to michael@0: # 'mozilla::dom::workers::InterfaceName' for worker michael@0: # non-external interfaces, to 'nsIDOM' followed by the michael@0: # interface name for non-worker external-or-callback michael@0: # interfaces, and to 'JSObject' for worker external-or-callback michael@0: # interfaces. michael@0: # * headerFile - The file in which the nativeType is declared (defaults michael@0: # to an educated guess). michael@0: # * concrete - Indicates whether there exist JS objects with this interface as michael@0: # their primary interface (and hence whose prototype is this michael@0: # interface's prototype object). Always False for callback michael@0: # interfaces. Defaults to True otherwise. michael@0: # * workers - Indicates whether the descriptor is intended to be used solely michael@0: # for worker threads (defaults to false). If true the interface michael@0: # will not be made available on the main thread. michael@0: # * notflattened - The native type does not have nsIClassInfo, so when michael@0: # wrapping it the right IID needs to be passed in. michael@0: # * register - True if this binding should be registered. Defaults to true. michael@0: # * binaryNames - Dict for mapping method and attribute names to different michael@0: # names when calling the native methods (defaults to an empty michael@0: # dict). The keys are the property names as they appear in the michael@0: # .webidl file and the values are the names as they should be michael@0: # in the WebIDL. michael@0: # * wrapperCache: True if this object is a wrapper cache. Objects that are michael@0: # not can only be returned from a limited set of methods, michael@0: # cannot be prefable, and must ensure that they disallow michael@0: # XPConnect wrapping. Always false for callback interfaces. michael@0: # Always true for worker descriptors for non-callback michael@0: # interfaces. Defaults to true for non-worker non-callback michael@0: # descriptors. michael@0: # * nativeOwnership: Describes how the native object is held. 3 possible michael@0: # types: worker object ('worker'), non-refcounted object michael@0: # ('owned'), refcounted object ('refcounted'). michael@0: # Non-refcounted objects need to inherit from michael@0: # mozilla::dom::NonRefcountedDOMObject and preferably use michael@0: # MOZ_COUNT_CTOR/MOZ_COUNT_DTOR in their michael@0: # constructor/destructor so they participate in leak michael@0: # logging. michael@0: # This mostly determines how the finalizer releases the michael@0: # binding's hold on the native object. For a worker object michael@0: # it'll call Release, for a non-refcounted object it'll michael@0: # call delete through XPConnect's deferred finalization michael@0: # mechanism, for a refcounted object it'll call Release michael@0: # through XPConnect's deferred finalization mechanism. michael@0: # 'worker' opts into old style worker models. Defaults to michael@0: # 'refcounted'. michael@0: # michael@0: # The following fields are either a string, an array (defaults to an empty michael@0: # array) or a dictionary with three possible keys (all, getterOnly and michael@0: # setterOnly) each having such an array as the value michael@0: # michael@0: # * implicitJSContext - attributes and methods specified in the .webidl file michael@0: # that require a JSContext as the first argument michael@0: # * resultNotAddRefed - attributes and methods specified in the .webidl file michael@0: # that do not AddRef the return value michael@0: # michael@0: # A descriptor can also have 'skipGen': True specified if it should be skipped michael@0: # when deciding what header includes to generate and should never have an michael@0: # implementation generated for it. This is only needed in special cases like michael@0: # worker descriptors for objects that will never actually appear in workers. michael@0: # michael@0: # The value for an interface can be a list or a dictionary, which affects which michael@0: # bindings are generated for that interface. michael@0: # - If the value for the interface is just a record, then a single binding for michael@0: # will be generated using those settings. michael@0: # - If it is a list with a single record which has 'workers':True, then that michael@0: # record will be used to generate bindings for workers, plus the default michael@0: # settings will be used to generate bindings for the main thread. michael@0: # - If it is a list with two records, then one should have 'workers':True, michael@0: # and the other should have 'workers':False (or left unset). These will michael@0: # be used to generate bindings for workers and for mainthread, as you would michael@0: # expect. michael@0: # Nothing else is allowed. If you have a list with a single 'workers':False michael@0: # entry, just make it not a list. michael@0: michael@0: DOMInterfaces = { michael@0: michael@0: 'MozActivity': { michael@0: 'nativeType': 'mozilla::dom::Activity', michael@0: }, michael@0: michael@0: 'AbstractWorker': { michael@0: 'concrete': False michael@0: }, michael@0: michael@0: 'ArchiveReader': { michael@0: 'nativeType': 'mozilla::dom::file::ArchiveReader', michael@0: }, michael@0: michael@0: 'ArchiveRequest': { michael@0: 'nativeType': 'mozilla::dom::file::ArchiveRequest', michael@0: }, michael@0: michael@0: 'AudioChannelManager': { michael@0: 'nativeType': 'mozilla::dom::system::AudioChannelManager', michael@0: 'headerFile': 'AudioChannelManager.h' michael@0: }, michael@0: michael@0: 'AudioContext': { michael@0: 'implicitJSContext': [ 'createBuffer' ], michael@0: 'resultNotAddRefed': [ 'destination', 'listener' ], michael@0: }, michael@0: michael@0: 'AudioBuffer': { michael@0: 'implicitJSContext': [ 'copyToChannel' ], michael@0: }, michael@0: michael@0: 'AudioBufferSourceNode': { michael@0: 'implicitJSContext': [ 'buffer' ], michael@0: 'resultNotAddRefed': [ 'playbackRate' ], michael@0: }, michael@0: michael@0: 'AudioNode' : { michael@0: 'concrete': False, michael@0: 'binaryNames': { michael@0: 'channelCountMode': 'channelCountModeValue', michael@0: 'channelInterpretation': 'channelInterpretationValue', michael@0: }, michael@0: }, michael@0: michael@0: 'AudioProcessingEvent' : { michael@0: 'resultNotAddRefed': [ 'inputBuffer', 'outputBuffer' ], michael@0: }, michael@0: michael@0: 'BarProp': { michael@0: 'headerFile': 'mozilla/dom/BarProps.h', michael@0: }, michael@0: michael@0: 'BiquadFilterNode': { michael@0: 'resultNotAddRefed': [ 'frequency', 'detune', 'q', 'gain' ], michael@0: }, michael@0: michael@0: 'Blob': [ michael@0: { michael@0: 'headerFile': 'nsIDOMFile.h', michael@0: }, michael@0: { michael@0: 'workers': True, michael@0: }], michael@0: michael@0: 'BatteryManager': { michael@0: 'nativeType': 'mozilla::dom::battery::BatteryManager', michael@0: 'headerFile': 'BatteryManager.h' michael@0: }, michael@0: michael@0: 'BluetoothAdapter': { michael@0: 'nativeType': 'mozilla::dom::bluetooth::BluetoothAdapter', michael@0: 'headerFile': 'BluetoothAdapter.h' michael@0: }, michael@0: michael@0: 'BluetoothDevice': { michael@0: 'nativeType': 'mozilla::dom::bluetooth::BluetoothDevice', michael@0: 'headerFile': 'BluetoothDevice.h' michael@0: }, michael@0: michael@0: 'BluetoothManager': { michael@0: 'nativeType': 'mozilla::dom::bluetooth::BluetoothManager', michael@0: 'headerFile': 'BluetoothManager.h' michael@0: }, michael@0: michael@0: 'CameraCapabilities': { michael@0: 'nativeType': 'mozilla::dom::CameraCapabilities', michael@0: 'headerFile': 'DOMCameraCapabilities.h' michael@0: }, michael@0: michael@0: 'CameraControl': { michael@0: 'nativeType': 'mozilla::nsDOMCameraControl', michael@0: 'headerFile': 'DOMCameraControl.h', michael@0: 'binaryNames': { michael@0: "release": "ReleaseHardware" michael@0: } michael@0: }, michael@0: michael@0: 'CameraDetectedFace': { michael@0: 'nativeType': 'mozilla::dom::DOMCameraDetectedFace', michael@0: 'headerFile': 'DOMCameraDetectedFace.h' michael@0: }, michael@0: michael@0: 'CameraManager': { michael@0: 'nativeType': 'nsDOMCameraManager', michael@0: 'headerFile': 'DOMCameraManager.h' michael@0: }, michael@0: michael@0: 'CameraPoint': { michael@0: 'nativeType': 'mozilla::dom::DOMCameraPoint', michael@0: 'headerFile': 'DOMCameraDetectedFace.h' michael@0: }, michael@0: michael@0: 'CanvasRenderingContext2D': { michael@0: 'implicitJSContext': [ michael@0: 'createImageData', 'getImageData', 'isPointInPath', 'isPointInStroke' michael@0: ], michael@0: 'resultNotAddRefed': [ 'canvas', 'measureText' ], michael@0: 'binaryNames': { michael@0: 'mozImageSmoothingEnabled': 'imageSmoothingEnabled', michael@0: 'mozFillRule': 'fillRule' michael@0: } michael@0: }, michael@0: michael@0: 'CaretPosition' : { michael@0: 'nativeType': 'nsDOMCaretPosition', michael@0: }, michael@0: michael@0: 'CharacterData': { michael@0: 'nativeType': 'nsGenericDOMDataNode', michael@0: 'concrete': False michael@0: }, michael@0: michael@0: 'ChromeWindow': { michael@0: 'concrete': False, michael@0: 'register': False, michael@0: }, michael@0: michael@0: 'ChromeWorker': { michael@0: 'headerFile': 'mozilla/dom/WorkerPrivate.h', michael@0: 'nativeType': 'mozilla::dom::workers::ChromeWorkerPrivate', michael@0: }, michael@0: michael@0: 'Console': { michael@0: 'implicitJSContext': [ 'trace', 'time', 'timeEnd' ], michael@0: }, michael@0: michael@0: 'ConvolverNode': { michael@0: 'implicitJSContext': [ 'buffer' ], michael@0: 'resultNotAddRefed': [ 'buffer' ], michael@0: }, michael@0: michael@0: 'Coordinates': { michael@0: 'headerFile': 'nsGeoPosition.h' michael@0: }, michael@0: michael@0: 'CRMFObject': { michael@0: 'headerFile': 'nsCrypto.h', michael@0: 'nativeOwnership': 'owned', michael@0: 'wrapperCache': False, michael@0: }, michael@0: michael@0: 'Crypto' : { michael@0: 'implicitJSContext': [ 'generateCRMFRequest', 'signText' ], michael@0: 'headerFile': 'Crypto.h' michael@0: }, michael@0: michael@0: 'CSS': { michael@0: 'concrete': False, michael@0: }, michael@0: michael@0: 'CSS2Properties': { michael@0: 'nativeType': 'nsDOMCSSDeclaration' michael@0: }, michael@0: michael@0: 'CSSPrimitiveValue': { michael@0: 'nativeType': 'nsROCSSPrimitiveValue', michael@0: 'resultNotAddRefed': ['getRGBColorValue', 'getRectValue'] michael@0: }, michael@0: michael@0: 'CSSStyleDeclaration': { michael@0: 'nativeType': 'nsICSSDeclaration' michael@0: }, michael@0: michael@0: 'CSSStyleSheet': { michael@0: 'nativeType': 'nsCSSStyleSheet', michael@0: 'binaryNames': { 'ownerRule': 'DOMOwnerRule' }, michael@0: }, michael@0: michael@0: 'CSSValue': { michael@0: 'concrete': False michael@0: }, michael@0: michael@0: 'CSSValueList': { michael@0: 'nativeType': 'nsDOMCSSValueList' michael@0: }, michael@0: michael@0: 'DataChannel': { michael@0: 'nativeType': 'nsDOMDataChannel', michael@0: }, michael@0: michael@0: 'DataStoreCursor': { michael@0: 'wrapperCache': False, michael@0: }, michael@0: michael@0: 'DedicatedWorkerGlobalScope': { michael@0: 'headerFile': 'mozilla/dom/WorkerScope.h', michael@0: 'workers': True, michael@0: }, michael@0: michael@0: 'DelayNode': { michael@0: 'resultNotAddRefed': [ 'delayTime' ], michael@0: }, michael@0: michael@0: 'DeviceAcceleration': { michael@0: 'headerFile': 'mozilla/dom/DeviceMotionEvent.h', michael@0: }, michael@0: michael@0: 'DeviceRotationRate': { michael@0: 'headerFile': 'mozilla/dom/DeviceMotionEvent.h', michael@0: }, michael@0: michael@0: 'DeviceStorage': { michael@0: 'nativeType': 'nsDOMDeviceStorage', michael@0: 'headerFile': 'DeviceStorage.h', michael@0: }, michael@0: michael@0: 'Document': [ michael@0: { michael@0: 'nativeType': 'nsIDocument', michael@0: 'resultNotAddRefed': [ 'implementation', 'doctype', 'documentElement', michael@0: 'getElementById', 'adoptNode', 'defaultView', michael@0: 'activeElement', 'currentScript', michael@0: 'mozFullScreenElement', 'mozPointerLockElement', michael@0: 'styleSheets', 'styleSheetSets', 'elementFromPoint', michael@0: 'querySelector', 'getAnonymousNodes', michael@0: 'getAnonymousElementByAtribute', 'getBindingParent' michael@0: ], michael@0: 'binaryNames': { michael@0: 'documentURI': 'documentURIFromJS', michael@0: 'URL': 'documentURIFromJS' michael@0: } michael@0: }, michael@0: { michael@0: 'nativeType': 'JSObject', michael@0: 'workers': True, michael@0: 'skipGen': True michael@0: }], michael@0: michael@0: 'DocumentFragment': { michael@0: 'resultNotAddRefed': [ 'querySelector' ] michael@0: }, michael@0: michael@0: 'DOMException': { michael@0: 'binaryNames': { michael@0: 'message': 'messageMoz', michael@0: }, michael@0: }, michael@0: michael@0: 'DOMPointReadOnly': { michael@0: 'headerFile': 'mozilla/dom/DOMPoint.h', michael@0: 'concrete': False, michael@0: }, michael@0: michael@0: 'DOMRectList': { michael@0: 'headerFile': 'mozilla/dom/DOMRect.h', michael@0: 'resultNotAddRefed': [ 'item' ] michael@0: }, michael@0: michael@0: 'DOMRectReadOnly': { michael@0: 'headerFile': 'mozilla/dom/DOMRect.h', michael@0: }, michael@0: michael@0: 'DOMQuad': { michael@0: 'resultNotAddRefed': [ 'bounds', 'p0', 'p1', 'p2', 'p3' ] michael@0: }, michael@0: michael@0: 'DOMSettableTokenList': { michael@0: 'nativeType': 'nsDOMSettableTokenList', michael@0: }, michael@0: michael@0: 'DOMStringMap': { michael@0: 'nativeType': 'nsDOMStringMap' michael@0: }, michael@0: michael@0: 'DOMTokenList': { michael@0: 'nativeType': 'nsDOMTokenList', michael@0: }, michael@0: michael@0: 'DummyInterface': { michael@0: 'skipGen': True, michael@0: 'register': False, michael@0: }, michael@0: michael@0: 'DummyInterfaceWorkers': { michael@0: 'skipGen': True, michael@0: 'register': False, michael@0: 'workers': True michael@0: }, michael@0: michael@0: 'DynamicsCompressorNode': { michael@0: 'resultNotAddRefed': [ 'threshold', 'knee', 'ratio', michael@0: 'reduction', 'attack', 'release' ], michael@0: 'binaryNames': { michael@0: 'release': 'getRelease' michael@0: }, michael@0: }, michael@0: michael@0: 'Element': { michael@0: 'resultNotAddRefed': [ michael@0: 'classList', 'attributes', 'children', 'firstElementChild', michael@0: 'lastElementChild', 'previousElementSibling', 'nextElementSibling', michael@0: 'getAttributeNode', 'getAttributeNodeNS', 'querySelector' michael@0: ] michael@0: }, michael@0: michael@0: 'Event': { michael@0: 'implicitJSContext': [ 'defaultPrevented', 'preventDefault' ], michael@0: }, michael@0: michael@0: 'EventTarget': { michael@0: # When we get rid of hasXPConnectImpls, we can get rid of the michael@0: # couldBeDOMBinding stuff in WrapNewBindingObject. michael@0: 'hasXPConnectImpls': True, michael@0: 'concrete': False, michael@0: 'jsImplParent': 'mozilla::DOMEventTargetHelper' michael@0: }, michael@0: michael@0: 'Exception': { michael@0: 'headerFile': 'mozilla/dom/DOMException.h', michael@0: 'binaryNames': { michael@0: 'message': 'messageMoz', michael@0: }, michael@0: }, michael@0: michael@0: 'FileHandle': { michael@0: 'nativeType': 'mozilla::dom::file::FileHandle' michael@0: }, michael@0: michael@0: 'FileList': { michael@0: 'nativeType': 'nsDOMFileList', michael@0: 'headerFile': 'nsDOMFile.h', michael@0: 'resultNotAddRefed': [ 'item' ] michael@0: }, michael@0: michael@0: 'FileReader': { michael@0: 'nativeType': 'nsDOMFileReader', michael@0: 'implicitJSContext': [ 'readAsArrayBuffer' ], michael@0: }, michael@0: michael@0: 'FileReaderSync': { michael@0: 'workers': True, michael@0: 'wrapperCache': False, michael@0: }, michael@0: michael@0: 'FileRequest': { michael@0: 'nativeType': 'mozilla::dom::file::FileRequest', michael@0: }, michael@0: michael@0: 'FormData': [ michael@0: { michael@0: 'nativeType': 'nsFormData' michael@0: }, michael@0: { michael@0: 'workers': True, michael@0: 'skipGen': True, michael@0: 'nativeType': 'JSObject' michael@0: }], michael@0: michael@0: 'GainNode': { michael@0: 'resultNotAddRefed': [ 'gain' ], michael@0: }, michael@0: michael@0: 'Geolocation': { michael@0: 'headerFile': 'nsGeolocation.h' michael@0: }, michael@0: michael@0: 'History': { michael@0: 'headerFile': 'nsHistory.h', michael@0: 'nativeType': 'nsHistory' michael@0: }, michael@0: michael@0: 'HTMLAppletElement': { michael@0: 'nativeType': 'mozilla::dom::HTMLSharedObjectElement' michael@0: }, michael@0: michael@0: 'HTMLBaseElement': { michael@0: 'nativeType': 'mozilla::dom::HTMLSharedElement' michael@0: }, michael@0: michael@0: 'HTMLCollection': { michael@0: 'nativeType': 'nsIHTMLCollection', michael@0: # nsContentList.h pulls in nsIHTMLCollection.h michael@0: 'headerFile': 'nsContentList.h', michael@0: 'resultNotAddRefed': [ 'item' ] michael@0: }, michael@0: michael@0: 'HTMLDataListElement': { michael@0: 'resultNotAddRefed': [ michael@0: 'options' michael@0: ] michael@0: }, michael@0: michael@0: 'HTMLDirectoryElement': { michael@0: 'nativeType': 'mozilla::dom::HTMLSharedElement' michael@0: }, michael@0: michael@0: 'HTMLDListElement': { michael@0: 'nativeType' : 'mozilla::dom::HTMLSharedListElement' michael@0: }, michael@0: michael@0: 'HTMLDocument': { michael@0: 'nativeType': 'nsHTMLDocument', michael@0: 'resultNotAddRefed': [ 'body', 'head', 'images', 'embeds', 'plugins', michael@0: 'links', 'forms', 'scripts', 'anchors', 'applets' ], michael@0: 'implicitJSContext': [ 'open', 'write', 'writeln' ] michael@0: }, michael@0: michael@0: 'HTMLElement': { michael@0: 'nativeType': 'nsGenericHTMLElement', michael@0: 'resultNotAddRefed': [ michael@0: 'itemType', 'itemRef', 'itemProp', 'properties', 'contextMenu', 'style', michael@0: 'offsetParent' michael@0: ] michael@0: }, michael@0: michael@0: 'HTMLEmbedElement': { michael@0: 'nativeType': 'mozilla::dom::HTMLSharedObjectElement' michael@0: }, michael@0: michael@0: 'HTMLHeadElement': { michael@0: 'nativeType': 'mozilla::dom::HTMLSharedElement' michael@0: }, michael@0: michael@0: 'HTMLHtmlElement': { michael@0: 'nativeType': 'mozilla::dom::HTMLSharedElement' michael@0: }, michael@0: michael@0: 'HTMLLabelElement': { michael@0: 'resultNotAddRefed': [ michael@0: 'form', 'control' michael@0: ], michael@0: }, michael@0: michael@0: 'HTMLMediaElement': { michael@0: 'concrete': False michael@0: }, michael@0: michael@0: 'HTMLOListElement': { michael@0: 'nativeType' : 'mozilla::dom::HTMLSharedListElement' michael@0: }, michael@0: michael@0: 'HTMLOptionsCollection': { michael@0: 'resultNotAddRefed': [ 'item' ], michael@0: }, michael@0: michael@0: 'HTMLParamElement': { michael@0: 'nativeType': 'mozilla::dom::HTMLSharedElement' michael@0: }, michael@0: michael@0: 'HTMLPropertiesCollection': { michael@0: 'headerFile': 'HTMLPropertiesCollection.h', michael@0: 'resultNotAddRefed': [ 'item', 'namedItem', 'names' ] michael@0: }, michael@0: michael@0: 'HTMLQuoteElement': { michael@0: 'nativeType': 'mozilla::dom::HTMLSharedElement' michael@0: }, michael@0: michael@0: 'HTMLTableElement': { michael@0: 'resultNotAddRefed': [ michael@0: 'caption', 'tHead', 'tFoot', 'tBodies', 'rows' michael@0: ] michael@0: }, michael@0: michael@0: 'HTMLTableRowElement': { michael@0: 'resultNotAddRefed': [ michael@0: 'cells' michael@0: ] michael@0: }, michael@0: michael@0: 'HTMLTableSectionElement': { michael@0: 'resultNotAddRefed': [ michael@0: 'rows' michael@0: ] michael@0: }, michael@0: michael@0: 'HTMLTemplateElement': { michael@0: 'resultNotAddRefed': [ michael@0: 'content' michael@0: ] michael@0: }, michael@0: michael@0: 'HTMLTextAreaElement': { michael@0: 'resultNotAddRefed': [ michael@0: 'form', 'controllers', 'editor' michael@0: ], michael@0: 'binaryNames': { michael@0: 'textLength': 'getTextLength' michael@0: } michael@0: }, michael@0: michael@0: 'HTMLSelectElement': { michael@0: 'resultNotAddRefed': [ michael@0: 'form', michael@0: 'item', michael@0: 'options', michael@0: 'IndexedGetter', michael@0: ] michael@0: }, michael@0: michael@0: 'HTMLStyleElement': { michael@0: 'resultNotAddRefed': [ michael@0: 'sheet' michael@0: ] michael@0: }, michael@0: michael@0: 'HTMLUListElement': { michael@0: 'nativeType' : 'mozilla::dom::HTMLSharedListElement' michael@0: }, michael@0: michael@0: 'IDBCursor': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBCursor', michael@0: 'implicitJSContext': [ 'delete' ], michael@0: 'binaryNames': { michael@0: 'direction': 'getDirection' michael@0: } michael@0: }, michael@0: michael@0: 'IDBCursorWithValue': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBCursor', michael@0: }, michael@0: michael@0: 'IDBDatabase': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBDatabase', michael@0: }, michael@0: michael@0: 'IDBFactory': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBFactory', michael@0: }, michael@0: michael@0: 'IDBFileHandle': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBFileHandle', michael@0: }, michael@0: michael@0: 'IDBIndex': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBIndex', michael@0: 'binaryNames': { michael@0: 'mozGetAll': 'getAll', michael@0: 'mozGetAllKeys': 'getAllKeys', michael@0: } michael@0: }, michael@0: michael@0: 'IDBKeyRange': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBKeyRange', michael@0: 'wrapperCache': False, michael@0: }, michael@0: michael@0: 'IDBObjectStore': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBObjectStore', michael@0: 'implicitJSContext': [ 'createIndex' ], michael@0: 'binaryNames': { michael@0: 'mozGetAll': 'getAll' michael@0: } michael@0: }, michael@0: michael@0: 'IDBOpenDBRequest': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBOpenDBRequest', michael@0: 'headerFile': 'IDBRequest.h' michael@0: }, michael@0: michael@0: 'IDBRequest': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBRequest', michael@0: }, michael@0: michael@0: 'IDBTransaction': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBTransaction', michael@0: }, michael@0: michael@0: 'IDBVersionChangeEvent': { michael@0: 'nativeType': 'mozilla::dom::indexedDB::IDBVersionChangeEvent', michael@0: 'headerFile': 'IDBEvents.h', michael@0: }, michael@0: michael@0: 'IID': [ michael@0: { michael@0: 'nativeType': 'nsIJSID', michael@0: 'headerFile': 'xpcjsid.h', michael@0: }, michael@0: { michael@0: 'workers': True, michael@0: }], michael@0: michael@0: 'ImageData': { michael@0: 'wrapperCache': False, michael@0: }, michael@0: michael@0: 'InputStream': [ michael@0: { michael@0: 'nativeType': 'nsIInputStream', michael@0: 'notflattened': True michael@0: }, michael@0: { michael@0: 'workers': True, michael@0: }], michael@0: michael@0: 'KeyEvent': { michael@0: 'concrete': False michael@0: }, michael@0: michael@0: 'LocalMediaStream': { michael@0: 'headerFile': 'DOMMediaStream.h', michael@0: 'nativeType': 'mozilla::DOMLocalMediaStream' michael@0: }, michael@0: michael@0: 'Location': { michael@0: # NOTE: Before you turn on codegen for Location, make sure all the michael@0: # Unforgeable stuff is dealt with. michael@0: 'nativeType': 'nsIDOMLocation', michael@0: 'skipGen': True, michael@0: 'register': False michael@0: }, michael@0: michael@0: 'LockedFile': { michael@0: 'nativeType': 'mozilla::dom::file::LockedFile', michael@0: }, michael@0: michael@0: 'MediaList': { michael@0: 'nativeType': 'nsMediaList', michael@0: 'headerFile': 'nsIMediaList.h', michael@0: }, michael@0: michael@0: 'MediaSource': [{ michael@0: 'resultNotAddRefed': [ 'sourceBuffers', 'activeSourceBuffers' ], michael@0: }, michael@0: { michael@0: 'nativeType': 'JSObject', michael@0: 'workers': True, michael@0: 'skipGen': True michael@0: }], michael@0: michael@0: 'MediaStream': [{ michael@0: 'headerFile': 'DOMMediaStream.h', michael@0: 'nativeType': 'mozilla::DOMMediaStream' michael@0: }, michael@0: { michael@0: 'nativeType': 'JSObject', michael@0: 'workers': True, michael@0: 'skipGen': True michael@0: }], michael@0: michael@0: 'MediaStreamAudioDestinationNode': { michael@0: 'resultNotAddRefed': [ 'stream' ], michael@0: 'binaryNames': { 'stream': 'DOMStream' } michael@0: }, michael@0: michael@0: 'MediaStreamList': { michael@0: 'headerFile': 'MediaStreamList.h', michael@0: 'resultNotAddRefed': [ '__indexedGetter' ], michael@0: 'binaryNames': { '__indexedGetter': 'IndexedGetter' } michael@0: }, michael@0: michael@0: 'MediaStreamTrack': { michael@0: 'concrete': False michael@0: }, michael@0: michael@0: 'MediaRecorder': { michael@0: 'headerFile': 'MediaRecorder.h', michael@0: 'resultNotAddRefed': [ 'stream' ] michael@0: }, michael@0: michael@0: 'MessagePort': { michael@0: 'nativeType': 'mozilla::dom::MessagePortBase', michael@0: 'headerFile': 'mozilla/dom/MessagePort.h', michael@0: 'binaryNames': { michael@0: 'postMessage': 'postMessageMoz', michael@0: }, michael@0: }, michael@0: michael@0: 'MimeType': { michael@0: 'headerFile' : 'nsMimeTypeArray.h', michael@0: 'nativeType': 'nsMimeType', michael@0: 'resultNotAddRefed': [ 'enabledPlugin' ] michael@0: }, michael@0: michael@0: 'MimeTypeArray': { michael@0: 'nativeType': 'nsMimeTypeArray', michael@0: 'resultNotAddRefed': [ 'item', 'namedItem' ] michael@0: }, michael@0: michael@0: 'MozCanvasPrintState': { michael@0: 'headerFile': 'mozilla/dom/HTMLCanvasElement.h', michael@0: 'nativeType': 'mozilla::dom::HTMLCanvasPrintState', michael@0: }, michael@0: michael@0: 'MozChannel': [ michael@0: { michael@0: 'nativeType': 'nsIChannel', michael@0: 'notflattened': True michael@0: }, michael@0: { michael@0: 'workers': True, michael@0: }], michael@0: michael@0: 'MozCellBroadcast': { michael@0: 'nativeType': 'mozilla::dom::CellBroadcast', michael@0: }, michael@0: michael@0: 'MozIcc': { michael@0: 'nativeType': 'mozilla::dom::Icc', michael@0: }, michael@0: michael@0: 'MozIccManager': { michael@0: 'nativeType': 'mozilla::dom::IccManager', michael@0: }, michael@0: michael@0: 'MozMobileConnectionArray': { michael@0: 'nativeType': 'mozilla::dom::MobileConnectionArray', michael@0: 'resultNotAddRefed': [ 'item' ] michael@0: }, michael@0: michael@0: 'MozNamedAttrMap': { michael@0: 'nativeType': 'nsDOMAttributeMap', michael@0: }, michael@0: michael@0: 'MozSpeakerManager': { michael@0: 'nativeType': 'mozilla::dom::SpeakerManager', michael@0: 'headerFile': 'SpeakerManager.h' michael@0: }, michael@0: michael@0: 'MozPowerManager': { michael@0: 'nativeType': 'mozilla::dom::PowerManager', michael@0: }, michael@0: michael@0: 'MozWakeLock': { michael@0: 'nativeType': 'mozilla::dom::WakeLock', michael@0: }, michael@0: michael@0: 'MozTimeManager': { michael@0: 'nativeType': 'mozilla::dom::time::TimeManager', michael@0: }, michael@0: michael@0: 'MozVoicemail': { michael@0: 'nativeType': 'mozilla::dom::Voicemail', michael@0: }, michael@0: michael@0: 'MutationObserver': { michael@0: 'nativeType': 'nsDOMMutationObserver', michael@0: }, michael@0: michael@0: 'MutationRecord': { michael@0: 'nativeType': 'nsDOMMutationRecord', michael@0: 'headerFile': 'nsDOMMutationObserver.h', michael@0: 'resultNotAddRefed': [ 'target', 'addedNodes', 'removedNodes', michael@0: 'previousSibling', 'nextSibling' ] michael@0: }, michael@0: michael@0: 'NetworkInformation': { michael@0: 'nativeType': 'mozilla::dom::network::Connection', michael@0: }, michael@0: michael@0: 'Node': { michael@0: 'nativeType': 'nsINode', michael@0: 'concrete': False, michael@0: 'resultNotAddRefed': [ 'ownerDocument', 'parentNode', 'parentElement', michael@0: 'childNodes', 'firstChild', 'lastChild', michael@0: 'previousSibling', 'nextSibling', 'insertBefore', michael@0: 'appendChild', 'replaceChild', 'removeChild', michael@0: 'attributes' ], michael@0: 'binaryNames': { michael@0: 'baseURI': 'baseURIFromJS' michael@0: } michael@0: }, michael@0: michael@0: 'NodeIterator': { michael@0: 'wrapperCache': False, michael@0: 'resultNotAddRefed': [ 'root', 'referenceNode' ], michael@0: }, michael@0: michael@0: 'NodeList': { michael@0: 'nativeType': 'nsINodeList', michael@0: 'resultNotAddRefed': [ 'item' ] michael@0: }, michael@0: michael@0: 'OfflineAudioCompletionEvent': { michael@0: 'resultNotAddRefed': [ 'renderedBuffer' ], michael@0: }, michael@0: michael@0: 'OfflineAudioContext': { michael@0: 'nativeType': 'mozilla::dom::AudioContext', michael@0: 'resultNotAddRefed': [ 'destination', 'listener' ], michael@0: }, michael@0: michael@0: 'OfflineResourceList': { michael@0: 'nativeType': 'nsDOMOfflineResourceList', michael@0: }, michael@0: michael@0: 'OscillatorNode': { michael@0: 'resultNotAddRefed': [ 'frequency', 'detune' ], michael@0: }, michael@0: michael@0: 'PaintRequestList': { michael@0: 'headerFile': 'mozilla/dom/PaintRequest.h', michael@0: 'resultNotAddRefed': [ 'item' ] michael@0: }, michael@0: michael@0: 'PannerNode': { michael@0: 'resultNotAddRefed': [ 'coneGain', 'distanceGain' ], michael@0: }, michael@0: michael@0: 'Path2D': { michael@0: 'nativeType': 'mozilla::dom::CanvasPath', michael@0: 'headerFile': 'CanvasRenderingContext2D.h' michael@0: }, michael@0: michael@0: 'PeerConnectionImpl': { michael@0: 'nativeType': 'sipcc::PeerConnectionImpl', michael@0: 'headerFile': 'PeerConnectionImpl.h', michael@0: 'wrapperCache': False michael@0: }, michael@0: michael@0: 'Performance': { michael@0: 'nativeType': 'nsPerformance', michael@0: 'resultNotAddRefed': [ 'timing', 'navigation' ] michael@0: }, michael@0: michael@0: 'PerformanceTiming': { michael@0: 'nativeType': 'nsPerformanceTiming', michael@0: 'headerFile': 'nsPerformance.h' michael@0: }, michael@0: michael@0: 'PerformanceNavigation': { michael@0: 'nativeType': 'nsPerformanceNavigation', michael@0: 'headerFile': 'nsPerformance.h' michael@0: }, michael@0: michael@0: 'Plugin': { michael@0: 'headerFile' : 'nsPluginArray.h', michael@0: 'nativeType': 'nsPluginElement', michael@0: 'resultNotAddRefed': [ 'item', 'namedItem' ] michael@0: }, michael@0: michael@0: 'PluginArray': { michael@0: 'nativeType': 'nsPluginArray', michael@0: 'resultNotAddRefed': [ 'item', 'namedItem' ] michael@0: }, michael@0: michael@0: 'Position': { michael@0: 'headerFile': 'nsGeoPosition.h' michael@0: }, michael@0: michael@0: 'PositionError': { michael@0: 'headerFile': 'nsGeolocation.h' michael@0: }, michael@0: michael@0: 'Promise': { michael@0: 'implicitJSContext': [ 'then', 'catch' ], michael@0: }, michael@0: michael@0: 'PropertyNodeList': { michael@0: 'headerFile': 'HTMLPropertiesCollection.h', michael@0: 'resultNotAddRefed': [ 'item' ] michael@0: }, michael@0: michael@0: 'Range': { michael@0: 'nativeType': 'nsRange', michael@0: 'resultNotAddRefed': [ 'startContainer', 'endContainer', 'commonAncestorContainer' ], michael@0: 'binaryNames': { michael@0: '__stringifier': 'ToString' michael@0: } michael@0: }, michael@0: michael@0: 'Rect': { michael@0: 'nativeType': 'nsDOMCSSRect', michael@0: 'resultNotAddRefed': [ 'top', 'right', 'bottom', 'left' ] michael@0: }, michael@0: michael@0: 'RGBColor': { michael@0: 'nativeType': 'nsDOMCSSRGBColor', michael@0: 'resultNotAddRefed': [ 'alpha', 'blue', 'green', 'red' ] michael@0: }, michael@0: michael@0: 'Screen': { michael@0: 'nativeType': 'nsScreen', michael@0: }, michael@0: michael@0: 'Selection': { michael@0: 'resultNotAddRefed': [ 'anchorNode', 'focusNode', 'getRangeAt' ], michael@0: }, michael@0: michael@0: 'ShadowRoot': { michael@0: 'resultNotAddRefed': [ michael@0: 'styleSheets' michael@0: ] michael@0: }, michael@0: michael@0: 'HTMLShadowElement': { michael@0: 'resultNotAddRefed': [ michael@0: 'getOldShadowRoot' michael@0: ] michael@0: }, michael@0: michael@0: 'SharedWorker': { michael@0: 'nativeType': 'mozilla::dom::workers::SharedWorker', michael@0: 'headerFile': 'mozilla/dom/workers/bindings/SharedWorker.h', michael@0: 'implicitJSContext': [ 'constructor' ], michael@0: }, michael@0: michael@0: 'SharedWorkerGlobalScope': { michael@0: 'headerFile': 'mozilla/dom/WorkerScope.h', michael@0: 'workers': True, michael@0: }, michael@0: michael@0: 'SourceBufferList': { michael@0: 'resultNotAddRefed': [ '__indexedGetter' ], michael@0: }, michael@0: michael@0: 'StyleSheet': { michael@0: 'nativeType': 'nsCSSStyleSheet', michael@0: }, michael@0: michael@0: 'SVGAnimatedLengthList': { michael@0: 'nativeType': 'mozilla::DOMSVGAnimatedLengthList', michael@0: 'headerFile': 'DOMSVGAnimatedLengthList.h', michael@0: }, michael@0: michael@0: 'SVGAnimatedNumberList': { michael@0: 'nativeType': 'mozilla::DOMSVGAnimatedNumberList', michael@0: 'headerFile': 'DOMSVGAnimatedNumberList.h' michael@0: }, michael@0: michael@0: 'SVGAnimatedPreserveAspectRatio': { michael@0: 'nativeType': 'mozilla::dom::DOMSVGAnimatedPreserveAspectRatio', michael@0: 'headerFile': 'SVGAnimatedPreserveAspectRatio.h' michael@0: }, michael@0: michael@0: 'SVGAnimationElement': { michael@0: 'resultNotAddRefed': ['targetElement'], michael@0: 'concrete': False michael@0: }, michael@0: michael@0: 'SVGComponentTransferFunctionElement': { michael@0: 'concrete': False, michael@0: }, michael@0: michael@0: 'SVGElement': { michael@0: 'nativeType': 'nsSVGElement', michael@0: 'resultNotAddRefed': ['ownerSVGElement', 'viewportElement', 'style'] michael@0: }, michael@0: michael@0: 'SVGFEFuncAElement': { michael@0: 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h', michael@0: }, michael@0: michael@0: 'SVGFEFuncBElement': { michael@0: 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h', michael@0: }, michael@0: michael@0: 'SVGFEFuncGElement': { michael@0: 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h', michael@0: }, michael@0: michael@0: 'SVGFEFuncRElement': { michael@0: 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h', michael@0: }, michael@0: michael@0: 'SVGGraphicsElement': { michael@0: 'concrete': False, michael@0: 'resultNotAddRefed': ['nearestViewportElement', 'farthestViewportElement'] michael@0: }, michael@0: michael@0: 'SVGGradientElement': { michael@0: 'concrete': False, michael@0: }, michael@0: michael@0: 'SVGLength': { michael@0: 'nativeType': 'mozilla::DOMSVGLength', michael@0: 'headerFile': 'DOMSVGLength.h' michael@0: }, michael@0: michael@0: 'SVGLengthList': { michael@0: 'nativeType': 'mozilla::DOMSVGLengthList', michael@0: 'headerFile': 'DOMSVGLengthList.h' michael@0: }, michael@0: michael@0: 'SVGLinearGradientElement': { michael@0: 'headerFile': 'mozilla/dom/SVGGradientElement.h', michael@0: }, michael@0: michael@0: 'SVGNumberList': { michael@0: 'nativeType': 'mozilla::DOMSVGNumberList', michael@0: 'headerFile': 'DOMSVGNumberList.h' michael@0: }, michael@0: michael@0: 'SVGPathSeg': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSeg', michael@0: 'headerFile': 'DOMSVGPathSeg.h', michael@0: 'concrete': False, michael@0: }, michael@0: michael@0: 'SVGPathSegClosePath': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegClosePath', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegMovetoAbs': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegMovetoAbs', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegMovetoRel': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegMovetoRel', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegLinetoAbs': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegLinetoAbs', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegLinetoRel': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegLinetoRel', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegCurvetoCubicAbs': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegCurvetoCubicAbs', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegCurvetoCubicRel': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegCurvetoCubicRel', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegCurvetoQuadraticAbs': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegCurvetoQuadraticAbs', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegCurvetoQuadraticRel': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegCurvetoQuadraticRel', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegArcAbs': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegArcAbs', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegArcRel': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegArcRel', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegLinetoHorizontalAbs': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegLinetoHorizontalAbs', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegLinetoHorizontalRel': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegLinetoHorizontalRel', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegLinetoVerticalAbs': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegLinetoVerticalAbs', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegLinetoVerticalRel': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegLinetoVerticalRel', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegCurvetoCubicSmoothAbs': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegCurvetoCubicSmoothAbs', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegCurvetoCubicSmoothRel': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegCurvetoCubicSmoothRel', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegCurvetoQuadraticSmoothAbs': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegCurvetoQuadraticSmoothAbs', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegCurvetoQuadraticSmoothRel': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegCurvetoQuadraticSmoothRel', michael@0: 'headerFile': 'DOMSVGPathSeg.h' michael@0: }, michael@0: michael@0: 'SVGPathSegList': { michael@0: 'nativeType': 'mozilla::DOMSVGPathSegList', michael@0: 'headerFile': 'DOMSVGPathSegList.h' michael@0: }, michael@0: michael@0: 'SVGPoint': { michael@0: 'nativeType': 'mozilla::nsISVGPoint', michael@0: 'headerFile': 'nsISVGPoint.h' michael@0: }, michael@0: michael@0: 'SVGPointList': { michael@0: 'nativeType': 'mozilla::DOMSVGPointList', michael@0: 'headerFile': 'DOMSVGPointList.h' michael@0: }, michael@0: michael@0: 'SVGPreserveAspectRatio': { michael@0: 'nativeType': 'mozilla::dom::DOMSVGPreserveAspectRatio', michael@0: 'headerFile': 'SVGPreserveAspectRatio.h' michael@0: }, michael@0: michael@0: 'SVGRadialGradientElement': { michael@0: 'headerFile': 'mozilla/dom/SVGGradientElement.h', michael@0: }, michael@0: michael@0: 'SVGRect': { michael@0: 'nativeType': 'mozilla::dom::SVGIRect' michael@0: }, michael@0: michael@0: 'SVGTextContentElement': { michael@0: 'concrete': False michael@0: }, michael@0: michael@0: 'SVGTextPositioningElement': { michael@0: 'concrete': False michael@0: }, michael@0: michael@0: 'SVGTransform': { michael@0: 'resultNotAddRefed': [ 'matrix' ], michael@0: 'binaryNames': { michael@0: "matrix": "GetMatrix" michael@0: } michael@0: }, michael@0: michael@0: 'SVGTransformList': { michael@0: 'nativeType': 'mozilla::DOMSVGTransformList', michael@0: 'headerFile': 'DOMSVGTransformList.h' michael@0: }, michael@0: michael@0: 'SVGStringList': { michael@0: 'nativeType': 'mozilla::DOMSVGStringList', michael@0: 'headerFile': 'DOMSVGStringList.h', michael@0: }, michael@0: michael@0: 'SVGSVGElement': { michael@0: 'resultNotAddRefed': [ 'getElementById' ] michael@0: }, michael@0: michael@0: 'SVGUnitTypes' : { michael@0: 'concrete': False, michael@0: }, michael@0: michael@0: 'SVGZoomAndPan' : { michael@0: 'concrete': False, michael@0: }, michael@0: michael@0: 'Text': { michael@0: # Total hack to allow binding code to realize that nsTextNode can michael@0: # in fact be cast to Text. michael@0: 'headerFile': 'nsTextNode.h', michael@0: }, michael@0: michael@0: 'TextDecoder': { michael@0: 'nativeOwnership': 'owned', michael@0: }, michael@0: michael@0: 'TextEncoder': { michael@0: 'nativeOwnership': 'owned', michael@0: }, michael@0: michael@0: 'TextMetrics': { michael@0: 'nativeOwnership': 'owned', michael@0: }, michael@0: michael@0: 'TimeRanges': { michael@0: 'wrapperCache': False michael@0: }, michael@0: michael@0: 'TouchList': { michael@0: 'headerFile': 'mozilla/dom/TouchEvent.h', michael@0: }, michael@0: michael@0: 'TreeColumns': { michael@0: 'nativeType': 'nsTreeColumns', michael@0: }, michael@0: michael@0: 'TreeWalker': { michael@0: 'wrapperCache': False, michael@0: 'resultNotAddRefed': [ 'root', 'currentNode' ], michael@0: }, michael@0: michael@0: 'UndoManager': { michael@0: 'implicitJSContext' : [ 'undo', 'redo', 'transact' ], michael@0: }, michael@0: michael@0: 'URL' : [{ michael@0: 'wrapperCache': False, michael@0: }, michael@0: { michael@0: 'workers': True, michael@0: 'wrapperCache': False, michael@0: }], michael@0: michael@0: 'VTTCue': { michael@0: 'nativeType': 'mozilla::dom::TextTrackCue' michael@0: }, michael@0: michael@0: 'VTTRegion': { michael@0: 'nativeType': 'mozilla::dom::TextTrackRegion', michael@0: }, michael@0: michael@0: 'WebGLActiveInfo': { michael@0: 'nativeType': 'mozilla::WebGLActiveInfo', michael@0: 'headerFile': 'WebGLActiveInfo.h', michael@0: 'wrapperCache': False michael@0: }, michael@0: michael@0: 'WebGLBuffer': { michael@0: 'nativeType': 'mozilla::WebGLBuffer', michael@0: 'headerFile': 'WebGLBuffer.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionCompressedTextureATC': { michael@0: 'nativeType': 'mozilla::WebGLExtensionCompressedTextureATC', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionCompressedTextureETC1': { michael@0: 'nativeType': 'mozilla::WebGLExtensionCompressedTextureETC1', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionCompressedTexturePVRTC': { michael@0: 'nativeType': 'mozilla::WebGLExtensionCompressedTexturePVRTC', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionCompressedTextureS3TC': { michael@0: 'nativeType': 'mozilla::WebGLExtensionCompressedTextureS3TC', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionDepthTexture': { michael@0: 'nativeType': 'mozilla::WebGLExtensionDepthTexture', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionDebugRendererInfo': { michael@0: 'nativeType': 'mozilla::WebGLExtensionDebugRendererInfo', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionDebugShaders': { michael@0: 'nativeType': 'mozilla::WebGLExtensionDebugShaders', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionElementIndexUint': { michael@0: 'nativeType': 'mozilla::WebGLExtensionElementIndexUint', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionFragDepth': { michael@0: 'nativeType': 'mozilla::WebGLExtensionFragDepth', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionLoseContext': { michael@0: 'nativeType': 'mozilla::WebGLExtensionLoseContext', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionSRGB': { michael@0: 'nativeType': 'mozilla::WebGLExtensionSRGB', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionStandardDerivatives': { michael@0: 'nativeType': 'mozilla::WebGLExtensionStandardDerivatives', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionTextureFilterAnisotropic': { michael@0: 'nativeType': 'mozilla::WebGLExtensionTextureFilterAnisotropic', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionTextureFloat': { michael@0: 'nativeType': 'mozilla::WebGLExtensionTextureFloat', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionTextureFloatLinear': { michael@0: 'nativeType': 'mozilla::WebGLExtensionTextureFloatLinear', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionTextureHalfFloat': { michael@0: 'nativeType': 'mozilla::WebGLExtensionTextureHalfFloat', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionTextureHalfFloatLinear': { michael@0: 'nativeType': 'mozilla::WebGLExtensionTextureHalfFloatLinear', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionColorBufferFloat': { michael@0: 'nativeType': 'mozilla::WebGLExtensionColorBufferFloat', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionColorBufferHalfFloat': { michael@0: 'nativeType': 'mozilla::WebGLExtensionColorBufferHalfFloat', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionDrawBuffers': { michael@0: 'nativeType': 'mozilla::WebGLExtensionDrawBuffers', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionVertexArray': { michael@0: 'nativeType': 'mozilla::WebGLExtensionVertexArray', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLExtensionInstancedArrays': { michael@0: 'nativeType': 'mozilla::WebGLExtensionInstancedArrays', michael@0: 'headerFile': 'WebGLExtensions.h' michael@0: }, michael@0: michael@0: 'WebGLFramebuffer': { michael@0: 'nativeType': 'mozilla::WebGLFramebuffer', michael@0: 'headerFile': 'WebGLFramebuffer.h' michael@0: }, michael@0: michael@0: 'WebGLProgram': { michael@0: 'nativeType': 'mozilla::WebGLProgram', michael@0: 'headerFile': 'WebGLProgram.h' michael@0: }, michael@0: michael@0: 'WebGLQuery': { michael@0: 'nativeType': 'mozilla::WebGLQuery', michael@0: 'headerFile': 'WebGLQuery.h' michael@0: }, michael@0: michael@0: 'WebGLRenderbuffer': { michael@0: 'nativeType': 'mozilla::WebGLRenderbuffer', michael@0: 'headerFile': 'WebGLRenderbuffer.h' michael@0: }, michael@0: michael@0: 'WebGLRenderingContext': { michael@0: 'nativeType': 'mozilla::WebGLContext', michael@0: 'headerFile': 'WebGLContext.h', michael@0: 'resultNotAddRefed': [ 'canvas', 'getContextAttributes', 'getExtension', michael@0: 'getAttachedShaders' ], michael@0: 'implicitJSContext': [ 'getSupportedExtensions' ], michael@0: }, michael@0: michael@0: 'WebGL2RenderingContext': { michael@0: 'nativeType': 'mozilla::WebGLContext', michael@0: 'headerFile': 'WebGLContext.h', michael@0: 'resultNotAddRefed': [ 'canvas', 'getContextAttributes', 'getExtension', michael@0: 'getAttachedShaders' ], michael@0: 'implicitJSContext': [ 'getSupportedExtensions' ], michael@0: }, michael@0: michael@0: 'WebGLShader': { michael@0: 'nativeType': 'mozilla::WebGLShader', michael@0: 'headerFile': 'WebGLShader.h' michael@0: }, michael@0: michael@0: 'WebGLShaderPrecisionFormat': { michael@0: 'nativeType': 'mozilla::WebGLShaderPrecisionFormat', michael@0: 'headerFile': 'WebGLShaderPrecisionFormat.h', michael@0: 'wrapperCache': False michael@0: }, michael@0: michael@0: 'WebGLTexture': { michael@0: 'nativeType': 'mozilla::WebGLTexture', michael@0: 'headerFile': 'WebGLTexture.h' michael@0: }, michael@0: michael@0: 'WebGLUniformLocation': { michael@0: 'nativeType': 'mozilla::WebGLUniformLocation', michael@0: 'headerFile': 'WebGLUniformLocation.h', michael@0: 'wrapperCache': False michael@0: }, michael@0: michael@0: 'WebGLVertexArray': { michael@0: 'nativeType': 'mozilla::WebGLVertexArray', michael@0: 'headerFile': 'WebGLVertexArray.h' michael@0: }, michael@0: michael@0: 'WebrtcGlobalInformation': { michael@0: 'nativeType': 'mozilla::dom::WebrtcGlobalInformation', michael@0: 'headerFile': 'WebrtcGlobalInformation.h', michael@0: 'wrapperCache': False, michael@0: 'concrete': False, michael@0: }, michael@0: michael@0: 'WebSocket': { michael@0: 'headerFile': 'WebSocket.h', michael@0: }, michael@0: michael@0: 'Window': { michael@0: 'nativeType': 'nsGlobalWindow', michael@0: # When turning on Window, remember to drop the "'register': False" michael@0: # from ChromeWindow. michael@0: 'hasXPConnectImpls': True, michael@0: 'register': False, michael@0: 'binaryNames': { michael@0: 'postMessage': 'postMessageMoz', michael@0: }, michael@0: }, michael@0: michael@0: 'WindowProxy': [ michael@0: { michael@0: 'nativeType': 'nsIDOMWindow', michael@0: 'concrete': False michael@0: }, michael@0: { michael@0: # We need a worker descriptor for WindowProxy because EventTarget exists in michael@0: # workers. But it's an external interface, so it'll just map to JSObject*. michael@0: 'workers': True michael@0: }], michael@0: michael@0: 'Worker': { michael@0: 'headerFile': 'mozilla/dom/WorkerPrivate.h', michael@0: 'nativeType': 'mozilla::dom::workers::WorkerPrivate', michael@0: 'implicitJSContext': [ michael@0: 'terminate', michael@0: ], michael@0: }, michael@0: michael@0: 'WorkerGlobalScope': { michael@0: 'headerFile': 'mozilla/dom/WorkerScope.h', michael@0: 'workers': True, michael@0: 'concrete': False, michael@0: 'implicitJSContext': [ michael@0: 'close', 'importScripts', michael@0: ], michael@0: 'binaryNames': { 'console': 'getConsole', }, michael@0: }, michael@0: michael@0: 'WorkerLocation': { michael@0: 'headerFile': 'mozilla/dom/workers/bindings/Location.h', michael@0: 'workers': True, michael@0: }, michael@0: michael@0: 'WorkerNavigator': { michael@0: 'headerFile': 'mozilla/dom/workers/bindings/Navigator.h', michael@0: 'workers': True, michael@0: }, michael@0: michael@0: 'XMLHttpRequest': [ michael@0: { michael@0: 'nativeType': 'nsXMLHttpRequest', michael@0: 'implicitJSContext': [ 'constructor', 'send'], michael@0: 'resultNotAddRefed': [ 'upload', 'responseXML' ] michael@0: }, michael@0: { michael@0: 'workers': True, michael@0: # XXXkhuey responseXML returns Document? which boils down to a JSObject* michael@0: # on a worker, and nsRefPtr fails in the expected way. channel is michael@0: # similar. This is ugly but it's all going away soon anyways. michael@0: 'resultNotAddRefed': [ michael@0: 'responseXML', 'channel' michael@0: ] michael@0: }], michael@0: michael@0: 'XMLHttpRequestEventTarget': { michael@0: 'nativeType': 'nsXHREventTarget', michael@0: 'headerFile': 'nsXMLHttpRequest.h', michael@0: 'concrete': False michael@0: }, michael@0: michael@0: 'XMLHttpRequestUpload': [ michael@0: { michael@0: 'nativeType': 'nsXMLHttpRequestUpload', michael@0: 'headerFile': 'nsXMLHttpRequest.h' michael@0: }, michael@0: { michael@0: 'workers': True, michael@0: }], michael@0: michael@0: 'XMLSerializer': { michael@0: 'nativeType': 'nsDOMSerializer', michael@0: }, michael@0: michael@0: 'XMLStylesheetProcessingInstruction': { michael@0: 'resultNotAddRefed': [ 'sheet' ] michael@0: }, michael@0: michael@0: 'XPathEvaluator': { michael@0: 'wrapperCache': False michael@0: }, michael@0: michael@0: 'XULDocument': { michael@0: 'headerFile': 'XULDocument.h' michael@0: }, michael@0: michael@0: 'XULElement': { michael@0: 'nativeType': 'nsXULElement', michael@0: 'resultNotAddRefed': [ 'controllers', 'style' ] michael@0: }, michael@0: michael@0: #################################### michael@0: # Test Interfaces of various sorts # michael@0: #################################### michael@0: michael@0: 'TestInterface' : { michael@0: # Keep this in sync with TestExampleInterface michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False, michael@0: 'resultNotAddRefed': [ 'receiveWeakSelf', 'receiveWeakNullableSelf', michael@0: 'receiveWeakOther', 'receiveWeakNullableOther', michael@0: 'receiveWeakExternal', 'receiveWeakNullableExternal', michael@0: 'ReceiveWeakCallbackInterface', michael@0: 'ReceiveWeakNullableCallbackInterface', michael@0: 'receiveWeakCastableObjectSequence', michael@0: 'receiveWeakNullableCastableObjectSequence', michael@0: 'receiveWeakCastableObjectNullableSequence', michael@0: 'receiveWeakNullableCastableObjectNullableSequence' ], michael@0: 'binaryNames': { 'methodRenamedFrom': 'methodRenamedTo', michael@0: 'attributeGetterRenamedFrom': 'attributeGetterRenamedTo', michael@0: 'attributeRenamedFrom': 'attributeRenamedTo' } michael@0: }, michael@0: michael@0: 'TestParentInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False, michael@0: }, michael@0: michael@0: 'TestChildInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False, michael@0: }, michael@0: michael@0: 'TestCImplementedInterface' : { michael@0: 'headerFile': 'TestCImplementedInterface.h', michael@0: 'register': False, michael@0: }, michael@0: michael@0: 'TestCImplementedInterface2' : { michael@0: 'headerFile': 'TestCImplementedInterface.h', michael@0: 'register': False, michael@0: }, michael@0: michael@0: 'TestJSImplInterface' : { michael@0: # Keep this in sync with TestExampleInterface michael@0: 'headerFile': 'TestJSImplGenBinding.h', michael@0: 'register': False, michael@0: 'resultNotAddRefed': [ 'receiveWeakSelf', 'receiveWeakNullableSelf', michael@0: 'receiveWeakOther', 'receiveWeakNullableOther', michael@0: 'receiveWeakExternal', 'receiveWeakNullableExternal', michael@0: 'ReceiveWeakCallbackInterface', michael@0: 'ReceiveWeakNullableCallbackInterface', michael@0: 'receiveWeakCastableObjectSequence', michael@0: 'receiveWeakNullableCastableObjectSequence', michael@0: 'receiveWeakCastableObjectNullableSequence', michael@0: 'receiveWeakNullableCastableObjectNullableSequence' ], michael@0: 'binaryNames': { 'methodRenamedFrom': 'methodRenamedTo', michael@0: 'attributeGetterRenamedFrom': 'attributeGetterRenamedTo', michael@0: 'attributeRenamedFrom': 'attributeRenamedTo' } michael@0: }, michael@0: michael@0: 'TestJSImplInterface2' : { michael@0: 'headerFile': 'TestJSImplGenBinding.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestJSImplInterface3' : { michael@0: 'headerFile': 'TestJSImplGenBinding.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestJSImplInterface4' : { michael@0: 'headerFile': 'TestJSImplGenBinding.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestJSImplInterface5' : { michael@0: 'headerFile': 'TestJSImplGenBinding.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestJSImplInterface6' : { michael@0: 'headerFile': 'TestJSImplGenBinding.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestNavigator' : { michael@0: 'headerFile': 'TestJSImplGenBinding.h', michael@0: 'register' : False michael@0: }, michael@0: michael@0: 'TestNavigatorWithConstructor' : { michael@0: 'headerFile': 'TestJSImplGenBinding.h', michael@0: 'register' : False michael@0: }, michael@0: michael@0: 'TestExternalInterface' : { michael@0: 'nativeType': 'mozilla::dom::TestExternalInterface', michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestNonWrapperCacheInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False, michael@0: 'wrapperCache': False michael@0: }, michael@0: michael@0: 'IndirectlyImplementedInterface': { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False, michael@0: 'castable': False, michael@0: 'concrete': False michael@0: }, michael@0: michael@0: 'OnlyForUseInConstructor' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'ImplementedInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'concrete': False, michael@0: 'register': False, michael@0: }, michael@0: michael@0: 'ImplementedInterfaceParent' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'concrete': False, michael@0: 'register': False michael@0: }, michael@0: michael@0: 'DiamondImplements' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'concrete': False, michael@0: 'register': False michael@0: }, michael@0: michael@0: 'DiamondBranch1A' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'concrete': False, michael@0: 'register': False michael@0: }, michael@0: michael@0: 'DiamondBranch1B' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'concrete': False, michael@0: 'register': False michael@0: }, michael@0: michael@0: 'DiamondBranch2A' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'concrete': False, michael@0: 'register': False michael@0: }, michael@0: michael@0: 'DiamondBranch2B' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'concrete': False, michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestIndexedGetterInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestNamedGetterInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestIndexedGetterAndSetterAndNamedGetterInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestIndexedAndNamedGetterInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestIndexedSetterInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestNamedSetterInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestIndexedAndNamedSetterInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestIndexedAndNamedGetterAndSetterInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False, michael@0: }, michael@0: michael@0: 'TestRenamedInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False, michael@0: 'nativeType': 'nsRenamedInterface' michael@0: }, michael@0: michael@0: 'TestIndexedDeleterInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestIndexedDeleterWithRetvalInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestNamedDeleterInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestNamedDeleterWithRetvalInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestIndexedAndNamedDeleterInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestCppKeywordNamedMethodsInterface' : { michael@0: 'headerFile': 'TestBindingHeader.h', michael@0: 'register': False michael@0: }, michael@0: michael@0: 'TestExampleInterface' : { michael@0: # Keep this in sync with TestInterface michael@0: 'headerFile': 'TestExampleInterface-example.h', michael@0: 'register': False, michael@0: 'resultNotAddRefed': [ 'receiveWeakSelf', 'receiveWeakNullableSelf', michael@0: 'receiveWeakOther', 'receiveWeakNullableOther', michael@0: 'receiveWeakExternal', 'receiveWeakNullableExternal', michael@0: 'ReceiveWeakCallbackInterface', michael@0: 'ReceiveWeakNullableCallbackInterface', michael@0: 'receiveWeakCastableObjectSequence', michael@0: 'receiveWeakNullableCastableObjectSequence', michael@0: 'receiveWeakCastableObjectNullableSequence', michael@0: 'receiveWeakNullableCastableObjectNullableSequence' ], michael@0: 'binaryNames': { 'methodRenamedFrom': 'methodRenamedTo', michael@0: 'attributeGetterRenamedFrom': 'attributeGetterRenamedTo', michael@0: 'attributeRenamedFrom': 'attributeRenamedTo' } michael@0: }, michael@0: michael@0: 'TestExampleProxyInterface' : { michael@0: 'headerFile': 'TestExampleProxyInterface-example.h', michael@0: 'register': False michael@0: } michael@0: } michael@0: michael@0: # These are temporary, until they've been converted to use new DOM bindings michael@0: def addExternalIface(iface, nativeType=None, headerFile=None, michael@0: notflattened=False): michael@0: if iface in DOMInterfaces: michael@0: raise Exception('Interface declared both as WebIDL and External interface') michael@0: domInterface = { michael@0: 'concrete': False michael@0: } michael@0: if not nativeType is None: michael@0: domInterface['nativeType'] = nativeType michael@0: if not headerFile is None: michael@0: domInterface['headerFile'] = headerFile michael@0: domInterface['notflattened'] = notflattened michael@0: DOMInterfaces[iface] = domInterface michael@0: michael@0: addExternalIface('ApplicationCache', nativeType='nsIDOMOfflineResourceList') michael@0: addExternalIface('Counter') michael@0: addExternalIface('CSSRule') michael@0: addExternalIface('mozIDOMApplication', nativeType='mozIDOMApplication', headerFile='nsIDOMApplicationRegistry.h') michael@0: addExternalIface('CSSRuleList') michael@0: addExternalIface('RTCDataChannel', nativeType='nsIDOMDataChannel') michael@0: addExternalIface('File') michael@0: addExternalIface('HitRegionOptions', nativeType='nsISupports') michael@0: addExternalIface('imgINotificationObserver', nativeType='imgINotificationObserver') michael@0: addExternalIface('imgIRequest', nativeType='imgIRequest', notflattened=True) michael@0: addExternalIface('MenuBuilder', nativeType='nsIMenuBuilder', notflattened=True) michael@0: addExternalIface('MozBoxObject', nativeType='nsIBoxObject') michael@0: addExternalIface('MozControllers', nativeType='nsIControllers') michael@0: addExternalIface('MozFrameLoader', nativeType='nsIFrameLoader', notflattened=True) michael@0: addExternalIface('MozFrameRequestCallback', nativeType='nsIFrameRequestCallback', michael@0: notflattened=True) michael@0: addExternalIface('MozIccInfo', headerFile='nsIDOMIccInfo.h') michael@0: addExternalIface('MozMobileConnection', headerFile='nsIDOMMobileConnection.h') michael@0: addExternalIface('MozMobileMessageManager', headerFile='nsIDOMMobileMessageManager.h') michael@0: addExternalIface('MozObserver', nativeType='nsIObserver', notflattened=True) michael@0: addExternalIface('MozRDFCompositeDataSource', nativeType='nsIRDFCompositeDataSource', michael@0: notflattened=True) michael@0: addExternalIface('MozRDFResource', nativeType='nsIRDFResource', notflattened=True) michael@0: addExternalIface('MozTreeBoxObject', nativeType='nsITreeBoxObject', michael@0: notflattened=True) michael@0: addExternalIface('MozTreeColumn', nativeType='nsITreeColumn', michael@0: headerFile='nsITreeColumns.h') michael@0: addExternalIface('MozVoicemailStatus') michael@0: addExternalIface('MozWakeLockListener', headerFile='nsIDOMWakeLockListener.h') michael@0: addExternalIface('MozXULTemplateBuilder', nativeType='nsIXULTemplateBuilder') michael@0: addExternalIface('nsIBrowserDOMWindow', nativeType='nsIBrowserDOMWindow', michael@0: notflattened=True) michael@0: addExternalIface('nsIControllers', nativeType='nsIControllers') michael@0: addExternalIface('nsIDOMCrypto', nativeType='nsIDOMCrypto', michael@0: headerFile='Crypto.h') michael@0: addExternalIface('nsIInputStreamCallback', nativeType='nsIInputStreamCallback', michael@0: headerFile='nsIAsyncInputStream.h') michael@0: addExternalIface('nsIMessageBroadcaster', nativeType='nsIMessageBroadcaster', michael@0: headerFile='nsIMessageManager.h', notflattened=True) michael@0: addExternalIface('nsISelectionListener', nativeType='nsISelectionListener') michael@0: addExternalIface('nsIStreamListener', nativeType='nsIStreamListener', notflattened=True) michael@0: addExternalIface('nsISupports', nativeType='nsISupports') michael@0: addExternalIface('nsIDocShell', nativeType='nsIDocShell', notflattened=True) michael@0: addExternalIface('nsIEditor', nativeType='nsIEditor', notflattened=True) michael@0: addExternalIface('nsIVariant', nativeType='nsIVariant', notflattened=True) michael@0: addExternalIface('OutputStream', nativeType='nsIOutputStream', michael@0: notflattened=True) michael@0: addExternalIface('Principal', nativeType='nsIPrincipal', michael@0: headerFile='nsIPrincipal.h', notflattened=True) michael@0: addExternalIface('StackFrame', nativeType='nsIStackFrame', michael@0: headerFile='nsIException.h', notflattened=True) michael@0: addExternalIface('SVGNumber') michael@0: addExternalIface('URI', nativeType='nsIURI', headerFile='nsIURI.h', michael@0: notflattened=True) michael@0: addExternalIface('UserDataHandler') michael@0: addExternalIface('XPathResult', nativeType='nsISupports') michael@0: addExternalIface('XPathExpression') michael@0: addExternalIface('XPathNSResolver') michael@0: addExternalIface('XULCommandDispatcher')