1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/tests/mochitest/general/test_interfaces.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,1308 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html> 1.6 +<!-- 1.7 +https://bugzilla.mozilla.org/show_bug.cgi?id=766694 1.8 +--> 1.9 +<head> 1.10 + <meta charset="utf-8"> 1.11 + <title>Test for Bug 766694</title> 1.12 + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.13 + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 1.14 +</head> 1.15 +<body> 1.16 +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=766694">Mozilla Bug 766694</a> 1.17 +<p id="display"></p> 1.18 +<div id="content" style="display: none"> 1.19 + 1.20 +</div> 1.21 +<pre id="test"> 1.22 +<script type="application/javascript"> 1.23 + 1.24 +/** Test for Bug 766694 **/ 1.25 + 1.26 +// This is a list of all interfaces that are exposed to every webpage. 1.27 +// Please only add things to this list with great care and proper review 1.28 +// from the associated module peers. 1.29 + 1.30 +// This file lists global interfaces we want exposed and verifies they 1.31 +// are what we intend. Each entry in the arrays below can either be a 1.32 +// simple string with the interface name, or an object with a 'name' 1.33 +// property giving the interface name as a string, and additional 1.34 +// properties which qualify the exposure of that interface. For example: 1.35 +// 1.36 +// [ 1.37 +// "AGlobalInterface", 1.38 +// {name: "ExperimentalThing", release: false}, 1.39 +// {name: "OptionalThing", pref: "some.thing.enabled"}, 1.40 +// {name: "FancyControl", xbl: true}, 1.41 +// ]; 1.42 +// 1.43 +// See createInterfaceMap() below for a complete list of properties. 1.44 + 1.45 +// IMPORTANT: Do not change this list without review from 1.46 +// a JavaScript Engine peer! 1.47 +var ecmaGlobals = 1.48 + [ 1.49 + "Array", 1.50 + "ArrayBuffer", 1.51 + "Boolean", 1.52 + "DataView", 1.53 + "Date", 1.54 + "Error", 1.55 + "EvalError", 1.56 + "Float32Array", 1.57 + "Float64Array", 1.58 + "Function", 1.59 + // NB: We haven't bothered to resolve constants like Infinity and NaN on 1.60 + // Xrayed windows (which are seen from the XBL scope). We could support 1.61 + // this if needed with some refactoring. 1.62 + {name: "Infinity", xbl: false}, 1.63 + "Int16Array", 1.64 + "Int32Array", 1.65 + "Int8Array", 1.66 + "InternalError", 1.67 + {name: "Intl", desktop: true}, 1.68 + "Iterator", 1.69 + "JSON", 1.70 + "Map", 1.71 + "Math", 1.72 + {name: "NaN", xbl: false}, 1.73 + "Number", 1.74 + "Object", 1.75 + "Proxy", 1.76 + "RangeError", 1.77 + "ReferenceError", 1.78 + "RegExp", 1.79 + "Set", 1.80 + {name: "SharedArrayBuffer", nightly: true}, 1.81 + {name: "SIMD", nightly: true}, 1.82 + "StopIteration", 1.83 + "String", 1.84 + "SyntaxError", 1.85 + {name: "TypedObject", nightly: true}, 1.86 + "TypeError", 1.87 + "Uint16Array", 1.88 + "Uint32Array", 1.89 + "Uint8Array", 1.90 + "Uint8ClampedArray", 1.91 + "URIError", 1.92 + "WeakMap", 1.93 + ]; 1.94 +// IMPORTANT: Do not change the list above without review from 1.95 +// a JavaScript Engine peer! 1.96 + 1.97 +// IMPORTANT: Do not change the list below without review from a DOM peer, 1.98 +// except to remove items from it! 1.99 +// 1.100 +// This is a list of interfaces that were prefixed with 'moz' instead of 'Moz'. 1.101 +// We should never to that again, interfaces in the DOM start with an uppercase 1.102 +// letter. If you think you need to add an interface here, DON'T. Rename your 1.103 +// interface. 1.104 +var legacyMozPrefixedInterfaces = 1.105 + [ 1.106 + "mozContact", 1.107 + "mozRTCIceCandidate", 1.108 + "mozRTCPeerConnection", 1.109 + "mozRTCSessionDescription", 1.110 + ]; 1.111 +// IMPORTANT: Do not change the list above without review from a DOM peer, 1.112 +// except to remove items from it! 1.113 + 1.114 +// IMPORTANT: Do not change the list below without review from a DOM peer! 1.115 +var interfaceNamesInGlobalScope = 1.116 + [ 1.117 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.118 + "AnalyserNode", 1.119 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.120 + "AnimationEvent", 1.121 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.122 + "Attr", 1.123 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.124 + "Audio", 1.125 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.126 + "AudioBuffer", 1.127 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.128 + {name: "AudioChannelManager", b2g: true}, 1.129 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.130 + "AudioContext", 1.131 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.132 + "AudioBufferSourceNode", 1.133 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.134 + "AudioDestinationNode", 1.135 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.136 + "AudioListener", 1.137 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.138 + "AudioNode", 1.139 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.140 + "AudioParam", 1.141 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.142 + "AudioProcessingEvent", 1.143 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.144 + "AudioStreamTrack", 1.145 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.146 + "BarProp", 1.147 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.148 + "BatteryManager", 1.149 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.150 + "BeforeUnloadEvent", 1.151 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.152 + "BiquadFilterNode", 1.153 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.154 + "Blob", 1.155 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.156 + "BlobEvent", 1.157 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.158 + {name: "BluetoothAdapter", b2g: true}, 1.159 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.160 + {name: "BluetoothDevice", b2g: true}, 1.161 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.162 + {name: "BluetoothDeviceEvent", b2g: true}, 1.163 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.164 + {name: "BluetoothManager", b2g: true}, 1.165 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.166 + {name: "BluetoothStatusChangedEvent", b2g: true}, 1.167 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.168 + {name: "BoxObject", xbl: true}, 1.169 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.170 + {name: "CallEvent", b2g: true, pref: "dom.telephony.enabled"}, 1.171 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.172 + {name: "CallGroupErrorEvent", b2g: true, pref: "dom.telephony.enabled"}, 1.173 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.174 + {name: "CameraCapabilities", b2g: true}, 1.175 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.176 + {name: "CameraControl", b2g: true}, 1.177 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.178 + {name: "CameraDetectedFace", b2g: true, pref: "camera.control.face_detection.enabled"}, 1.179 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.180 + {name: "CameraManager", b2g: true}, 1.181 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.182 + {name: "CameraPoint", b2g: true, pref: "camera.control.face_detection.enabled"}, 1.183 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.184 + "CanvasGradient", 1.185 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.186 + "CanvasPattern", 1.187 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.188 + "CanvasRenderingContext2D", 1.189 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.190 + "CaretPosition", 1.191 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.192 + "CDATASection", 1.193 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.194 + {name: "CFStateChangeEvent", b2g: true, pref: "dom.mobileconnection.enabled"}, 1.195 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.196 + "ChannelMergerNode", 1.197 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.198 + "ChannelSplitterNode", 1.199 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.200 + "CharacterData", 1.201 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.202 + {name: "ChromeWindow", xbl: true}, 1.203 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.204 + "ClipboardEvent", 1.205 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.206 + "CloseEvent", 1.207 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.208 + "CommandEvent", 1.209 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.210 + "Comment", 1.211 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.212 + "CompositionEvent", 1.213 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.214 + "Controllers", 1.215 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.216 + "ConvolverNode", 1.217 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.218 + "Crypto", 1.219 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.220 + "CSS", 1.221 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.222 + "CSS2Properties", 1.223 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.224 + "CSSCharsetRule", 1.225 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.226 + "CSSConditionRule", 1.227 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.228 + "CSSFontFaceRule", 1.229 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.230 + {name: "CSSFontFeatureValuesRule", release: false}, 1.231 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.232 + "CSSGroupingRule", 1.233 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.234 + "CSSImportRule", 1.235 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.236 + "CSSMediaRule", 1.237 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.238 + "CSSMozDocumentRule", 1.239 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.240 + "CSSNameSpaceRule", 1.241 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.242 + "CSSPageRule", 1.243 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.244 + "CSSPrimitiveValue", 1.245 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.246 + "CSSRule", 1.247 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.248 + "CSSRuleList", 1.249 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.250 + "CSSStyleDeclaration", 1.251 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.252 + "CSSStyleRule", 1.253 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.254 + "CSSStyleSheet", 1.255 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.256 + "CSSSupportsRule", 1.257 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.258 + "CSSValue", 1.259 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.260 + "CSSValueList", 1.261 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.262 + "CustomEvent", 1.263 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.264 + "DataChannel", 1.265 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.266 + {name: "DataErrorEvent", b2g: true, pref: "dom.mobileconnection.enabled"}, 1.267 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.268 + {name: "DataStore", b2g: true}, 1.269 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.270 + {name: "DataStoreChangeEvent", b2g: true}, 1.271 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.272 + {name: "DataStoreCursor", b2g: true}, 1.273 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.274 + "DataTransfer", 1.275 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.276 + "DelayNode", 1.277 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.278 + "DesktopNotification", 1.279 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.280 + "DesktopNotificationCenter", 1.281 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.282 + "DeviceLightEvent", 1.283 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.284 + "DeviceMotionEvent", 1.285 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.286 + "DeviceOrientationEvent", 1.287 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.288 + "DeviceProximityEvent", 1.289 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.290 + "DeviceStorage", 1.291 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.292 + "DeviceStorageChangeEvent", 1.293 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.294 + "Document", 1.295 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.296 + "DocumentFragment", 1.297 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.298 + "DocumentType", 1.299 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.300 + {name: "DOMConstructor", xbl: true}, 1.301 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.302 + "DOMCursor", 1.303 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.304 + "DOMError", 1.305 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.306 + "DOMException", 1.307 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.308 + "DOMImplementation", 1.309 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.310 + "DOMMMIError", 1.311 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.312 + "DOMParser", 1.313 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.314 + "DOMPoint", 1.315 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.316 + "DOMPointReadOnly", 1.317 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.318 + "DOMQuad", 1.319 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.320 + "DOMRect", 1.321 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.322 + "DOMRectList", 1.323 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.324 + "DOMRectReadOnly", 1.325 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.326 + "DOMRequest", 1.327 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.328 + "DOMSettableTokenList", 1.329 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.330 + "DOMStringList", 1.331 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.332 + "DOMStringMap", 1.333 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.334 + "DOMTokenList", 1.335 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.336 + "DOMTransactionEvent", 1.337 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.338 + "DragEvent", 1.339 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.340 + "DynamicsCompressorNode", 1.341 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.342 + "Element", 1.343 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.344 + "ElementReplaceEvent", 1.345 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.346 + "ErrorEvent", 1.347 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.348 + "Event", 1.349 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.350 + "EventSource", 1.351 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.352 + "EventTarget", 1.353 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.354 + {name: "External", b2g: false}, 1.355 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.356 + "File", 1.357 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.358 + "FileHandle", 1.359 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.360 + "FileList", 1.361 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.362 + "FileReader", 1.363 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.364 + "FileRequest", 1.365 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.366 + {name: "FMRadio", b2g: true}, 1.367 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.368 + "FocusEvent", 1.369 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.370 + "FormData", 1.371 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.372 + "GainNode", 1.373 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.374 + {name: "Gamepad", desktop: true}, 1.375 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.376 + {name: "GamepadAxisMoveEvent", desktop: true}, 1.377 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.378 + {name: "GamepadButtonEvent", desktop: true}, 1.379 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.380 + {name: "GamepadButton", desktop: true}, 1.381 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.382 + {name: "GamepadEvent", desktop: true}, 1.383 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.384 + "HashChangeEvent", 1.385 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.386 + "History", 1.387 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.388 + "HTMLAnchorElement", 1.389 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.390 + "HTMLAppletElement", 1.391 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.392 + "HTMLAreaElement", 1.393 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.394 + "HTMLAudioElement", 1.395 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.396 + "HTMLBaseElement", 1.397 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.398 + "HTMLBodyElement", 1.399 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.400 + "HTMLBRElement", 1.401 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.402 + "HTMLButtonElement", 1.403 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.404 + "HTMLCanvasElement", 1.405 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.406 + "HTMLCollection", 1.407 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.408 + "HTMLContentElement", 1.409 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.410 + "HTMLDataElement", 1.411 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.412 + "HTMLDataListElement", 1.413 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.414 + "HTMLDirectoryElement", 1.415 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.416 + "HTMLDivElement", 1.417 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.418 + "HTMLDListElement", 1.419 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.420 + "HTMLDocument", 1.421 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.422 + "HTMLElement", 1.423 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.424 + "HTMLEmbedElement", 1.425 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.426 + "HTMLFieldSetElement", 1.427 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.428 + "HTMLFontElement", 1.429 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.430 + "HTMLFormControlsCollection", 1.431 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.432 + "HTMLFormElement", 1.433 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.434 + "HTMLFrameElement", 1.435 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.436 + "HTMLFrameSetElement", 1.437 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.438 + "HTMLHeadElement", 1.439 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.440 + "HTMLHeadingElement", 1.441 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.442 + "HTMLHRElement", 1.443 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.444 + "HTMLHtmlElement", 1.445 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.446 + "HTMLIFrameElement", 1.447 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.448 + "HTMLImageElement", 1.449 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.450 + "HTMLInputElement", 1.451 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.452 + "HTMLLabelElement", 1.453 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.454 + "HTMLLegendElement", 1.455 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.456 + "HTMLLIElement", 1.457 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.458 + "HTMLLinkElement", 1.459 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.460 + "HTMLMapElement", 1.461 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.462 + "HTMLMediaElement", 1.463 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.464 + "HTMLMenuElement", 1.465 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.466 + "HTMLMenuItemElement", 1.467 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.468 + "HTMLMetaElement", 1.469 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.470 + "HTMLMeterElement", 1.471 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.472 + "HTMLModElement", 1.473 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.474 + "HTMLObjectElement", 1.475 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.476 + "HTMLOListElement", 1.477 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.478 + "HTMLOptGroupElement", 1.479 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.480 + "HTMLOptionElement", 1.481 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.482 + "HTMLOptionsCollection", 1.483 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.484 + "HTMLOutputElement", 1.485 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.486 + "HTMLParagraphElement", 1.487 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.488 + "HTMLParamElement", 1.489 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.490 + "HTMLPreElement", 1.491 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.492 + "HTMLProgressElement", 1.493 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.494 + "HTMLPropertiesCollection", 1.495 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.496 + "HTMLQuoteElement", 1.497 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.498 + "HTMLScriptElement", 1.499 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.500 + "HTMLSelectElement", 1.501 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.502 + "HTMLShadowElement", 1.503 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.504 + "HTMLSourceElement", 1.505 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.506 + "HTMLSpanElement", 1.507 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.508 + "HTMLStyleElement", 1.509 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.510 + "HTMLTableCaptionElement", 1.511 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.512 + "HTMLTableCellElement", 1.513 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.514 + "HTMLTableColElement", 1.515 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.516 + "HTMLTableElement", 1.517 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.518 + "HTMLTableRowElement", 1.519 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.520 + "HTMLTableSectionElement", 1.521 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.522 + "HTMLTemplateElement", 1.523 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.524 + "HTMLTextAreaElement", 1.525 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.526 + "HTMLTimeElement", 1.527 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.528 + "HTMLTitleElement", 1.529 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.530 + "HTMLTrackElement", 1.531 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.532 + "HTMLUListElement", 1.533 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.534 + "HTMLUnknownElement", 1.535 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.536 + "HTMLVideoElement", 1.537 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.538 + {name: "IccChangeEvent", b2g: true, pref: "dom.icc.enabled"}, 1.539 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.540 + {name: "IccCardLockError", b2g: true, pref: "dom.icc.enabled"}, 1.541 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.542 + "IDBCursor", 1.543 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.544 + "IDBCursorWithValue", 1.545 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.546 + "IDBDatabase", 1.547 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.548 + "IDBFactory", 1.549 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.550 + "IDBFileHandle", 1.551 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.552 + "IDBIndex", 1.553 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.554 + "IDBKeyRange", 1.555 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.556 + "IDBObjectStore", 1.557 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.558 + "IDBOpenDBRequest", 1.559 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.560 + "IDBRequest", 1.561 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.562 + "IDBTransaction", 1.563 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.564 + "IDBVersionChangeEvent", 1.565 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.566 + "Image", 1.567 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.568 + "ImageData", 1.569 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.570 + "InputEvent", 1.571 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.572 + {name: "InstallTrigger", b2g: false}, 1.573 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.574 + "KeyEvent", 1.575 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.576 + "KeyboardEvent", 1.577 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.578 + "LocalMediaStream", 1.579 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.580 + "Location", 1.581 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.582 + "LockedFile", 1.583 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.584 + "MediaElementAudioSourceNode", 1.585 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.586 + "MediaError", 1.587 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.588 + "MediaList", 1.589 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.590 + "MediaQueryList", 1.591 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.592 + "MediaRecorder", 1.593 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.594 + "MediaStream", 1.595 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.596 + "MediaStreamAudioDestinationNode", 1.597 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.598 + "MediaStreamAudioSourceNode", 1.599 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.600 + {name: "MediaStreamEvent", pref: "media.peerconnection.enabled"}, 1.601 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.602 + "MediaStreamTrack", 1.603 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.604 + "MessageEvent", 1.605 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.606 + "MessagePort", 1.607 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.608 + "MimeType", 1.609 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.610 + "MimeTypeArray", 1.611 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.612 + "ModalContentWindow", 1.613 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.614 + "MouseEvent", 1.615 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.616 + "MouseScrollEvent", 1.617 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.618 + {name: "MozActivity", b2g: true}, 1.619 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.620 + "MozApplicationEvent", 1.621 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.622 + {name: "MozCellBroadcast", b2g: true, pref: "dom.cellbroadcast.enabled"}, 1.623 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.624 + {name: "MozCellBroadcastEvent", b2g: true, pref: "dom.cellbroadcast.enabled"}, 1.625 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.626 + "mozContact", 1.627 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.628 + "MozContactChangeEvent", 1.629 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.630 + "MozCSSKeyframeRule", 1.631 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.632 + "MozCSSKeyframesRule", 1.633 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.634 + {name: "MozEmergencyCbModeEvent", b2g: true, pref: "dom.mobileconnection.enabled"}, 1.635 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.636 + {name: "MozIcc", b2g: true, pref: "dom.icc.enabled"}, 1.637 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.638 + {name: "MozIccManager", b2g: true, pref: "dom.icc.enabled"}, 1.639 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.640 + {name: "MozInputContext", b2g: true}, 1.641 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.642 + {name: "MozInputMethodManager", b2g: true}, 1.643 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.644 + "MozMmsEvent", 1.645 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.646 + "MozMmsMessage", 1.647 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.648 + {name: "MozMobileConnection", b2g: true, pref: "dom.mobileconnection.enabled"}, 1.649 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.650 + {name: "MozMobileConnectionArray", b2g: true, pref: "dom.mobileconnection.enabled"}, 1.651 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.652 + "MozMobileMessageManager", 1.653 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.654 + "MozMobileMessageThread", 1.655 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.656 + "MozNamedAttrMap", 1.657 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.658 + {name: "MozNDEFRecord", b2g: true}, 1.659 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.660 + {name: "MozNFCPeer", b2g: true}, 1.661 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.662 + {name: "MozNFCTag", b2g: true}, 1.663 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.664 + {name: "MozOtaStatusEvent", b2g: true, pref: "dom.mobileconnection.enabled"}, 1.665 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.666 + "MozPowerManager", 1.667 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.668 + {name: "mozRTCIceCandidate", pref: "media.peerconnection.enabled"}, 1.669 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.670 + {name: "mozRTCPeerConnection", pref: "media.peerconnection.enabled"}, 1.671 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.672 + {name: "mozRTCSessionDescription", pref: "media.peerconnection.enabled"}, 1.673 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.674 + "MozSettingsEvent", 1.675 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.676 + "MozSmsEvent", 1.677 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.678 + "MozSmsFilter", 1.679 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.680 + "MozSmsMessage", 1.681 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.682 + "MozSmsSegmentInfo", 1.683 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.684 + {name: "MozSpeakerManager", b2g: true}, 1.685 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.686 + {name: "MozStkCommandEvent", b2g: true, pref: "dom.icc.enabled"}, 1.687 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.688 + {name: "MozTimeManager", b2g: true}, 1.689 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.690 + {name: "MozVoicemail", b2g: true, pref: "dom.voicemail.enabled"}, 1.691 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.692 + {name: "MozVoicemailEvent", b2g: true, pref: "dom.voicemail.enabled"}, 1.693 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.694 + {name: "MozWakeLock", b2g: true, pref: "dom.wakelock.enabled"}, 1.695 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.696 + {name: "MozWifiConnectionInfoEvent", b2g: true}, 1.697 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.698 + {name: "MozWifiManager", b2g: true, permission: "wifi-manage"}, 1.699 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.700 + {name: "MozWifiNetwork", b2g: true, permission: "wifi-manage"}, 1.701 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.702 + {name: "MozWifiStatusChangeEvent", b2g: true}, 1.703 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.704 + {name: "MozWifiP2pGroupOwner", b2g: true, permission: "wifi-manage"}, 1.705 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.706 + {name: "MozWifiP2pManager", b2g: true, permission: "wifi-manage"}, 1.707 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.708 + {name: "MozWifiP2pStatusChangeEvent", b2g: true, permission: "wifi-manage"}, 1.709 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.710 + "MutationEvent", 1.711 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.712 + "MutationObserver", 1.713 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.714 + "MutationRecord", 1.715 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.716 + "Navigator", 1.717 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.718 + {name: "NetworkInformation", pref: "dom.netinfo.enabled"}, 1.719 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.720 + "Node", 1.721 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.722 + "NodeFilter", 1.723 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.724 + "NodeIterator", 1.725 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.726 + "NodeList", 1.727 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.728 + "Notification", 1.729 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.730 + "NotifyPaintEvent", 1.731 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.732 + "OfflineAudioCompletionEvent", 1.733 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.734 + "OfflineAudioContext", 1.735 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.736 + "OfflineResourceList", 1.737 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.738 + "Option", 1.739 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.740 + "OscillatorNode", 1.741 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.742 + "PageTransitionEvent", 1.743 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.744 + "PaintRequest", 1.745 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.746 + "PaintRequestList", 1.747 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.748 + "PannerNode", 1.749 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.750 + { name: "Path2D", pref: "canvas.path.enabled" }, 1.751 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.752 + "Performance", 1.753 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.754 + "PerformanceEntry", 1.755 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.756 + "PerformanceNavigation", 1.757 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.758 + "PerformanceResourceTiming", 1.759 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.760 + "PerformanceTiming", 1.761 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.762 + "PeriodicWave", 1.763 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.764 + {name: "PermissionSettings", b2g: true, permission: "permissions"}, 1.765 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.766 + "PhoneNumberService", 1.767 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.768 + "Plugin", 1.769 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.770 + "PluginArray", 1.771 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.772 + {name: "PointerEvent", pref: "dom.w3c_pointer_events.enabled"}, 1.773 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.774 + "PopStateEvent", 1.775 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.776 + "PopupBlockedEvent", 1.777 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.778 + "ProcessingInstruction", 1.779 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.780 + "ProgressEvent", 1.781 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.782 + "Promise", 1.783 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.784 + "PropertyNodeList", 1.785 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.786 + "Range", 1.787 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.788 + "RecordErrorEvent", 1.789 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.790 + "Rect", 1.791 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.792 + "RGBColor", 1.793 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.794 + {name: "RTCDataChannelEvent", pref: "media.peerconnection.enabled"}, 1.795 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.796 + {name: "RTCPeerConnectionIceEvent", pref: "media.peerconnection.enabled"}, 1.797 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.798 + {name: "RTCStatsReport", pref: "media.peerconnection.enabled"}, 1.799 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.800 + "Screen", 1.801 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.802 + "ScriptProcessorNode", 1.803 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.804 + "ScrollAreaEvent", 1.805 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.806 + "Selection", 1.807 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.808 + "SettingsLock", 1.809 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.810 + "SettingsManager", 1.811 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.812 + {name: "ShadowRoot", pref: "dom.webcomponents.enabled"}, 1.813 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.814 + {name: "SharedWorker", pref: "dom.workers.sharedWorkers.enabled"}, 1.815 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.816 + "SimpleGestureEvent", 1.817 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.818 + {name: "SimpleTest", xbl: false}, 1.819 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.820 + "SmartCardEvent", 1.821 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.822 + {name: "SpeechSynthesisEvent", b2g: true}, 1.823 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.824 + {name: "SpeechSynthesis", b2g: true}, 1.825 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.826 + {name: "SpeechSynthesisUtterance", b2g: true}, 1.827 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.828 + {name: "SpeechSynthesisVoice", b2g: true}, 1.829 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.830 + {name: "SpecialPowers", xbl: false}, 1.831 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.832 + "Storage", 1.833 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.834 + "StorageEvent", 1.835 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.836 + "StyleSheet", 1.837 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.838 + "StyleSheetList", 1.839 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.840 + "SVGAElement", 1.841 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.842 + "SVGAltGlyphElement", 1.843 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.844 + "SVGAngle", 1.845 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.846 + "SVGAnimatedAngle", 1.847 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.848 + "SVGAnimatedBoolean", 1.849 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.850 + "SVGAnimatedEnumeration", 1.851 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.852 + "SVGAnimatedInteger", 1.853 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.854 + "SVGAnimatedLength", 1.855 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.856 + "SVGAnimatedLengthList", 1.857 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.858 + "SVGAnimatedNumber", 1.859 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.860 + "SVGAnimatedNumberList", 1.861 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.862 + "SVGAnimatedPreserveAspectRatio", 1.863 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.864 + "SVGAnimatedRect", 1.865 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.866 + "SVGAnimatedString", 1.867 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.868 + "SVGAnimatedTransformList", 1.869 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.870 + "SVGAnimateElement", 1.871 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.872 + "SVGAnimateMotionElement", 1.873 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.874 + "SVGAnimateTransformElement", 1.875 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.876 + "SVGAnimationElement", 1.877 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.878 + "SVGCircleElement", 1.879 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.880 + "SVGClipPathElement", 1.881 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.882 + "SVGComponentTransferFunctionElement", 1.883 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.884 + "SVGDefsElement", 1.885 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.886 + "SVGDescElement", 1.887 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.888 + "SVGDocument", 1.889 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.890 + "SVGElement", 1.891 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.892 + "SVGEllipseElement", 1.893 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.894 + "SVGFEBlendElement", 1.895 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.896 + "SVGFEColorMatrixElement", 1.897 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.898 + "SVGFEComponentTransferElement", 1.899 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.900 + "SVGFECompositeElement", 1.901 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.902 + "SVGFEConvolveMatrixElement", 1.903 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.904 + "SVGFEDiffuseLightingElement", 1.905 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.906 + "SVGFEDisplacementMapElement", 1.907 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.908 + "SVGFEDistantLightElement", 1.909 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.910 + "SVGFEDropShadowElement", 1.911 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.912 + "SVGFEFloodElement", 1.913 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.914 + "SVGFEFuncAElement", 1.915 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.916 + "SVGFEFuncBElement", 1.917 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.918 + "SVGFEFuncGElement", 1.919 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.920 + "SVGFEFuncRElement", 1.921 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.922 + "SVGFEGaussianBlurElement", 1.923 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.924 + "SVGFEImageElement", 1.925 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.926 + "SVGFEMergeElement", 1.927 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.928 + "SVGFEMergeNodeElement", 1.929 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.930 + "SVGFEMorphologyElement", 1.931 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.932 + "SVGFEOffsetElement", 1.933 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.934 + "SVGFEPointLightElement", 1.935 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.936 + "SVGFESpecularLightingElement", 1.937 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.938 + "SVGFESpotLightElement", 1.939 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.940 + "SVGFETileElement", 1.941 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.942 + "SVGFETurbulenceElement", 1.943 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.944 + "SVGFilterElement", 1.945 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.946 + "SVGForeignObjectElement", 1.947 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.948 + "SVGGElement", 1.949 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.950 + "SVGGradientElement", 1.951 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.952 + "SVGGraphicsElement", 1.953 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.954 + "SVGImageElement", 1.955 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.956 + "SVGLength", 1.957 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.958 + "SVGLengthList", 1.959 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.960 + "SVGLinearGradientElement", 1.961 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.962 + "SVGLineElement", 1.963 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.964 + "SVGMarkerElement", 1.965 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.966 + "SVGMaskElement", 1.967 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.968 + "SVGMatrix", 1.969 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.970 + "SVGMetadataElement", 1.971 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.972 + "SVGMPathElement", 1.973 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.974 + "SVGNumber", 1.975 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.976 + "SVGNumberList", 1.977 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.978 + "SVGPathElement", 1.979 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.980 + "SVGPathSeg", 1.981 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.982 + "SVGPathSegArcAbs", 1.983 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.984 + "SVGPathSegArcRel", 1.985 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.986 + "SVGPathSegClosePath", 1.987 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.988 + "SVGPathSegCurvetoCubicAbs", 1.989 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.990 + "SVGPathSegCurvetoCubicRel", 1.991 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.992 + "SVGPathSegCurvetoCubicSmoothAbs", 1.993 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.994 + "SVGPathSegCurvetoCubicSmoothRel", 1.995 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.996 + "SVGPathSegCurvetoQuadraticAbs", 1.997 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.998 + "SVGPathSegCurvetoQuadraticRel", 1.999 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1000 + "SVGPathSegCurvetoQuadraticSmoothAbs", 1.1001 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1002 + "SVGPathSegCurvetoQuadraticSmoothRel", 1.1003 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1004 + "SVGPathSegLinetoAbs", 1.1005 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1006 + "SVGPathSegLinetoHorizontalAbs", 1.1007 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1008 + "SVGPathSegLinetoHorizontalRel", 1.1009 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1010 + "SVGPathSegLinetoRel", 1.1011 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1012 + "SVGPathSegLinetoVerticalAbs", 1.1013 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1014 + "SVGPathSegLinetoVerticalRel", 1.1015 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1016 + "SVGPathSegList", 1.1017 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1018 + "SVGPathSegMovetoAbs", 1.1019 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1020 + "SVGPathSegMovetoRel", 1.1021 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1022 + "SVGPatternElement", 1.1023 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1024 + "SVGPoint", 1.1025 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1026 + "SVGPointList", 1.1027 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1028 + "SVGPolygonElement", 1.1029 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1030 + "SVGPolylineElement", 1.1031 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1032 + "SVGPreserveAspectRatio", 1.1033 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1034 + "SVGRadialGradientElement", 1.1035 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1036 + "SVGRect", 1.1037 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1038 + "SVGRectElement", 1.1039 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1040 + "SVGScriptElement", 1.1041 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1042 + "SVGSetElement", 1.1043 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1044 + "SVGStopElement", 1.1045 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1046 + "SVGStringList", 1.1047 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1048 + "SVGStyleElement", 1.1049 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1050 + "SVGSVGElement", 1.1051 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1052 + "SVGSwitchElement", 1.1053 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1054 + "SVGSymbolElement", 1.1055 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1056 + "SVGTextContentElement", 1.1057 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1058 + "SVGTextElement", 1.1059 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1060 + "SVGTextPathElement", 1.1061 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1062 + "SVGTextPositioningElement", 1.1063 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1064 + "SVGTitleElement", 1.1065 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1066 + "SVGTransform", 1.1067 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1068 + "SVGTransformList", 1.1069 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1070 + "SVGTSpanElement", 1.1071 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1072 + "SVGUnitTypes", 1.1073 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1074 + "SVGUseElement", 1.1075 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1076 + "SVGViewElement", 1.1077 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1078 + "SVGZoomAndPan", 1.1079 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1080 + "SVGZoomEvent", 1.1081 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1082 + {name: "Telephony", b2g: true, pref: "dom.telephony.enabled"}, 1.1083 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1084 + {name: "TelephonyCall", b2g: true, pref: "dom.telephony.enabled"}, 1.1085 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1086 + {name: "TelephonyCallGroup", b2g: true, pref: "dom.telephony.enabled"}, 1.1087 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1088 + "Text", 1.1089 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1090 + "TextDecoder", 1.1091 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1092 + "TextEncoder", 1.1093 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1094 + "TextMetrics", 1.1095 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1096 + "TextTrack", 1.1097 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1098 + "TextTrackCueList", 1.1099 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1100 + "TextTrackList", 1.1101 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1102 + "TimeEvent", 1.1103 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1104 + "TimeRanges", 1.1105 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1106 + "Touch", 1.1107 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1108 + "TouchEvent", 1.1109 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1110 + "TouchList", 1.1111 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1112 + "TrackEvent", 1.1113 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1114 + "TransitionEvent", 1.1115 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1116 + {name: "TreeColumn", xbl: true}, 1.1117 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1118 + {name: "TreeColumns", xbl: true}, 1.1119 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1120 + {name: "TreeContentView", xbl: true}, 1.1121 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1122 + {name: "TreeSelection", xbl: true}, 1.1123 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1124 + "TreeWalker", 1.1125 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1126 + "UIEvent", 1.1127 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1128 + "UndoManager", 1.1129 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1130 + "URL", 1.1131 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1132 + "URLSearchParams", 1.1133 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1134 + {name: "UserDataHandler", xbl: true}, 1.1135 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1136 + "UserProximityEvent", 1.1137 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1138 + {name: "USSDReceivedEvent", b2g: true, pref: "dom.mobileconnection.enabled"}, 1.1139 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1140 + "ValidityState", 1.1141 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1142 + "VideoStreamTrack", 1.1143 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1144 + "VTTCue", 1.1145 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1146 + {name: "VTTRegion", pref: "media.webvtt.regions.enabled"}, 1.1147 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1148 + "WaveShaperNode", 1.1149 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1150 + "WebGLActiveInfo", 1.1151 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1152 + "WebGLBuffer", 1.1153 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1154 + "WebGLFramebuffer", 1.1155 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1156 + "WebGLProgram", 1.1157 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1158 + "WebGLRenderbuffer", 1.1159 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1160 + "WebGLRenderingContext", 1.1161 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1162 + "WebGLShader", 1.1163 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1164 + "WebGLShaderPrecisionFormat", 1.1165 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1166 + "WebGLTexture", 1.1167 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1168 + "WebGLUniformLocation", 1.1169 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1170 + "WebGLVertexArray", 1.1171 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1172 + "WebSocket", 1.1173 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1174 + "WheelEvent", 1.1175 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1176 + "Window", 1.1177 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1178 + "WindowUtils", 1.1179 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1180 + "Worker", 1.1181 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1182 + "XMLDocument", 1.1183 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1184 + "XMLHttpRequest", 1.1185 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1186 + "XMLHttpRequestUpload", 1.1187 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1188 + "XMLSerializer", 1.1189 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1190 + "XMLStylesheetProcessingInstruction", 1.1191 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1192 + "XPathEvaluator", 1.1193 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1194 + "XPathExpression", 1.1195 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1196 + "XPathNSResolver", 1.1197 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1198 + "XPathResult", 1.1199 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1200 + "XSLTProcessor", 1.1201 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1202 + {name: "XULButtonElement", xbl: true}, 1.1203 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1204 + {name: "XULCheckboxElement", xbl: true}, 1.1205 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1206 + {name: "XULCommandDispatcher", xbl: true}, 1.1207 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1208 + {name: "XULCommandEvent", xbl: true}, 1.1209 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1210 + {name: "XULControlElement", xbl: true}, 1.1211 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1212 + {name: "XULControllers", xbl: true}, 1.1213 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1214 + {name: "XULDocument", xbl: true}, 1.1215 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1216 + {name: "XULElement", xbl: true}, 1.1217 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1218 + {name: "XULLabeledControlElement", xbl: true}, 1.1219 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1220 + {name: "XULPopupElement", xbl: true}, 1.1221 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1222 + {name: "XULTemplateBuilder", xbl: true}, 1.1223 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1224 + {name: "XULTreeBuilder", xbl: true}, 1.1225 +// IMPORTANT: Do not change this list without review from a DOM peer! 1.1226 + ]; 1.1227 +// IMPORTANT: Do not change the list above without review from a DOM peer! 1.1228 + 1.1229 +function createInterfaceMap(isXBLScope) { 1.1230 + var prefs = SpecialPowers.Services.prefs; 1.1231 + var version = SpecialPowers.Cc["@mozilla.org/xre/app-info;1"].getService(SpecialPowers.Ci.nsIXULAppInfo).version; 1.1232 + var isNightly = version.endsWith("a1"); 1.1233 + var isRelease = !version.contains("a"); 1.1234 + var isDesktop = !/Mobile|Tablet/.test(navigator.userAgent); 1.1235 + var isB2G = !isDesktop && !navigator.userAgent.contains("Android"); 1.1236 + var hasPermission = function (aPermission) { 1.1237 + return SpecialPowers.hasPermission(aPermission, window.document); 1.1238 + }; 1.1239 + 1.1240 + var interfaceMap = {}; 1.1241 + 1.1242 + function addInterfaces(interfaces) 1.1243 + { 1.1244 + for (var entry of interfaces) { 1.1245 + if (typeof(entry) === "string") { 1.1246 + interfaceMap[entry] = true; 1.1247 + } else if ((entry.nightly === !isNightly) || 1.1248 + (entry.xbl === !isXBLScope) || 1.1249 + (entry.desktop === !isDesktop) || 1.1250 + (entry.b2g === !isB2G) || 1.1251 + (entry.release === !isRelease) || 1.1252 + (entry.pref && !prefs.getBoolPref(entry.pref)) || 1.1253 + (entry.permission && !hasPermission(entry.permission))) { 1.1254 + interfaceMap[entry.name] = false; 1.1255 + } else { 1.1256 + interfaceMap[entry.name] = true; 1.1257 + } 1.1258 + } 1.1259 + } 1.1260 + 1.1261 + addInterfaces(ecmaGlobals); 1.1262 + addInterfaces(interfaceNamesInGlobalScope); 1.1263 + if (isXBLScope) { 1.1264 + // We expose QueryInterface to XBL scopes. It's not an interface but we 1.1265 + // need to handle it because it's an own property of the global and the 1.1266 + // property name starts with an uppercase letter. 1.1267 + interfaceMap["QueryInterface"] = true; 1.1268 + } 1.1269 + 1.1270 + return interfaceMap; 1.1271 +} 1.1272 + 1.1273 +function runTest(isXBLScope) { 1.1274 + var interfaceMap = createInterfaceMap(isXBLScope); 1.1275 + for (var name of Object.getOwnPropertyNames(window)) { 1.1276 + // An interface name should start with an upper case character. 1.1277 + // However, we have a couple of legacy interfaces that start with 'moz', so 1.1278 + // we want to allow those until we can remove them. 1.1279 + if (!/^[A-Z]/.test(name) && legacyMozPrefixedInterfaces.indexOf(name) < 0) { 1.1280 + continue; 1.1281 + } 1.1282 + ok(interfaceMap[name], 1.1283 + "If this is failing: DANGER, are you sure you want to expose the new interface " + name + 1.1284 + " to all webpages as a property on the window (XBL: " + isXBLScope + ")? Do not make a change to this file without a " + 1.1285 + " review from a DOM peer for that specific change!!! (or a JS peer for changes to ecmaGlobals)"); 1.1286 + delete interfaceMap[name]; 1.1287 + } 1.1288 + for (var name of Object.keys(interfaceMap)) { 1.1289 + ok(name in window === interfaceMap[name], 1.1290 + name + " should " + (interfaceMap[name] ? "" : " NOT") + " be defined on the " + (isXBLScope ? "XBL" : "global") +" scope"); 1.1291 + if (!interfaceMap[name]) { 1.1292 + delete interfaceMap[name]; 1.1293 + } 1.1294 + } 1.1295 + if (isXBLScope) { 1.1296 + todo_is(Object.keys(interfaceMap).length, 0, 1.1297 + "The following interface(s) are not enumerated: " + Object.keys(interfaceMap).join(", ")); 1.1298 + } else { 1.1299 + is(Object.keys(interfaceMap).length, 0, 1.1300 + "The following interface(s) are not enumerated: " + Object.keys(interfaceMap).join(", ")); 1.1301 + } 1.1302 +} 1.1303 + 1.1304 +runTest(false); 1.1305 +SimpleTest.waitForExplicitFinish(); 1.1306 + 1.1307 +</script> 1.1308 +<span id="span" style="-moz-binding: url(file_interfaces.xml)"></span> 1.1309 +</pre> 1.1310 +</body> 1.1311 +</html>