1 # -*- Mode:Python; tab-width:8; indent-tabs-mode:nil -*- */
2 # vim: set ts=8 sts=4 et sw=4 tw=80: */
3 # This Source Code Form is subject to the terms of the Mozilla Public
4 # License, v. 2.0. If a copy of the MPL was not distributed with this
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 # DOM Bindings Configuration.
9 # The WebIDL interfaces are defined in dom/webidl. For interfaces requiring
10 # special handling, there are corresponding entries in the configuration table
11 # below. The configuration table maps each interface name to a |descriptor|.
13 # Valid fields for all descriptors:
14 # * nativeType - The native type (concrete class or XPCOM interface) that
15 # instances of this interface will unwrap to. If not
16 # specified, defaults to 'nsIDOM' followed by the interface
17 # name for external interfaces and
18 # 'mozilla::dom::InterfaceName' for everything else.
19 # * headerFile - The file in which the nativeType is declared (defaults
20 # to an educated guess).
21 # * concrete - Indicates whether there exist JS objects with this interface as
22 # their primary interface (and hence whose prototype is this
23 # interface's prototype object). Always False for callback
24 # interfaces. Defaults to True for leaf interfaces and
25 # interfaces with constructors, false otherwise.
26 # * notflattened - The native type does not have nsIClassInfo, so when
27 # wrapping it the right IID needs to be passed in.
28 # Only relevant for callback interfaces.
29 # * register - True if this binding should be registered. Defaults to true.
30 # * wrapperCache: True if this object is a wrapper cache. Objects that are
31 # not can only be returned from a limited set of methods,
32 # cannot be prefable, and must ensure that they disallow
33 # XPConnect wrapping. Always false for callback interfaces.
34 # Defaults to true for non-callback descriptors.
35 # * implicitJSContext - Llist of names of attributes and methods specified in
36 # the .webidl file that require a JSContext as the first
39 # The value for an interface is a dictionary which specifies the
40 # descriptor to use when generating that interface's binding.
45 'implicitJSContext': [ 'throwIfAborted' ]
53 'nativeType': 'mozilla::dom::archivereader::ArchiveReader',
57 'nativeType': 'mozilla::dom::archivereader::ArchiveRequest',
61 'implicitJSContext': [ 'copyToChannel' ],
64 'AudioBufferSourceNode': {
65 'implicitJSContext': [ 'buffer' ],
69 'nativeType': 'mozilla::dom::Worklet',
72 'AudioWorkletGlobalScope': {
73 'implicitJSContext': [ 'registerProcessor' ],
77 'headerFile': 'mozilla/dom/BarProps.h',
81 'nativeType': 'mozilla::dom::AudioContext',
85 'nativeType': 'mozilla::dom::battery::BatteryManager',
86 'headerFile': 'BatteryManager.h'
94 'implicitJSContext': [ 'add', 'addAll', 'match', 'matchAll', 'put',
96 'nativeType': 'mozilla::dom::cache::Cache',
100 'implicitJSContext': [ 'match' ],
101 'nativeType': 'mozilla::dom::cache::CacheStorage',
104 'CanvasRenderingContext2D': {
105 'implicitJSContext': [
106 'createImageData', 'getImageData', 'isPointInPath', 'isPointInStroke'
111 'nativeType': 'nsDOMCaretPosition',
115 'nativeType': 'mozilla::extensions::ChannelWrapper',
122 'ClonedErrorHolder': {
123 'wrapperCache': False
127 'nativeType': 'mozilla::dom::Console',
131 'implicitJSContext': ['clear', 'count', 'countReset', 'groupEnd', 'time', 'timeEnd'],
135 'implicitJSContext': [ 'buffer' ],
143 'headerFile': 'Crypto.h'
147 'nativeType': 'nsDOMCSSDeclaration'
150 'CSSConditionRule': {
151 'nativeType': 'mozilla::css::ConditionRule',
152 'headerFile': 'mozilla/css/GroupRule.h',
156 'nativeType': 'mozilla::css::GroupRule',
160 'wrapperCache': False
164 'nativeType': 'mozilla::css::Rule'
167 'CSSStyleDeclaration': {
168 'nativeType': 'nsICSSDeclaration',
169 # Concrete because of the font-face mess.
174 'nativeType': 'mozilla::BindingStyleRule',
178 'nativeType': 'mozilla::StyleSheet',
181 'CustomElementRegistry': {
182 'implicitJSContext': ['define'],
185 'DebuggerNotification': {
188 'CallbackDebuggerNotification': {
192 'DedicatedWorkerGlobalScope': {
193 'headerFile': 'mozilla/dom/WorkerScope.h',
196 'DeviceAcceleration': {
197 'headerFile': 'mozilla/dom/DeviceMotionEvent.h',
200 'DeviceRotationRate': {
201 'headerFile': 'mozilla/dom/DeviceMotionEvent.h',
205 'nativeType': 'mozilla::devtools::DominatorTree'
209 'implicitJSContext': [ 'filename', 'lineNumber', 'stack' ],
212 'DOMMatrixReadOnly': {
213 'headerFile': 'mozilla/dom/DOMMatrix.h',
216 'DOMPointReadOnly': {
217 'headerFile': 'mozilla/dom/DOMPoint.h',
221 'headerFile': 'mozilla/dom/DOMRect.h',
225 'headerFile': 'mozilla/dom/DOMRect.h',
233 'nativeType': 'nsDOMStringMap'
237 'nativeType': 'nsDOMTokenList',
245 'implicitJSContext': [ 'preventDefault' ],
249 'jsImplParent': 'mozilla::DOMEventTargetHelper',
253 'headerFile': 'mozilla/dom/DOMException.h',
254 'implicitJSContext': [ '__stringifier', 'filename', 'lineNumber', 'stack' ],
258 'headerFile': 'mozilla/dom/ServiceWorkerEvents.h',
259 'implicitJSContext': [ 'waitUntil' ],
262 'ExtendableMessageEvent': {
263 'headerFile': 'mozilla/dom/ServiceWorkerEvents.h',
267 'headerFile': 'ServiceWorkerEvents.h',
268 'implicitJSContext': [ 'respondWith' ],
272 'implicitJSContext': [ 'readAsArrayBuffer' ],
276 'wrapperCache': False,
284 'nativeType': 'mozilla::intl::FluentBundle',
287 'FluentBundleAsyncIterator': {
288 'headerFile': 'mozilla/intl/L10nRegistry.h',
289 'nativeType': 'mozilla::intl::FluentBundleAsyncIterator',
292 'FluentBundleIterator': {
293 'headerFile': 'mozilla/intl/L10nRegistry.h',
294 'nativeType': 'mozilla::intl::FluentBundleIterator',
298 'headerFile': 'mozilla/intl/FluentBundle.h',
299 'nativeType': 'mozilla::intl::FluentPattern',
303 'headerFile': 'mozilla/intl/FluentResource.h',
304 'nativeType': 'mozilla::intl::FluentResource',
308 'implicitJSContext': [ 'load' ],
311 'FontFaceSetIterator': {
312 'wrapperCache': False,
316 'nativeType': 'nsFrameLoader',
319 'FuzzingFunctions': {
320 # The codegen is dumb, and doesn't understand that this interface is only a
321 # collection of static methods, so we have this `concrete: False` hack.
323 'headerFile': 'mozilla/dom/FuzzingFunctions.h',
327 'nativeType': 'mozilla::devtools::HeapSnapshot'
331 'headerFile': 'nsHistory.h',
332 'nativeType': 'nsHistory'
336 'nativeType': 'mozilla::dom::HTMLSharedElement'
340 'nativeType': 'nsIHTMLCollection',
341 # nsContentList.h pulls in nsIHTMLCollection.h
342 'headerFile': 'nsContentList.h',
346 'HTMLDirectoryElement': {
347 'nativeType': 'mozilla::dom::HTMLSharedElement'
350 'HTMLDListElement': {
351 'nativeType' : 'mozilla::dom::HTMLSharedListElement'
355 'nativeType': 'nsHTMLDocument',
360 'nativeType': 'nsGenericHTMLElement',
364 'nativeType': 'mozilla::dom::HTMLSharedElement'
368 'nativeType': 'mozilla::dom::HTMLSharedElement'
371 'HTMLOListElement': {
372 'nativeType' : 'mozilla::dom::HTMLSharedListElement'
375 'HTMLParamElement': {
376 'nativeType': 'mozilla::dom::HTMLSharedElement'
379 'HTMLQuoteElement': {
380 'nativeType': 'mozilla::dom::HTMLSharedElement'
383 'HTMLUListElement': {
384 'nativeType' : 'mozilla::dom::HTMLSharedListElement'
388 'implicitJSContext': [ 'delete' ],
392 'IDBCursorWithValue': {
393 'nativeType': 'mozilla::dom::IDBCursor',
397 'implicitJSContext': [ 'transaction', 'createMutableFile' ],
401 'implicitJSContext': [ 'open', 'deleteDatabase', 'openForPrincipal',
402 'deleteForPrincipal' ],
406 'wrapperCache': False,
410 'IDBLocaleAwareKeyRange': {
411 'headerFile': 'IDBKeyRange.h',
412 'wrapperCache': False,
416 'implicitJSContext': [ 'clear' ],
419 'IDBOpenDBRequest': {
420 'headerFile': 'IDBRequest.h'
427 'IDBVersionChangeEvent': {
428 'headerFile': 'IDBEvents.h',
432 'wrapperCache': False,
436 'nativeType': 'nsIInputStream',
440 'InspectorFontFace': {
441 'wrapperCache': False,
444 'IntersectionObserver': {
445 'nativeType': 'mozilla::dom::DOMIntersectionObserver',
448 'IntersectionObserverEntry': {
449 'nativeType': 'mozilla::dom::DOMIntersectionObserverEntry',
450 'headerFile': 'DOMIntersectionObserver.h',
458 'headerFile': 'mozilla/intl/FileSource.h',
459 'nativeType': 'mozilla::intl::L10nFileSource',
463 'nativeType': 'mozilla::intl::L10nRegistry',
466 'LegacyMozTCPSocket': {
467 'headerFile': 'TCPSocket.h',
468 'wrapperCache': False,
472 'nativeType': 'mozilla::intl::Localization',
476 'nativeType': 'mozilla::extensions::MatchGlob',
480 'nativeType': 'mozilla::extensions::MatchPattern',
484 'headerFile': 'mozilla/extensions/MatchPattern.h',
485 'nativeType': 'mozilla::extensions::MatchPatternSet',
488 'MediaCapabilitiesInfo' : {
489 'wrapperCache': False,
493 'headerFile': 'DOMMediaStream.h',
494 'nativeType': 'mozilla::DOMMediaStream'
498 'headerFile': 'MediaStreamList.h',
502 'headerFile': 'MediaRecorder.h',
506 'headerFile' : 'nsMimeTypeArray.h',
507 'nativeType': 'nsMimeType',
511 'nativeType': 'nsMimeTypeArray',
514 'MozCanvasPrintState': {
515 'headerFile': 'mozilla/dom/HTMLCanvasElement.h',
516 'nativeType': 'mozilla::dom::HTMLCanvasPrintState',
520 'nativeType': 'nsIChannel',
524 'MozDocumentMatcher': {
525 'nativeType': 'mozilla::extensions::MozDocumentMatcher',
526 'headerFile': 'mozilla/extensions/WebExtensionContentScript.h',
529 'MozDocumentObserver': {
530 'nativeType': 'mozilla::extensions::DocumentObserver',
534 'nativeType': 'mozilla::dom::ipc::SharedMap',
538 'MozWritableSharedMap': {
539 'headerFile': 'mozilla/dom/ipc/SharedMap.h',
540 'nativeType': 'mozilla::dom::ipc::WritableSharedMap',
543 'MozSharedMapChangeEvent': {
544 'nativeType': 'mozilla::dom::ipc::SharedMapChangeEvent',
547 'MozStorageAsyncStatementParams': {
548 'headerFile': 'mozilla/storage/mozStorageAsyncStatementParams.h',
549 'nativeType': 'mozilla::storage::AsyncStatementParams',
552 'MozStorageStatementParams': {
553 'headerFile': 'mozilla/storage/mozStorageStatementParams.h',
554 'nativeType': 'mozilla::storage::StatementParams',
557 'MozStorageStatementRow': {
558 'headerFile': 'mozilla/storage/mozStorageStatementRow.h',
559 'nativeType': 'mozilla::storage::StatementRow',
562 'MozQueryInterface': {
563 'wrapperCache': False,
566 'MutationObserver': {
567 'nativeType': 'nsDOMMutationObserver',
571 'nativeType': 'nsDOMMutationRecord',
572 'headerFile': 'nsDOMMutationObserver.h',
576 'nativeType': 'nsDOMAttributeMap',
579 'NetworkInformation': {
580 'nativeType': 'mozilla::dom::network::Connection',
584 'nativeType': 'nsINode',
588 'wrapperCache': False,
592 'nativeType': 'nsINodeList',
596 'OfflineAudioContext': {
597 'nativeType': 'mozilla::dom::AudioContext',
600 'OfflineResourceList': {
601 'nativeType': 'nsDOMOfflineResourceList',
604 'PaintRequestList': {
605 'headerFile': 'mozilla/dom/PaintRequest.h',
609 'nativeType': 'mozilla::dom::CanvasPath',
610 'headerFile': 'CanvasPath.h'
613 'PeerConnectionImpl': {
614 'nativeType': 'mozilla::PeerConnectionImpl',
615 'headerFile': 'PeerConnectionImpl.h',
616 'wrapperCache': False
619 'PerformanceResourceTiming' : {
632 'nativeType': 'mozilla::TransceiverImpl',
633 'headerFile': 'TransceiverImpl.h'
637 'headerFile' : 'nsPluginArray.h',
638 'nativeType': 'nsPluginElement',
642 'nativeType': 'nsPluginArray',
646 'nativeType': 'nsIPluginTag',
650 'nativeType': 'mozilla::dom::FeaturePolicy',
653 'PromiseNativeHandler': {
654 'wrapperCache': False,
658 'headerFile': 'ServiceWorkerEvents.h',
662 'headerFile': 'ServiceWorkerEvents.h',
666 'nativeType': 'nsRange',
669 # Bug 1734174: We should validate ReadableStream usage of implicitJSContext.
671 'implicitJSContext': ['getReader', 'tee'],
674 'ReadableStreamDefaultController': {
675 'implicitJSContext': ['close'],
678 'ReadableStreamDefaultReader': {
679 'implicitJSContext': ['read'],
683 'implicitJSContext': [ 'arrayBuffer', 'blob', 'formData', 'json', 'text' ],
686 'ResizeObserverEntry': {
687 'nativeType': 'mozilla::dom::ResizeObserverEntry',
688 'headerFile': 'mozilla/dom/ResizeObserver.h',
691 'ResizeObserverSize': {
692 'nativeType': 'mozilla::dom::ResizeObserverSize',
693 'headerFile': 'mozilla/dom/ResizeObserver.h',
697 'implicitJSContext': [ 'arrayBuffer', 'blob', 'formData', 'json', 'text',
698 'clone', 'cloneUnfiltered' ],
702 'nativeType': 'nsDOMDataChannel',
705 'RTCDtlsTransport': {
706 'headerFile': 'RTCDtlsTransport.h'
710 'headerFile': 'RTCDTMFSender.h'
714 'headerFile': 'RTCRtpReceiver.h'
718 'headerFile': 'RTCStatsReport.h'
722 'nativeType': 'nsScreen',
725 'ServiceWorkerGlobalScope': {
726 'headerFile': 'mozilla/dom/WorkerScope.h',
729 'ServiceWorkerRegistration': {
730 'implicitJSContext': [ 'pushManager' ],
733 'SharedWorkerGlobalScope': {
734 'headerFile': 'mozilla/dom/WorkerScope.h',
738 'nativeType': 'mozilla::extensions::StreamFilter',
741 'StreamFilterDataEvent': {
742 'nativeType': 'mozilla::extensions::StreamFilterDataEvent',
743 'headerFile': 'mozilla/extensions/StreamFilterEvents.h',
746 'StructuredCloneHolder': {
747 'nativeType': 'mozilla::dom::StructuredCloneBlob',
748 'wrapperCache': False,
752 'nativeType': 'mozilla::StyleSheet',
753 'headerFile': 'mozilla/StyleSheetInlines.h',
756 'SVGAnimatedAngle': {
757 'nativeType': 'mozilla::dom::DOMSVGAnimatedAngle',
758 'headerFile': 'DOMSVGAnimatedAngle.h',
761 'SVGAnimatedBoolean': {
762 'nativeType': 'mozilla::dom::DOMSVGAnimatedBoolean',
763 'headerFile': 'DOMSVGAnimatedBoolean.h',
766 'SVGAnimatedEnumeration': {
767 'nativeType': 'mozilla::dom::DOMSVGAnimatedEnumeration',
768 'headerFile': 'DOMSVGAnimatedEnumeration.h',
771 'SVGAnimatedInteger': {
772 'nativeType': 'mozilla::dom::DOMSVGAnimatedInteger',
773 'headerFile': 'DOMSVGAnimatedInteger.h',
776 'SVGAnimatedPreserveAspectRatio': {
777 'nativeType': 'mozilla::dom::DOMSVGAnimatedPreserveAspectRatio',
778 'headerFile': 'SVGAnimatedPreserveAspectRatio.h'
781 'SVGAnimatedLength': {
782 'nativeType': 'mozilla::dom::DOMSVGAnimatedLength',
783 'headerFile': 'DOMSVGAnimatedLength.h',
786 'SVGAnimatedLengthList': {
787 'nativeType': 'mozilla::dom::DOMSVGAnimatedLengthList',
788 'headerFile': 'DOMSVGAnimatedLengthList.h',
791 'SVGAnimatedNumber': {
792 'nativeType': 'mozilla::dom::DOMSVGAnimatedNumber',
793 'headerFile': 'DOMSVGAnimatedNumber.h',
796 'SVGAnimatedNumberList': {
797 'nativeType': 'mozilla::dom::DOMSVGAnimatedNumberList',
798 'headerFile': 'DOMSVGAnimatedNumberList.h'
801 'SVGAnimatedString': {
802 'nativeType': 'mozilla::dom::DOMSVGAnimatedString',
803 'headerFile': 'DOMSVGAnimatedString.h',
806 'SVGAnimatedTransformList': {
807 'nativeType': 'mozilla::dom::DOMSVGAnimatedTransformList',
808 'headerFile': 'DOMSVGAnimatedTransformList.h'
812 'nativeType': 'mozilla::dom::DOMSVGAngle',
813 'headerFile': 'DOMSVGAngle.h'
820 'SVGFEFuncAElement': {
821 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h',
824 'SVGFEFuncBElement': {
825 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h',
828 'SVGFEFuncGElement': {
829 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h',
832 'SVGFEFuncRElement': {
833 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h',
837 'nativeType': 'mozilla::dom::DOMSVGLength',
838 'headerFile': 'DOMSVGLength.h'
842 'nativeType': 'mozilla::dom::DOMSVGLengthList',
843 'headerFile': 'DOMSVGLengthList.h'
846 'SVGLinearGradientElement': {
847 'headerFile': 'mozilla/dom/SVGGradientElement.h',
851 'nativeType': 'mozilla::dom::DOMSVGNumber',
852 'headerFile': 'DOMSVGNumber.h',
856 'nativeType': 'mozilla::dom::DOMSVGNumberList',
857 'headerFile': 'DOMSVGNumberList.h'
861 'nativeType': 'mozilla::dom::DOMSVGPathSeg',
862 'headerFile': 'DOMSVGPathSeg.h',
865 'SVGPathSegClosePath': {
866 'nativeType': 'mozilla::dom::DOMSVGPathSegClosePath',
867 'headerFile': 'DOMSVGPathSeg.h'
870 'SVGPathSegMovetoAbs': {
871 'nativeType': 'mozilla::dom::DOMSVGPathSegMovetoAbs',
872 'headerFile': 'DOMSVGPathSeg.h'
875 'SVGPathSegMovetoRel': {
876 'nativeType': 'mozilla::dom::DOMSVGPathSegMovetoRel',
877 'headerFile': 'DOMSVGPathSeg.h'
880 'SVGPathSegLinetoAbs': {
881 'nativeType': 'mozilla::dom::DOMSVGPathSegLinetoAbs',
882 'headerFile': 'DOMSVGPathSeg.h'
885 'SVGPathSegLinetoRel': {
886 'nativeType': 'mozilla::dom::DOMSVGPathSegLinetoRel',
887 'headerFile': 'DOMSVGPathSeg.h'
890 'SVGPathSegCurvetoCubicAbs': {
891 'nativeType': 'mozilla::dom::DOMSVGPathSegCurvetoCubicAbs',
892 'headerFile': 'DOMSVGPathSeg.h'
895 'SVGPathSegCurvetoCubicRel': {
896 'nativeType': 'mozilla::dom::DOMSVGPathSegCurvetoCubicRel',
897 'headerFile': 'DOMSVGPathSeg.h'
900 'SVGPathSegCurvetoQuadraticAbs': {
901 'nativeType': 'mozilla::dom::DOMSVGPathSegCurvetoQuadraticAbs',
902 'headerFile': 'DOMSVGPathSeg.h'
905 'SVGPathSegCurvetoQuadraticRel': {
906 'nativeType': 'mozilla::dom::DOMSVGPathSegCurvetoQuadraticRel',
907 'headerFile': 'DOMSVGPathSeg.h'
910 'SVGPathSegArcAbs': {
911 'nativeType': 'mozilla::dom::DOMSVGPathSegArcAbs',
912 'headerFile': 'DOMSVGPathSeg.h'
915 'SVGPathSegArcRel': {
916 'nativeType': 'mozilla::dom::DOMSVGPathSegArcRel',
917 'headerFile': 'DOMSVGPathSeg.h'
920 'SVGPathSegLinetoHorizontalAbs': {
921 'nativeType': 'mozilla::dom::DOMSVGPathSegLinetoHorizontalAbs',
922 'headerFile': 'DOMSVGPathSeg.h'
925 'SVGPathSegLinetoHorizontalRel': {
926 'nativeType': 'mozilla::dom::DOMSVGPathSegLinetoHorizontalRel',
927 'headerFile': 'DOMSVGPathSeg.h'
930 'SVGPathSegLinetoVerticalAbs': {
931 'nativeType': 'mozilla::dom::DOMSVGPathSegLinetoVerticalAbs',
932 'headerFile': 'DOMSVGPathSeg.h'
935 'SVGPathSegLinetoVerticalRel': {
936 'nativeType': 'mozilla::dom::DOMSVGPathSegLinetoVerticalRel',
937 'headerFile': 'DOMSVGPathSeg.h'
940 'SVGPathSegCurvetoCubicSmoothAbs': {
941 'nativeType': 'mozilla::dom::DOMSVGPathSegCurvetoCubicSmoothAbs',
942 'headerFile': 'DOMSVGPathSeg.h'
945 'SVGPathSegCurvetoCubicSmoothRel': {
946 'nativeType': 'mozilla::dom::DOMSVGPathSegCurvetoCubicSmoothRel',
947 'headerFile': 'DOMSVGPathSeg.h'
950 'SVGPathSegCurvetoQuadraticSmoothAbs': {
951 'nativeType': 'mozilla::dom::DOMSVGPathSegCurvetoQuadraticSmoothAbs',
952 'headerFile': 'DOMSVGPathSeg.h'
955 'SVGPathSegCurvetoQuadraticSmoothRel': {
956 'nativeType': 'mozilla::dom::DOMSVGPathSegCurvetoQuadraticSmoothRel',
957 'headerFile': 'DOMSVGPathSeg.h'
961 'nativeType': 'mozilla::dom::DOMSVGPathSegList',
962 'headerFile': 'DOMSVGPathSegList.h'
966 'nativeType': 'mozilla::dom::DOMSVGPoint',
967 'headerFile': 'DOMSVGPoint.h'
971 'nativeType': 'mozilla::dom::DOMSVGPointList',
972 'headerFile': 'DOMSVGPointList.h'
975 'SVGPreserveAspectRatio': {
976 'nativeType': 'mozilla::dom::DOMSVGPreserveAspectRatio',
977 'headerFile': 'SVGPreserveAspectRatio.h'
980 'SVGRadialGradientElement': {
981 'headerFile': 'mozilla/dom/SVGGradientElement.h',
985 'nativeType': 'mozilla::dom::DOMSVGStringList',
986 'headerFile': 'DOMSVGStringList.h',
990 'nativeType': 'mozilla::dom::DOMSVGTransform',
991 'headerFile': 'DOMSVGTransform.h',
994 'SVGTransformList': {
995 'nativeType': 'mozilla::dom::DOMSVGTransformList',
996 'headerFile': 'DOMSVGTransformList.h'
1000 # Maybe should be a namespace.
1005 # Part of a kinda complicated legacy setup for putting some constants on
1006 # both interfaces and this thing, which ideally should be a namespace.
1011 'headerFile': 'mozilla/dom/IOUtils.h',
1014 'TelemetryStopwatch': {
1015 'nativeType': 'mozilla::telemetry::Stopwatch',
1019 'wrapperCache': False
1023 # Total hack to allow binding code to realize that nsTextNode can
1024 # in fact be cast to Text.
1025 'headerFile': 'nsTextNode.h',
1029 'wrapperCache': False
1033 'wrapperCache': False
1037 'wrapperCache': False
1041 'headerFile': 'mozilla/dom/TouchEvent.h',
1045 'nativeType': 'nsTreeColumn',
1046 'headerFile': 'nsTreeColumns.h',
1050 'nativeType': 'nsTreeColumns',
1053 'TreeContentView': {
1054 'nativeType': 'nsTreeContentView',
1058 'wrapperCache': False,
1061 'UserInteraction': {
1062 'nativeType': 'mozilla::telemetry::UserInteractionStopwatch',
1063 'headerFile': 'mozilla/telemetry/Stopwatch.h',
1067 'nativeType': 'mozilla::dom::VisualViewport',
1071 'nativeType': 'mozilla::dom::TextTrackCue'
1075 'nativeType': 'mozilla::dom::TextTrackRegion',
1078 'WebExtensionContentScript': {
1079 'nativeType': 'mozilla::extensions::WebExtensionContentScript',
1082 'WebExtensionPolicy': {
1083 'nativeType': 'mozilla::extensions::WebExtensionPolicy',
1087 'nativeType': 'mozilla::dom::Client',
1090 'WindowGlobalChild': {
1091 'implicitJSContext': ['getActor'],
1094 'WindowGlobalParent': {
1095 'implicitJSContext': ['getActor'],
1098 'WebGLActiveInfo': {
1099 'nativeType': 'mozilla::WebGLActiveInfoJS',
1100 'headerFile': 'ClientWebGLContext.h',
1101 'wrapperCache': False
1105 'nativeType': 'mozilla::WebGLBufferJS',
1106 'headerFile': 'ClientWebGLContext.h'
1109 'EXT_float_blend': {
1110 'nativeType': 'mozilla::ClientWebGLExtensionFloatBlend',
1111 'headerFile': 'ClientWebGLExtensions.h'
1114 'EXT_texture_compression_bptc': {
1115 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureBPTC',
1116 'headerFile': 'ClientWebGLExtensions.h'
1119 'EXT_texture_compression_rgtc': {
1120 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureRGTC',
1121 'headerFile': 'ClientWebGLExtensions.h'
1124 'EXT_texture_norm16': {
1125 'nativeType': 'mozilla::ClientWebGLExtensionTextureNorm16',
1126 'headerFile': 'ClientWebGLExtensions.h'
1129 'OES_fbo_render_mipmap': {
1130 'nativeType': 'mozilla::ClientWebGLExtensionFBORenderMipmap',
1131 'headerFile': 'ClientWebGLExtensions.h'
1135 'nativeType': 'mozilla::ClientWebGLExtensionMultiview',
1136 'headerFile': 'ClientWebGLExtensions.h'
1139 'WEBGL_compressed_texture_astc': {
1140 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureASTC',
1141 'headerFile': 'ClientWebGLExtensions.h'
1144 'WEBGL_compressed_texture_etc': {
1145 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureES3',
1146 'headerFile': 'ClientWebGLExtensions.h'
1149 'WEBGL_compressed_texture_etc1': {
1150 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureETC1',
1151 'headerFile': 'ClientWebGLExtensions.h'
1154 'WEBGL_compressed_texture_pvrtc': {
1155 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTexturePVRTC',
1156 'headerFile': 'ClientWebGLExtensions.h'
1159 'WEBGL_compressed_texture_s3tc': {
1160 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureS3TC',
1161 'headerFile': 'ClientWebGLExtensions.h'
1164 'WEBGL_compressed_texture_s3tc_srgb': {
1165 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureS3TC_SRGB',
1166 'headerFile': 'ClientWebGLExtensions.h'
1169 'WEBGL_depth_texture': {
1170 'nativeType': 'mozilla::ClientWebGLExtensionDepthTexture',
1171 'headerFile': 'ClientWebGLExtensions.h'
1174 'WEBGL_debug_renderer_info': {
1175 'nativeType': 'mozilla::ClientWebGLExtensionDebugRendererInfo',
1176 'headerFile': 'ClientWebGLExtensions.h'
1179 'WEBGL_debug_shaders': {
1180 'nativeType': 'mozilla::ClientWebGLExtensionDebugShaders',
1181 'headerFile': 'ClientWebGLExtensions.h'
1184 'WEBGL_explicit_present': {
1185 'nativeType': 'mozilla::ClientWebGLExtensionExplicitPresent',
1186 'headerFile': 'ClientWebGLExtensions.h'
1189 'OES_draw_buffers_indexed': {
1190 'nativeType': 'mozilla::ClientWebGLExtensionDrawBuffersIndexed',
1191 'headerFile': 'ClientWebGLExtensions.h'
1194 'OES_element_index_uint': {
1195 'nativeType': 'mozilla::ClientWebGLExtensionElementIndexUint',
1196 'headerFile': 'ClientWebGLExtensions.h'
1200 'nativeType': 'mozilla::ClientWebGLExtensionFragDepth',
1201 'headerFile': 'ClientWebGLExtensions.h'
1204 'WEBGL_lose_context': {
1205 'nativeType': 'mozilla::ClientWebGLExtensionLoseContext',
1206 'headerFile': 'ClientWebGLExtensions.h'
1210 'nativeType': 'mozilla::ClientWebGLExtensionSRGB',
1211 'headerFile': 'ClientWebGLExtensions.h'
1214 'OES_standard_derivatives': {
1215 'nativeType': 'mozilla::ClientWebGLExtensionStandardDerivatives',
1216 'headerFile': 'ClientWebGLExtensions.h'
1219 'EXT_shader_texture_lod': {
1220 'nativeType': 'mozilla::ClientWebGLExtensionShaderTextureLod',
1221 'headerFile': 'ClientWebGLExtensions.h'
1224 'EXT_texture_filter_anisotropic': {
1225 'nativeType': 'mozilla::ClientWebGLExtensionTextureFilterAnisotropic',
1226 'headerFile': 'ClientWebGLExtensions.h'
1229 'OES_texture_float': {
1230 'nativeType': 'mozilla::ClientWebGLExtensionTextureFloat',
1231 'headerFile': 'ClientWebGLExtensions.h'
1234 'OES_texture_float_linear': {
1235 'nativeType': 'mozilla::ClientWebGLExtensionTextureFloatLinear',
1236 'headerFile': 'ClientWebGLExtensions.h'
1239 'OES_texture_half_float': {
1240 'nativeType': 'mozilla::ClientWebGLExtensionTextureHalfFloat',
1241 'headerFile': 'ClientWebGLExtensions.h'
1244 'OES_texture_half_float_linear': {
1245 'nativeType': 'mozilla::ClientWebGLExtensionTextureHalfFloatLinear',
1246 'headerFile': 'ClientWebGLExtensions.h'
1249 'WEBGL_color_buffer_float': {
1250 'nativeType': 'mozilla::ClientWebGLExtensionColorBufferFloat',
1251 'headerFile': 'ClientWebGLExtensions.h'
1254 'EXT_color_buffer_half_float': {
1255 'nativeType': 'mozilla::ClientWebGLExtensionColorBufferHalfFloat',
1256 'headerFile': 'ClientWebGLExtensions.h'
1259 'EXT_color_buffer_float': {
1260 'nativeType': 'mozilla::ClientWebGLExtensionEXTColorBufferFloat',
1261 'headerFile': 'ClientWebGLExtensions.h'
1264 'WEBGL_draw_buffers': {
1265 'nativeType': 'mozilla::ClientWebGLExtensionDrawBuffers',
1266 'headerFile': 'ClientWebGLExtensions.h'
1269 'OES_vertex_array_object': {
1270 'nativeType': 'mozilla::ClientWebGLExtensionVertexArray',
1271 'headerFile': 'ClientWebGLExtensions.h'
1274 'ANGLE_instanced_arrays': {
1275 'nativeType': 'mozilla::ClientWebGLExtensionInstancedArrays',
1276 'headerFile': 'ClientWebGLExtensions.h'
1279 'EXT_blend_minmax': {
1280 'nativeType': 'mozilla::ClientWebGLExtensionBlendMinMax',
1281 'headerFile': 'ClientWebGLExtensions.h'
1284 'EXT_disjoint_timer_query': {
1285 'nativeType': 'mozilla::ClientWebGLExtensionDisjointTimerQuery',
1286 'headerFile': 'ClientWebGLExtensions.h'
1290 'nativeType': 'mozilla::ClientWebGLExtensionMOZDebug',
1291 'headerFile': 'ClientWebGLExtensions.h'
1294 'WebGLFramebuffer': {
1295 'nativeType': 'mozilla::WebGLFramebufferJS',
1296 'headerFile': 'ClientWebGLContext.h'
1300 'nativeType': 'mozilla::WebGLProgramJS',
1301 'headerFile': 'ClientWebGLContext.h'
1305 'nativeType': 'mozilla::WebGLQueryJS',
1306 'headerFile': 'ClientWebGLContext.h'
1309 'WebGLRenderbuffer': {
1310 'nativeType': 'mozilla::WebGLRenderbufferJS',
1311 'headerFile': 'ClientWebGLContext.h'
1314 'WebGLRenderingContext': {
1315 'nativeType': 'mozilla::ClientWebGLContext',
1316 'headerFile': 'ClientWebGLContext.h',
1319 'WebGL2RenderingContext': {
1320 'nativeType': 'mozilla::ClientWebGLContext',
1321 'headerFile': 'ClientWebGLContext.h',
1325 'nativeType': 'mozilla::WebGLSamplerJS',
1326 'headerFile': 'ClientWebGLContext.h'
1330 'nativeType': 'mozilla::WebGLShaderJS',
1331 'headerFile': 'ClientWebGLContext.h'
1334 'WebGLShaderPrecisionFormat': {
1335 'nativeType': 'mozilla::WebGLShaderPrecisionFormatJS',
1336 'headerFile': 'ClientWebGLContext.h',
1337 'wrapperCache': False
1341 'nativeType': 'mozilla::WebGLSyncJS',
1342 'headerFile': 'ClientWebGLContext.h'
1346 'nativeType': 'mozilla::WebGLTextureJS',
1347 'headerFile': 'ClientWebGLContext.h'
1350 'WebGLTransformFeedback': {
1351 'nativeType': 'mozilla::WebGLTransformFeedbackJS',
1352 'headerFile': 'ClientWebGLContext.h'
1355 'WebGLUniformLocation': {
1356 'nativeType': 'mozilla::WebGLUniformLocationJS',
1357 'headerFile': 'ClientWebGLContext.h'
1360 'WebGLVertexArrayObject': {
1361 'nativeType': 'mozilla::WebGLVertexArrayJS',
1362 'headerFile': 'ClientWebGLContext.h'
1368 'nativeType': 'mozilla::webgpu::Instance',
1371 'nativeType': 'mozilla::webgpu::Adapter',
1374 'nativeType': 'mozilla::webgpu::BindGroup',
1376 'GPUBindGroupLayout': {
1377 'nativeType': 'mozilla::webgpu::BindGroupLayout',
1380 'nativeType': 'mozilla::webgpu::Buffer',
1381 'implicitJSContext': [ 'unmap' ],
1383 'GPUCanvasContext': {
1384 'nativeType': 'mozilla::webgpu::CanvasContext',
1386 'GPUCommandBuffer': {
1387 'nativeType': 'mozilla::webgpu::CommandBuffer',
1389 'GPUCommandEncoder': {
1390 'nativeType': 'mozilla::webgpu::CommandEncoder',
1392 'GPUCompilationInfo': {
1393 'nativeType': 'mozilla::webgpu::CompilationInfo',
1395 'GPUCompilationMessage': {
1396 'nativeType': 'mozilla::webgpu::CompilationMessage',
1398 'GPUComputePassEncoder': {
1399 'nativeType': 'mozilla::webgpu::ComputePassEncoder',
1401 'GPUComputePipeline': {
1402 'nativeType': 'mozilla::webgpu::ComputePipeline',
1405 'nativeType': 'mozilla::webgpu::Device',
1407 'GPUDeviceLostInfo': {
1408 'nativeType': 'mozilla::webgpu::DeviceLostInfo',
1410 'GPUOutOfMemoryError': {
1411 'nativeType': 'mozilla::webgpu::OutOfMemoryError',
1413 'GPUPipelineLayout': {
1414 'nativeType': 'mozilla::webgpu::PipelineLayout',
1417 'nativeType': 'mozilla::webgpu::QuerySet',
1420 'nativeType': 'mozilla::webgpu::Queue',
1422 'GPURenderBundle': {
1423 'nativeType': 'mozilla::webgpu::RenderBundle',
1425 'GPURenderBundleEncoder': {
1426 'nativeType': 'mozilla::webgpu::RenderBundleEncoder',
1428 'GPURenderPassEncoder': {
1429 'nativeType': 'mozilla::webgpu::RenderPassEncoder',
1431 'GPURenderPipeline': {
1432 'nativeType': 'mozilla::webgpu::RenderPipeline',
1435 'nativeType': 'mozilla::webgpu::Sampler',
1437 'GPUShaderModule': {
1438 'nativeType': 'mozilla::webgpu::ShaderModule',
1440 'GPUSupportedFeatures': {
1441 'nativeType': 'mozilla::webgpu::SupportedFeatures',
1443 'GPUSupportedLimits': {
1444 'nativeType': 'mozilla::webgpu::SupportedLimits',
1447 'nativeType': 'mozilla::webgpu::Texture',
1450 'nativeType': 'mozilla::webgpu::TextureView',
1452 'GPUValidationError': {
1453 'nativeType': 'mozilla::webgpu::ValidationError',
1462 'GPUBlendOperation': {
1471 'GPUCompareFunction': {
1480 'GPUInputStepMode': {
1489 'GPUPrimitiveTopology': {
1495 'GPUStencilOperation': {
1501 'GPUTextureDimension': {
1504 'GPUTextureFormat': {
1507 'GPUTextureUsage': {
1510 'GPUVertexFormat': {
1517 'nativeType': 'mozilla::glean::Glean',
1518 'headerFile': 'mozilla/glean/bindings/Glean.h',
1521 'nativeType': 'mozilla::glean::Category',
1522 'headerFile': 'mozilla/glean/bindings/Category.h',
1525 'nativeType': 'mozilla::glean::GleanPings',
1526 'headerFile': 'mozilla/glean/bindings/GleanPings.h',
1529 'nativeType': 'mozilla::glean::GleanLabeled',
1530 'headerFile': 'mozilla/glean/bindings/Labeled.h',
1535 'WebrtcGlobalInformation': {
1536 'nativeType': 'mozilla::dom::WebrtcGlobalInformation',
1537 'headerFile': 'WebrtcGlobalInformation.h',
1541 'nativeType': 'nsGlobalWindowInner',
1542 'headerFile': 'nsGlobalWindow.h',
1543 'implicitJSContext': [
1544 'requestIdleCallback'
1553 'nativeType': 'mozilla::dom::WindowProxyHolder',
1554 'headerFile': 'mozilla/dom/WindowProxyHolder.h',
1559 'nativeType': 'nsWindowRoot'
1562 'WorkerDebuggerGlobalScope': {
1563 'headerFile': 'mozilla/dom/WorkerScope.h',
1564 'implicitJSContext': [
1565 'dump', 'reportError', 'setConsoleEventHandler',
1569 'WorkerGlobalScope': {
1570 'headerFile': 'mozilla/dom/WorkerScope.h',
1571 'implicitJSContext': [ 'importScripts' ],
1575 # Paint worklets just use the Worklet interface.
1577 'implicitJSContext': [ 'addModule' ],
1581 'nativeType': 'nsDOMSerializer',
1582 'wrapperCache': False
1586 'wrapperCache': False,
1590 'XPathExpression': {
1591 'wrapperCache': False,
1598 'XRReferenceSpace': {
1607 'nativeType': 'txMozillaXSLTProcessor',
1611 'nativeType': 'nsXULElement',
1616 'ExtensionBrowser': {
1617 'headerFile': 'mozilla/extensions/ExtensionBrowser.h',
1618 'nativeType': 'mozilla::extensions::ExtensionBrowser',
1621 'ExtensionMockAPI': {
1622 'headerFile': 'mozilla/extensions/ExtensionMockAPI.h',
1623 'nativeType': 'mozilla::extensions::ExtensionMockAPI',
1626 'ExtensionEventManager': {
1627 'headerFile': 'mozilla/extensions/ExtensionEventManager.h',
1628 'nativeType': 'mozilla::extensions::ExtensionEventManager',
1632 'headerFile': 'mozilla/extensions/ExtensionPort.h',
1633 'nativeType': 'mozilla::extensions::ExtensionPort',
1636 'ExtensionRuntime': {
1637 'headerFile': 'mozilla/extensions/ExtensionRuntime.h',
1638 'nativeType': 'mozilla::extensions::ExtensionRuntime',
1642 'headerFile': 'mozilla/extensions/ExtensionTest.h',
1643 'nativeType': 'mozilla::extensions::ExtensionTest',
1646 'ExtensionAlarms': {
1647 'headerFile': 'mozilla/extensions/ExtensionAlarms.h',
1648 'nativeType': 'mozilla::extensions::ExtensionAlarms',
1651 ####################################
1652 # Test Interfaces of various sorts #
1653 ####################################
1656 # Keep this in sync with TestExampleInterface
1657 'headerFile': 'TestBindingHeader.h',
1661 'TestParentInterface' : {
1662 'headerFile': 'TestBindingHeader.h',
1666 'TestChildInterface' : {
1667 'headerFile': 'TestBindingHeader.h',
1671 'TestCImplementedInterface' : {
1672 'headerFile': 'TestCImplementedInterface.h',
1676 'TestCImplementedInterface2' : {
1677 'headerFile': 'TestCImplementedInterface.h',
1681 'TestJSImplInterface' : {
1682 # Keep this in sync with TestExampleInterface
1683 'headerFile': 'TestJSImplGenBinding.h',
1687 'TestJSImplInterface2' : {
1688 'headerFile': 'TestJSImplGenBinding.h',
1692 'TestJSImplInterface3' : {
1693 'headerFile': 'TestJSImplGenBinding.h',
1697 'TestJSImplInterface4' : {
1698 'headerFile': 'TestJSImplGenBinding.h',
1702 'TestJSImplInterface5' : {
1703 'headerFile': 'TestJSImplGenBinding.h',
1707 'TestJSImplInterface6' : {
1708 'headerFile': 'TestJSImplGenBinding.h',
1713 'headerFile': 'TestJSImplGenBinding.h',
1717 'TestNavigatorWithConstructor' : {
1718 'headerFile': 'TestJSImplGenBinding.h',
1722 'TestExternalInterface' : {
1723 'nativeType': 'mozilla::dom::TestExternalInterface',
1724 'headerFile': 'TestBindingHeader.h',
1728 'TestNonWrapperCacheInterface' : {
1729 'headerFile': 'TestBindingHeader.h',
1731 'wrapperCache': False
1734 'IndirectlyImplementedInterface': {
1735 'headerFile': 'TestBindingHeader.h',
1740 'OnlyForUseInConstructor' : {
1741 'headerFile': 'TestBindingHeader.h',
1745 'ImplementedInterface' : {
1746 'headerFile': 'TestBindingHeader.h',
1750 'ImplementedInterfaceParent' : {
1751 'headerFile': 'TestBindingHeader.h',
1755 'DiamondImplements' : {
1756 'headerFile': 'TestBindingHeader.h',
1760 'DiamondBranch1A' : {
1761 'headerFile': 'TestBindingHeader.h',
1765 'DiamondBranch1B' : {
1766 'headerFile': 'TestBindingHeader.h',
1770 'DiamondBranch2A' : {
1771 'headerFile': 'TestBindingHeader.h',
1775 'DiamondBranch2B' : {
1776 'headerFile': 'TestBindingHeader.h',
1780 'TestIndexedGetterInterface' : {
1781 'headerFile': 'TestBindingHeader.h',
1785 'TestNamedGetterInterface' : {
1786 'headerFile': 'TestBindingHeader.h',
1790 'TestIndexedGetterAndSetterAndNamedGetterInterface' : {
1791 'headerFile': 'TestBindingHeader.h',
1795 'TestIndexedAndNamedGetterInterface' : {
1796 'headerFile': 'TestBindingHeader.h',
1800 'TestIndexedSetterInterface' : {
1801 'headerFile': 'TestBindingHeader.h',
1805 'TestNamedSetterInterface' : {
1806 'headerFile': 'TestBindingHeader.h',
1810 'TestIndexedAndNamedSetterInterface' : {
1811 'headerFile': 'TestBindingHeader.h',
1815 'TestIndexedAndNamedGetterAndSetterInterface' : {
1816 'headerFile': 'TestBindingHeader.h',
1820 'TestRenamedInterface' : {
1821 'headerFile': 'TestBindingHeader.h',
1823 'nativeType': 'nsRenamedInterface'
1826 'TestNamedDeleterInterface' : {
1827 'headerFile': 'TestBindingHeader.h',
1831 'TestNamedDeleterWithRetvalInterface' : {
1832 'headerFile': 'TestBindingHeader.h',
1836 'TestCppKeywordNamedMethodsInterface' : {
1837 'headerFile': 'TestBindingHeader.h',
1841 'TestExampleInterface' : {
1842 # Keep this in sync with TestInterface
1843 'headerFile': 'TestExampleInterface-example.h',
1847 'TestExampleWorkerInterface' : {
1848 'headerFile': 'TestExampleWorkerInterface-example.h',
1852 'TestExampleProxyInterface' : {
1853 'headerFile': 'TestExampleProxyInterface-example.h',
1857 'TestExampleThrowingConstructorInterface' : {
1858 'headerFile': 'TestExampleThrowingConstructorInterface-example.h',
1862 'TestDeprecatedInterface' : {
1863 # Keep this in sync with TestExampleInterface
1864 'headerFile': 'TestBindingHeader.h',
1868 'TestInterfaceWithPromiseConstructorArg' : {
1869 'headerFile': 'TestBindingHeader.h',
1873 'TestSecureContextInterface' : {
1874 # Keep this in sync with TestExampleInterface
1875 'headerFile': 'TestBindingHeader.h',
1880 'headerFile': 'TestBindingHeader.h',
1884 'TestRenamedNamespace' : {
1885 'headerFile': 'TestBindingHeader.h',
1889 'TestProtoObjectHackedNamespace' : {
1890 'headerFile': 'TestBindingHeader.h',
1894 'TestWorkerExposedInterface' : {
1895 'headerFile': 'TestBindingHeader.h',
1899 'TestHTMLConstructorInterface' : {
1900 'headerFile': 'TestBindingHeader.h',
1904 'TestThrowingConstructorInterface' : {
1905 'headerFile': 'TestBindingHeader.h',
1909 'TestCEReactionsInterface' : {
1910 'headerFile': 'TestBindingHeader.h',
1914 'TestAttributesOnTypes' : {
1915 'headerFile': 'TestBindingHeader.h',
1919 'TestPrefConstructorForInterface' : {
1920 'headerFile': 'TestBindingHeader.h',
1924 'TestConstructorForPrefInterface' : {
1925 'headerFile': 'TestBindingHeader.h',
1929 'TestPrefConstructorForDifferentPrefInterface' : {
1930 'headerFile': 'TestBindingHeader.h',
1934 'TestConstructorForSCInterface' : {
1935 'headerFile': 'TestBindingHeader.h',
1939 'TestSCConstructorForInterface' : {
1940 'headerFile': 'TestBindingHeader.h',
1944 'TestConstructorForFuncInterface' : {
1945 'headerFile': 'TestBindingHeader.h',
1949 'TestFuncConstructorForInterface' : {
1950 'headerFile': 'TestBindingHeader.h',
1954 'TestFuncConstructorForDifferentFuncInterface' : {
1955 'headerFile': 'TestBindingHeader.h',
1959 'TestPrefChromeOnlySCFuncConstructorForInterface' : {
1960 'headerFile': 'TestBindingHeader.h',
1965 # These are temporary, until they've been converted to use new DOM bindings
1966 def addExternalIface(iface, nativeType=None, headerFile=None,
1967 notflattened=False):
1968 if iface in DOMInterfaces:
1969 raise Exception('Interface declared both as WebIDL and External interface')
1973 if not nativeType is None:
1974 domInterface['nativeType'] = nativeType
1975 if not headerFile is None:
1976 domInterface['headerFile'] = headerFile
1977 domInterface['notflattened'] = notflattened
1978 DOMInterfaces[iface] = domInterface
1980 addExternalIface('Cookie', nativeType='nsICookie',
1981 headerFile='nsICookie.h', notflattened=True)
1982 addExternalIface('ContentSecurityPolicy', nativeType='nsIContentSecurityPolicy',
1984 addExternalIface('HitRegionOptions', nativeType='nsISupports')
1985 addExternalIface('imgINotificationObserver', nativeType='imgINotificationObserver')
1986 addExternalIface('imgIRequest', nativeType='imgIRequest', notflattened=True)
1987 addExternalIface('LoadContext', nativeType='nsILoadContext', notflattened=True)
1988 addExternalIface('LoadInfo', nativeType='nsILoadInfo',
1989 headerFile='nsILoadInfo.h', notflattened=True)
1990 addExternalIface('MenuBuilder', nativeType='nsIMenuBuilder', notflattened=True)
1991 addExternalIface('XULControllers', nativeType='nsIControllers', notflattened=True)
1992 addExternalIface('MozObserver', nativeType='nsIObserver', notflattened=True)
1993 addExternalIface('MozTreeView', nativeType='nsITreeView',
1994 headerFile='nsITreeView.h', notflattened=True)
1995 addExternalIface('MozWakeLockListener', headerFile='nsIDOMWakeLockListener.h')
1996 addExternalIface('nsIBrowserDOMWindow', nativeType='nsIBrowserDOMWindow',
1998 addExternalIface('nsIDOMWindowUtils', nativeType='nsIDOMWindowUtils', notflattened=True)
1999 addExternalIface('nsIEventTarget', nativeType='nsIEventTarget', notflattened=True)
2000 addExternalIface('nsIFile', nativeType='nsIFile', notflattened=True)
2001 addExternalIface('nsILoadGroup', nativeType='nsILoadGroup',
2002 headerFile='nsILoadGroup.h', notflattened=True)
2003 addExternalIface('nsIMediaDevice', nativeType='nsIMediaDevice',
2005 addExternalIface('nsIPrintSettings', nativeType='nsIPrintSettings',
2007 addExternalIface('nsISelectionListener', nativeType='nsISelectionListener')
2008 addExternalIface('nsIStreamListener', nativeType='nsIStreamListener', notflattened=True)
2009 addExternalIface('nsISocketTransport', nativeType='nsISocketTransport',
2011 addExternalIface('nsITransportProvider', nativeType='nsITransportProvider')
2012 addExternalIface('nsITreeSelection', nativeType='nsITreeSelection',
2014 addExternalIface('nsISupports', nativeType='nsISupports')
2015 addExternalIface('nsIDocShell', nativeType='nsIDocShell', notflattened=True)
2016 addExternalIface('nsIDOMProcessChild', nativeType='nsIDOMProcessChild', notflattened=True)
2017 addExternalIface('nsIDOMProcessParent', nativeType='nsIDOMProcessParent', notflattened=True)
2018 addExternalIface('nsIReferrerInfo', nativeType='nsIReferrerInfo', notflattened=True)
2019 addExternalIface('nsISecureBrowserUI', nativeType='nsISecureBrowserUI', notflattened=True)
2020 addExternalIface('nsIWebProgress', nativeType='nsIWebProgress', notflattened=True)
2021 addExternalIface('nsIWebNavigation', nativeType='nsIWebNavigation', notflattened=True)
2022 addExternalIface('nsIEditor', nativeType='nsIEditor', notflattened=True)
2023 addExternalIface('nsIVariant', nativeType='nsIVariant', notflattened=True)
2024 addExternalIface('nsIWebBrowserPersistDocumentReceiver',
2025 nativeType='nsIWebBrowserPersistDocumentReceiver',
2026 headerFile='nsIWebBrowserPersistDocument.h',
2028 addExternalIface('nsIWebProgressListener', nativeType='nsIWebProgressListener',
2030 addExternalIface('OutputStream', nativeType='nsIOutputStream',
2032 addExternalIface('Principal', nativeType='nsIPrincipal',
2033 headerFile='nsIPrincipal.h', notflattened=True)
2034 addExternalIface('StackFrame', nativeType='nsIStackFrame',
2035 headerFile='nsIException.h', notflattened=True)
2036 addExternalIface('RemoteTab', nativeType='nsIRemoteTab',
2038 addExternalIface('URI', nativeType='nsIURI', headerFile='nsIURI.h',
2040 addExternalIface('XULCommandDispatcher', notflattened=True)
2041 addExternalIface('nsISHistory', nativeType='nsISHistory', notflattened=True)
2042 addExternalIface('ReferrerInfo', nativeType='nsIReferrerInfo')
2043 addExternalIface('nsIPermissionDelegateHandler',
2044 nativeType='nsIPermissionDelegateHandler',
2046 addExternalIface('nsIOpenWindowInfo', nativeType='nsIOpenWindowInfo',
2048 addExternalIface('nsICookieJarSettings', nativeType='nsICookieJarSettings',
2050 addExternalIface('nsIGleanPing', headerFile='mozilla/glean/bindings/Ping.h',
2051 nativeType='nsIGleanPing', notflattened=True)
2052 addExternalIface('nsISessionStoreRestoreData',
2053 nativeType='nsISessionStoreRestoreData',
2054 headerFile='nsISessionStoreRestoreData.h', notflattened=True)