2012-03-30 21:42:20 -07:00
|
|
|
# DOM Bindings Configuration.
|
|
|
|
#
|
|
|
|
# The WebIDL interfaces are defined in dom/webidl. For each such interface, there
|
|
|
|
# is a corresponding entry in the configuration table below. The configuration
|
|
|
|
# table maps each interface name to a |descriptor| or list of |descriptor|s.
|
|
|
|
#
|
|
|
|
# Valid fields for all descriptors:
|
|
|
|
# * nativeType - The native type (concrete class or XPCOM interface) that
|
|
|
|
# instances of this interface will unwrap to (required).
|
|
|
|
# * headerFile - The file in which the nativeType is declared (defaults
|
|
|
|
# to an educated guess).
|
|
|
|
# * castable - Indicates whether the value in the wrapper can be cast to
|
|
|
|
# nativeType, or whether it needs to be QI-ed (defaults to True
|
|
|
|
# for everything but callback interfaces).
|
|
|
|
# * concrete - Indicates whether there exist objects with this interface as
|
|
|
|
# their primary interface (defaults to True).
|
|
|
|
# * prefable - Indicates whether this binding is subject to the about:config
|
|
|
|
# pref, or whether it's always enabled (defaults to False).
|
|
|
|
# * workers - Indicates whether the descriptor is intended to be used for
|
|
|
|
# worker threads (defaults to false).
|
|
|
|
# * customTrace - The native class will use a custom trace hook (defaults to
|
|
|
|
# true for workers, false otherwise).
|
|
|
|
# * customFinalize - The native class will use a custom finalize hook
|
|
|
|
# (defaults to true for workers, false otherwise).
|
|
|
|
# * notflattened - The native type does not have nsIClassInfo, so when
|
|
|
|
# wrapping it the right IID needs to be passed in.
|
|
|
|
#
|
|
|
|
# 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
|
|
|
|
#
|
|
|
|
# * infallible - attributes and methods specified in the .webidl file that
|
|
|
|
# cannot fail and therefore do not require the final nsresult&
|
|
|
|
# argument
|
|
|
|
# * implicitJSContext - attributes and methods specified in the .webidl file
|
|
|
|
# that require a JSContext as the first argument
|
|
|
|
# * resultNotAddRefed - attributes and methods specified in the .webidl file
|
|
|
|
# that do not AddRef the return value
|
|
|
|
|
|
|
|
DOMInterfaces = {
|
|
|
|
|
|
|
|
'XMLHttpRequest': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsXMLHttpRequest',
|
|
|
|
'prefable': True,
|
|
|
|
'infallible': {
|
|
|
|
'all': [
|
|
|
|
'readyState', 'withCredentials', 'abort', 'statusText',
|
|
|
|
'getAllResponseHeaders', 'overrideMimeType', 'mozBackgroundRequest',
|
|
|
|
'multipart', 'channel', 'upload', 'status'
|
|
|
|
],
|
|
|
|
'getterOnly': [
|
|
|
|
'responseType', 'timeout', 'onreadystatechange'
|
|
|
|
]
|
|
|
|
},
|
|
|
|
'implicitJSContext': {
|
|
|
|
'all': [
|
2012-01-14 09:43:00 -08:00
|
|
|
'response', 'getInterface', 'send', 'sendAsBinary'
|
2012-03-30 21:42:20 -07:00
|
|
|
],
|
|
|
|
'setterOnly': [
|
|
|
|
'onreadystatechange'
|
|
|
|
]
|
|
|
|
},
|
|
|
|
'resultNotAddRefed': [ 'upload', 'responseXML' ]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'nativeType': 'mozilla::dom::workers::XMLHttpRequest',
|
|
|
|
'headerFile': 'mozilla/dom/workers/bindings/XMLHttpRequest.h',
|
|
|
|
'infallible': [
|
|
|
|
'readyState', 'statusText'
|
|
|
|
]
|
|
|
|
}],
|
|
|
|
|
|
|
|
'XMLHttpRequestUpload': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsXMLHttpRequestUpload',
|
|
|
|
'headerFile': 'nsXMLHttpRequest.h',
|
|
|
|
'prefable': True
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'nativeType': 'mozilla::dom::workers::XMLHttpRequestUpload',
|
|
|
|
'headerFile': 'mozilla/dom/workers/bindings/XMLHttpRequestUpload.h'
|
|
|
|
}],
|
|
|
|
|
|
|
|
'MozChannel': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsIChannel',
|
|
|
|
'prefable': True,
|
|
|
|
'castable': False,
|
|
|
|
'notflattened': True
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'nativeType': 'JSObject',
|
|
|
|
'headerFile': 'jsapi.h',
|
|
|
|
'castable': False
|
|
|
|
}],
|
|
|
|
|
|
|
|
'InputStream': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsIInputStream',
|
|
|
|
'prefable': True,
|
|
|
|
'castable': False,
|
|
|
|
'notflattened': True
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'nativeType': 'JSObject',
|
|
|
|
'headerFile': 'jsapi.h',
|
|
|
|
'castable': False
|
|
|
|
}],
|
|
|
|
|
|
|
|
'Document': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsIDocument',
|
|
|
|
'prefable': True,
|
|
|
|
'castable': False
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'nativeType': 'JSObject',
|
|
|
|
'headerFile': 'jsapi.h',
|
|
|
|
'castable': False
|
|
|
|
}],
|
|
|
|
|
|
|
|
'Blob': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsIDOMBlob',
|
|
|
|
'headerFile': 'nsIDOMFile.h',
|
|
|
|
'prefable': True,
|
|
|
|
'castable': False
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'nativeType': 'JSObject',
|
|
|
|
'headerFile': 'jsapi.h',
|
|
|
|
'castable': False
|
|
|
|
}],
|
|
|
|
|
|
|
|
'FormData': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsIDOMFormData',
|
|
|
|
'prefable': True,
|
|
|
|
'castable': False
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'nativeType': 'JSObject',
|
|
|
|
'headerFile': 'jsapi.h',
|
|
|
|
'castable': False
|
|
|
|
}],
|
|
|
|
|
|
|
|
'EventTarget': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsDOMEventTargetHelper',
|
|
|
|
'hasInstanceInterface': 'nsIDOMEventTarget',
|
|
|
|
'concrete': False,
|
|
|
|
'prefable': True,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'nativeType': 'mozilla::dom::workers::EventTarget',
|
|
|
|
'headerFile': 'mozilla/dom/workers/bindings/EventTarget.h',
|
|
|
|
'concrete': False
|
|
|
|
}],
|
|
|
|
|
|
|
|
'Event': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsIDOMEvent',
|
|
|
|
'prefable': True,
|
|
|
|
'castable': False
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'nativeType': 'JSObject',
|
|
|
|
'headerFile': 'jsapi.h',
|
|
|
|
'castable': False
|
|
|
|
}],
|
|
|
|
|
|
|
|
'EventListener': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsIDOMEventListener',
|
|
|
|
'prefable': True
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'nativeType': 'JSObject',
|
|
|
|
'headerFile': 'jsapi.h'
|
|
|
|
}],
|
|
|
|
|
|
|
|
'XMLHttpRequestEventTarget': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsXHREventTarget',
|
|
|
|
'headerFile': 'nsXMLHttpRequest.h',
|
|
|
|
'concrete': False,
|
|
|
|
'prefable': True,
|
|
|
|
'infallible': {
|
|
|
|
'getterOnly': [
|
|
|
|
'onabort', 'onerror', 'onload', 'onloadstart', 'onprogress',
|
|
|
|
'ontimeout', 'onloadend'
|
|
|
|
]
|
|
|
|
},
|
|
|
|
'implicitJSContext': {
|
|
|
|
'setterOnly': [
|
|
|
|
'onabort', 'onerror', 'onload', 'onloadstart', 'onprogress',
|
|
|
|
'ontimeout', 'onloadend'
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'concrete': False,
|
|
|
|
'nativeType': 'mozilla::dom::workers::XMLHttpRequestEventTarget',
|
|
|
|
'headerFile': 'mozilla/dom/workers/bindings/XMLHttpRequestEventTarget.h'
|
|
|
|
}],
|
|
|
|
|
|
|
|
'IID': [
|
|
|
|
{
|
|
|
|
'nativeType': 'nsIJSIID',
|
|
|
|
'headerFile': 'xpcjsid.h',
|
|
|
|
'prefable': True,
|
|
|
|
'castable': False
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'workers': True,
|
|
|
|
'nativeType': 'JSObject',
|
|
|
|
'headerFile': 'jsapi.h',
|
|
|
|
'castable': False
|
|
|
|
}],
|
|
|
|
|
|
|
|
}
|