Mypal/dom/tests/mochitest/general/test_interfaces.html

1386 lines
62 KiB
HTML

<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=766694
-->
<head>
<meta charset="utf-8">
<title>Test for Bug 766694</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=766694">Mozilla Bug 766694</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script type="application/javascript">
/** Test for Bug 766694 **/
// This is a list of all interfaces that are exposed to every webpage.
// Please only add things to this list with great care and proper review
// from the associated module peers.
// This file lists global interfaces we want exposed and verifies they
// are what we intend. Each entry in the arrays below can either be a
// simple string with the interface name, or an object with a 'name'
// property giving the interface name as a string, and additional
// properties which qualify the exposure of that interface. For example:
//
// [
// "AGlobalInterface",
// {name: "ExperimentalThing", release: false},
// {name: "ReallyExperimentalThing", nightly: true},
// {name: "DesktopOnlyThing", desktop: true},
// {name: "FancyControl", xbl: true},
// {name: "DisabledEverywhere", disabled: true},
// ];
//
// See createInterfaceMap() below for a complete list of properties.
// IMPORTANT: Do not change this list without review from
// a JavaScript Engine peer!
var ecmaGlobals =
[
"Array",
"ArrayBuffer",
"Boolean",
"DataView",
"Date",
"Error",
"EvalError",
"Float32Array",
"Float64Array",
"Function",
// NB: We haven't bothered to resolve constants like Infinity and NaN on
// Xrayed windows (which are seen from the XBL scope). We could support
// this if needed with some refactoring.
{name: "Infinity", xbl: false},
"Int16Array",
"Int32Array",
"Int8Array",
"InternalError",
"Intl",
"Iterator",
"JSON",
"Map",
"Math",
{name: "NaN", xbl: false},
"Number",
"Object",
"Promise",
"Proxy",
"RangeError",
"ReferenceError",
"Reflect",
"RegExp",
"Set",
{name: "SharedArrayBuffer", release: false},
{name: "SIMD", nightly: true},
{name: "Atomics", release: false},
"StopIteration",
"String",
"Symbol",
"SyntaxError",
{name: "TypedObject", nightly: true},
"TypeError",
"Uint16Array",
"Uint32Array",
"Uint8Array",
"Uint8ClampedArray",
"URIError",
"WeakMap",
"WeakSet",
];
// IMPORTANT: Do not change the list above without review from
// a JavaScript Engine peer!
// IMPORTANT: Do not change the list below without review from a DOM peer,
// except to remove items from it!
//
// This is a list of interfaces that were prefixed with 'moz' instead of 'Moz'.
// We should never to that again, interfaces in the DOM start with an uppercase
// letter. If you think you need to add an interface here, DON'T. Rename your
// interface.
var legacyMozPrefixedInterfaces =
[
"mozContact",
"mozRTCIceCandidate",
"mozRTCPeerConnection",
"mozRTCSessionDescription",
];
// IMPORTANT: Do not change the list above without review from a DOM peer,
// except to remove items from it!
// IMPORTANT: Do not change the list below without review from a DOM peer!
var interfaceNamesInGlobalScope =
[
// IMPORTANT: Do not change this list without review from a DOM peer!
"AnalyserNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "Animation"},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "AnimationEffectReadOnly", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "AnimationEffectTiming", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "AnimationEffectTimingReadOnly", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"AnimationEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "AnimationPlaybackEvent", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "AnimationTimeline", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"Attr",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Audio",
// IMPORTANT: Do not change this list without review from a DOM peer!
"AudioBuffer",
// IMPORTANT: Do not change this list without review from a DOM peer!
"AudioContext",
// IMPORTANT: Do not change this list without review from a DOM peer!
"AudioBufferSourceNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"AudioDestinationNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"AudioListener",
// IMPORTANT: Do not change this list without review from a DOM peer!
"AudioNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"AudioParam",
// IMPORTANT: Do not change this list without review from a DOM peer!
"AudioProcessingEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"AudioStreamTrack",
// IMPORTANT: Do not change this list without review from a DOM peer!
"BarProp",
// IMPORTANT: Do not change this list without review from a DOM peer!
"BatteryManager",
// IMPORTANT: Do not change this list without review from a DOM peer!
"BeforeUnloadEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"BiquadFilterNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Blob",
// IMPORTANT: Do not change this list without review from a DOM peer!
"BlobEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "BoxObject", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"BroadcastChannel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Cache",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CacheStorage",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CanvasCaptureMediaStream",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CanvasGradient",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CanvasPattern",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CanvasRenderingContext2D",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CaretPosition",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CDATASection",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ChannelMergerNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ChannelSplitterNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CharacterData",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "ChromeNodeList", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "ChromeWindow", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"ClipboardEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CloseEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CommandEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Comment",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CompositionEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ConstantSourceNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Controllers",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ConvolverNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Crypto",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CryptoKey",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSS",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSS2Properties",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "CSSAnimation", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSConditionRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSCounterStyleRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSFontFaceRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSFontFeatureValuesRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSGroupingRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSImportRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSKeyframeRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSKeyframesRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSMediaRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSMozDocumentRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSNameSpaceRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSPageRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSPrimitiveValue",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "CSSPseudoElement", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSRuleList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSStyleDeclaration",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSStyleRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSStyleSheet",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSSupportsRule",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "CSSTransition", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSValue",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CSSValueList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CustomElementRegistry",
// IMPORTANT: Do not change this list without review from a DOM peer!
"CustomEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DataChannel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DataTransfer",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DataTransferItem",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DataTransferItemList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DelayNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DesktopNotification",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DesktopNotificationCenter",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DeviceLightEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DeviceMotionEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DeviceOrientationEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DeviceProximityEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "DeviceStorageAreaChangedEvent", desktop: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "DeviceStorageAreaListener", desktop: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "DeviceStorage", desktop: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "DeviceStorageChangeEvent", desktop: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"Directory",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Document",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DocumentFragment",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "DocumentTimeline", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"DocumentType",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "DOMConstructor", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMCursor",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMError",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMException",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMImplementation",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMMatrix",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMMatrixReadOnly",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMParser",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMPoint",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMPointReadOnly",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMQuad",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMRect",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMRectList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMRectReadOnly",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMRequest",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMStringList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMStringMap",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DOMTokenList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DragEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"DynamicsCompressorNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Element",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ErrorEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Event",
// IMPORTANT: Do not change this list without review from a DOM peer!
"EventSource",
// IMPORTANT: Do not change this list without review from a DOM peer!
"EventTarget",
// IMPORTANT: Do not change this list without review from a DOM peer!
"External",
// IMPORTANT: Do not change this list without review from a DOM peer!
"File",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FileList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FileReader",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FileSystem",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FileSystemDirectoryEntry",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FileSystemDirectoryReader",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FileSystemEntry",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FileSystemFileEntry",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FocusEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FormData",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FontFace",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FontFaceSet",
// IMPORTANT: Do not change this list without review from a DOM peer!
"FontFaceSetLoadEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"GainNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Gamepad",
// IMPORTANT: Do not change this list without review from a DOM peer!
"GamepadAxisMoveEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"GamepadButtonEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"GamepadButton",
// IMPORTANT: Do not change this list without review from a DOM peer!
"GamepadEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "GamepadPose", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"HashChangeEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Headers",
// IMPORTANT: Do not change this list without review from a DOM peer!
"History",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLAllCollection",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLAnchorElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLAppletElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLAreaElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLAudioElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLBaseElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLBodyElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLBRElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLButtonElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLCanvasElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLCollection",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLContentElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLDataElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLDataListElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLDetailsElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "HTMLDialogElement", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLDirectoryElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLDivElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLDListElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLDocument",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLEmbedElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLFieldSetElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLFontElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLFormControlsCollection",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLFormElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLFrameElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLFrameSetElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLHeadElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLHeadingElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLHRElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLHtmlElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLIFrameElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLImageElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLInputElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLLabelElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLLegendElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLLIElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLLinkElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLMapElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLMediaElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLMenuElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLMetaElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLMeterElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLModElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLObjectElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLOListElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLOptGroupElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLOptionElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLOptionsCollection",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLOutputElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLParagraphElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLParamElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLPreElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLPictureElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLProgressElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLQuoteElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLScriptElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLSelectElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLShadowElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLSourceElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLSpanElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLStyleElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLTableCaptionElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLTableCellElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLTableColElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLTableElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLTableRowElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLTableSectionElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLTemplateElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLTextAreaElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLTimeElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLTitleElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLTrackElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLUListElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLUnknownElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"HTMLVideoElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "IdleDeadline", nightly: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBCursor",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBCursorWithValue",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBDatabase",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBFactory",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBFileHandle",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBFileRequest",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBIndex",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBKeyRange",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBMutableFile",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBObjectStore",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBOpenDBRequest",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBRequest",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBTransaction",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IDBVersionChangeEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"IIRFilterNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Image",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ImageBitmap",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ImageBitmapRenderingContext",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "ImageCapture", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "ImageCaptureErrorEvent", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"ImageData",
// IMPORTANT: Do not change this list without review from a DOM peer!
"InputEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"InstallTrigger",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "IntersectionObserver", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "IntersectionObserverEntry", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"KeyEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"KeyboardEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "KeyframeEffectReadOnly", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "KeyframeEffect", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"LocalMediaStream",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Location",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaDeviceInfo",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaDevices",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaElementAudioSourceNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaError",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "MediaKeyError", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "MediaEncryptedEvent", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "MediaKeys", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "MediaKeySession", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "MediaKeySystemAccess", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "MediaKeyMessageEvent", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "MediaKeyStatusMap", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaQueryList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaRecorder",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaSource",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaStream",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaStreamAudioDestinationNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaStreamAudioSourceNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaStreamEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaStreamTrackEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MediaStreamTrack",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "MenuBoxObject", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"MessageChannel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MessageEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MessagePort",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MimeType",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MimeTypeArray",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MouseEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MouseScrollEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"mozRTCIceCandidate",
// IMPORTANT: Do not change this list without review from a DOM peer!
"mozRTCPeerConnection",
// IMPORTANT: Do not change this list without review from a DOM peer!
"mozRTCSessionDescription",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MutationEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MutationObserver",
// IMPORTANT: Do not change this list without review from a DOM peer!
"MutationRecord",
// IMPORTANT: Do not change this list without review from a DOM peer!
"NamedNodeMap",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Navigator",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "NetworkInformation", desktop: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"Node",
// IMPORTANT: Do not change this list without review from a DOM peer!
"NodeFilter",
// IMPORTANT: Do not change this list without review from a DOM peer!
"NodeIterator",
// IMPORTANT: Do not change this list without review from a DOM peer!
"NodeList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Notification",
// IMPORTANT: Do not change this list without review from a DOM peer!
"NotifyPaintEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "OffscreenCanvas", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"OfflineAudioCompletionEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"OfflineAudioContext",
// IMPORTANT: Do not change this list without review from a DOM peer!
"OfflineResourceList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Option",
// IMPORTANT: Do not change this list without review from a DOM peer!
"OscillatorNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PageTransitionEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PaintRequest",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PaintRequestList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PannerNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Path2D",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Performance",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PerformanceEntry",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PerformanceMark",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PerformanceMeasure",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PerformanceNavigation",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PerformanceNavigationTiming",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PerformanceObserver"
// IMPORTANT: Do not change this list without review from a DOM peer!
"PerformanceObserverEntryList"
// IMPORTANT: Do not change this list without review from a DOM peer!
"PerformanceResourceTiming",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PerformanceTiming",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PeriodicWave",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Permissions",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PermissionStatus",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Plugin",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PluginArray",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "PointerEvent", nightly: true, desktop: true, disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"PopStateEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"PopupBlockedEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "PopupBoxObject", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "PresentationDeviceInfoManager",
disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "Presentation", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "PresentationAvailability", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "PresentationConnection", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "PresentationConnectionAvailableEvent", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "PresentationConnectionClosedEvent", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "PresentationConnectionList", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "PresentationReceiver", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "PresentationRequest", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"ProcessingInstruction",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ProgressEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RadioNodeList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Range",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RecordErrorEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Rect",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Request",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Response",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RGBColor",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCCertificate",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCDataChannelEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCDTMFSender",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCDTMFToneChangeEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCIceCandidate",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCPeerConnection",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCPeerConnectionIceEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCRtpReceiver",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCRtpSender",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCSessionDescription",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCStatsReport",
// IMPORTANT: Do not change this list without review from a DOM peer!
"RTCTrackEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Screen",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ScreenOrientation",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ScriptProcessorNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ScrollAreaEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Selection",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SettingsLock",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ShadowRoot", // Bogus, but the test harness forces it on. See bug 1159768.
// IMPORTANT: Do not change this list without review from a DOM peer!
"SharedWorker",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SimpleGestureEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "SimpleTest", xbl: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"SourceBuffer",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SourceBufferList",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "SpeechSynthesisErrorEvent", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "SpeechSynthesisEvent", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "SpeechSynthesis", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "SpeechSynthesisUtterance", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "SpeechSynthesisVoice", android: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "SpecialPowers", xbl: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"StereoPannerNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Storage",
// IMPORTANT: Do not change this list without review from a DOM peer!
"StorageEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "StorageManager", nightly: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"StyleSheet",
// IMPORTANT: Do not change this list without review from a DOM peer!
"StyleSheetList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SubtleCrypto",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAngle",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedAngle",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedBoolean",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedEnumeration",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedInteger",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedLength",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedLengthList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedNumber",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedNumberList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedPreserveAspectRatio",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedRect",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedString",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimatedTransformList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimateElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimateMotionElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimateTransformElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGAnimationElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGCircleElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGClipPathElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGComponentTransferFunctionElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGDefsElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGDescElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGEllipseElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEBlendElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEColorMatrixElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEComponentTransferElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFECompositeElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEConvolveMatrixElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEDiffuseLightingElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEDisplacementMapElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEDistantLightElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEDropShadowElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEFloodElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEFuncAElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEFuncBElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEFuncGElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEFuncRElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEGaussianBlurElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEImageElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEMergeElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEMergeNodeElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEMorphologyElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEOffsetElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFEPointLightElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFESpecularLightingElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFESpotLightElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFETileElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFETurbulenceElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGFilterElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGForeignObjectElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGGElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGGradientElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGGraphicsElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGImageElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGLength",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGLengthList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGLinearGradientElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGLineElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGMarkerElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGMaskElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGMatrix",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGMetadataElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGMPathElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGNumber",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGNumberList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSeg",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegArcAbs",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegArcRel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegClosePath",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegCurvetoCubicAbs",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegCurvetoCubicRel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegCurvetoCubicSmoothAbs",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegCurvetoCubicSmoothRel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegCurvetoQuadraticAbs",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegCurvetoQuadraticRel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegCurvetoQuadraticSmoothAbs",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegCurvetoQuadraticSmoothRel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegLinetoAbs",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegLinetoHorizontalAbs",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegLinetoHorizontalRel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegLinetoRel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegLinetoVerticalAbs",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegLinetoVerticalRel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegMovetoAbs",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPathSegMovetoRel",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPatternElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPoint",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPointList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPolygonElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPolylineElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGPreserveAspectRatio",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGRadialGradientElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGRect",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGRectElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGScriptElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGSetElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGStopElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGStringList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGStyleElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGSVGElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGSwitchElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGSymbolElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGTextContentElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGTextElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGTextPathElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGTextPositioningElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGTitleElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGTransform",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGTransformList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGTSpanElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGUnitTypes",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGUseElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGViewElement",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGZoomAndPan",
// IMPORTANT: Do not change this list without review from a DOM peer!
"SVGZoomEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Text",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TextDecoder",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TextEncoder",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TextMetrics",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TextTrack",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TextTrackCue",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TextTrackCueList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TextTrackList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TimeEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TimeRanges",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Touch",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TouchEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TouchList",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TrackEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"TransitionEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "TreeColumn", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "TreeColumns", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "TreeContentView", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "TreeSelection", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"TreeWalker",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "U2F", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"UIEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"URL",
// IMPORTANT: Do not change this list without review from a DOM peer!
"URLSearchParams",
// IMPORTANT: Do not change this list without review from a DOM peer!
"UserProximityEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"ValidityState",
// IMPORTANT: Do not change this list without review from a DOM peer!
"VideoPlaybackQuality",
// IMPORTANT: Do not change this list without review from a DOM peer!
"VideoStreamTrack",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRDisplay", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRDisplayCapabilities", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VREyeParameters", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRFieldOfView", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRFrameData", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRPose", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRStageParameters", release: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"VTTCue",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VTTRegion", disabled: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
"WaveShaperNode",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLActiveInfo",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLBuffer",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLContextEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLFramebuffer",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLProgram",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLQuery",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLRenderbuffer",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLRenderingContext",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGL2RenderingContext",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLSampler",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLShader",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLShaderPrecisionFormat",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLSync",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLTexture",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLTransformFeedback",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLUniformLocation",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebGLVertexArrayObject",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebKitCSSMatrix",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WebSocket",
// IMPORTANT: Do not change this list without review from a DOM peer!
"WheelEvent",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Window",
// IMPORTANT: Do not change this list without review from a DOM peer!
"Worker",
// IMPORTANT: Do not change this list without review from a DOM peer!
"XMLDocument",
// IMPORTANT: Do not change this list without review from a DOM peer!
"XMLHttpRequest",
// IMPORTANT: Do not change this list without review from a DOM peer!
"XMLHttpRequestEventTarget",
// IMPORTANT: Do not change this list without review from a DOM peer!
"XMLHttpRequestUpload",
// IMPORTANT: Do not change this list without review from a DOM peer!
"XMLSerializer",
// IMPORTANT: Do not change this list without review from a DOM peer!
"XMLStylesheetProcessingInstruction",
// IMPORTANT: Do not change this list without review from a DOM peer!
"XPathEvaluator",
// IMPORTANT: Do not change this list without review from a DOM peer!
"XPathExpression",
// IMPORTANT: Do not change this list without review from a DOM peer!
"XPathResult",
// IMPORTANT: Do not change this list without review from a DOM peer!
"XSLTProcessor",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULButtonElement", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULCheckboxElement", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULCommandDispatcher", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULCommandEvent", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULControlElement", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULControllers", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULDocument", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULElement", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULLabeledControlElement", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULPopupElement", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULTemplateBuilder", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "XULTreeBuilder", xbl: true},
// IMPORTANT: Do not change this list without review from a DOM peer!
];
// IMPORTANT: Do not change the list above without review from a DOM peer!
function createInterfaceMap(isXBLScope) {
var version = SpecialPowers.Cc["@mozilla.org/xre/app-info;1"].getService(SpecialPowers.Ci.nsIXULAppInfo).version;
var isNightly = version.endsWith("a1");
var isRelease = !version.includes("a");
var isDesktop = !/Mobile|Tablet/.test(navigator.userAgent);
var isMac = /Mac OS/.test(navigator.oscpu);
var isWindows = /Windows/.test(navigator.oscpu);
var isAndroid = navigator.userAgent.includes("Android");
var isLinux = /Linux/.test(navigator.oscpu) && !isAndroid;
var interfaceMap = {};
function addInterfaces(interfaces)
{
for (var entry of interfaces) {
if (typeof(entry) === "string") {
interfaceMap[entry] = true;
} else {
ok(!("pref" in entry), "Bogus pref annotation for " + entry.name);
if ((entry.nightly === !isNightly) ||
(entry.nightlyAndroid === !(isAndroid && isNightly) && isAndroid) ||
(entry.xbl === !isXBLScope) ||
(entry.desktop === !isDesktop) ||
(entry.windows === !isWindows) ||
(entry.mac === !isMac) ||
(entry.linux === !isLinux) ||
(entry.android === !isAndroid && !entry.nightlyAndroid) ||
(entry.release === !isRelease) ||
entry.disabled) {
interfaceMap[entry.name] = false;
} else {
interfaceMap[entry.name] = true;
}
}
}
}
addInterfaces(ecmaGlobals);
addInterfaces(interfaceNamesInGlobalScope);
if (isXBLScope) {
// We expose QueryInterface to XBL scopes. It's not an interface but we
// need to handle it because it's an own property of the global and the
// property name starts with an uppercase letter.
interfaceMap["QueryInterface"] = true;
}
return interfaceMap;
}
function runTest(isXBLScope) {
var interfaceMap = createInterfaceMap(isXBLScope);
for (var name of Object.getOwnPropertyNames(window)) {
// An interface name should start with an upper case character.
// However, we have a couple of legacy interfaces that start with 'moz', so
// we want to allow those until we can remove them.
if (!/^[A-Z]/.test(name) && legacyMozPrefixedInterfaces.indexOf(name) < 0) {
continue;
}
ok(interfaceMap[name],
"If this is failing: DANGER, are you sure you want to expose the new interface " + name +
" to all webpages as a property on the window (XBL: " + isXBLScope + ")? Do not make a change to this file without a " +
" review from a DOM peer for that specific change!!! (or a JS peer for changes to ecmaGlobals)");
delete interfaceMap[name];
}
for (var name of Object.keys(interfaceMap)) {
ok(name in window === interfaceMap[name],
name + " should " + (interfaceMap[name] ? "" : " NOT") + " be defined on the " + (isXBLScope ? "XBL" : "global") +" scope");
if (!interfaceMap[name]) {
delete interfaceMap[name];
}
}
if (isXBLScope) {
todo_is(Object.keys(interfaceMap).length, 0,
"The following interface(s) are not enumerated: " + Object.keys(interfaceMap).join(", "));
} else {
is(Object.keys(interfaceMap).length, 0,
"The following interface(s) are not enumerated: " + Object.keys(interfaceMap).join(", "));
}
}
runTest(false);
SimpleTest.waitForExplicitFinish();
</script>
<span id="span" style="-moz-binding: url(file_interfaces.xml)"></span>
</pre>
</body>
</html>