зеркало из https://github.com/mozilla/gecko-dev.git
Bug 906432 - Use getOwnPropertyNames() in test_interfaces.html. r=smaug
This commit is contained in:
Родитель
37640717b2
Коммит
5188bb1a3e
|
@ -23,6 +23,9 @@ SpecialPowers.addCategoryEntry("JavaScript-global-property", "testSNSM", "@mozil
|
||||||
|
|
||||||
SimpleTest.executeSoon(function () {
|
SimpleTest.executeSoon(function () {
|
||||||
ok(window.testSNSM, "testSNSM should return an object");
|
ok(window.testSNSM, "testSNSM should return an object");
|
||||||
|
// The category entry must be removed before finishing the test,
|
||||||
|
// otherwise it will affect all following tests in the test suite.
|
||||||
|
SpecialPowers.deleteCategoryEntry("JavaScript-global-property", "testSNSM", false);
|
||||||
SimpleTest.finish();
|
SimpleTest.finish();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -7,11 +7,12 @@
|
||||||
var win = XPCNativeWrapper.unwrap(window);
|
var win = XPCNativeWrapper.unwrap(window);
|
||||||
var SpecialPowers = win.SpecialPowers;
|
var SpecialPowers = win.SpecialPowers;
|
||||||
var is = win.is;
|
var is = win.is;
|
||||||
|
var todo_is = win.todo_is;
|
||||||
var ok = win.ok;
|
var ok = win.ok;
|
||||||
var interfaceNamesInGlobalScope = win.interfaceNamesInGlobalScope;
|
var excludedNames = win.excludedNames;
|
||||||
var interfaceNamesInXBLScope = win.interfaceNamesInXBLScope;
|
var createInterfaceMap = win.createInterfaceMap;
|
||||||
eval(win.runTest.toString());
|
eval(win.runTest.toString());
|
||||||
runTest(window, true);
|
runTest(true);
|
||||||
win.SimpleTest.finish();
|
win.SimpleTest.finish();
|
||||||
</constructor>
|
</constructor>
|
||||||
</implementation>
|
</implementation>
|
||||||
|
|
|
@ -23,26 +23,88 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=766694
|
||||||
// This is a list of all interfaces that are exposed to every webpage. Please only
|
// This is a list of all interfaces that are exposed to every webpage. Please only
|
||||||
// add things to this list with great care.
|
// add things to this list with great care.
|
||||||
|
|
||||||
|
// 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",
|
||||||
|
"Infinity",
|
||||||
|
"Int16Array",
|
||||||
|
"Int32Array",
|
||||||
|
"Int8Array",
|
||||||
|
"InternalError",
|
||||||
|
"Iterator",
|
||||||
|
"JSON",
|
||||||
|
"Map",
|
||||||
|
"Math",
|
||||||
|
"NaN",
|
||||||
|
"Number",
|
||||||
|
"Object",
|
||||||
|
{name: "ParallelArray", nightly: true},
|
||||||
|
"Proxy",
|
||||||
|
"RangeError",
|
||||||
|
"ReferenceError",
|
||||||
|
"RegExp",
|
||||||
|
"Set",
|
||||||
|
"StopIteration",
|
||||||
|
"String",
|
||||||
|
"SyntaxError",
|
||||||
|
"TypeError",
|
||||||
|
"Uint16Array",
|
||||||
|
"Uint32Array",
|
||||||
|
"Uint8Array",
|
||||||
|
"Uint8ClampedArray",
|
||||||
|
"URIError",
|
||||||
|
"WeakMap",
|
||||||
|
];
|
||||||
|
// IMPORTANT: Do not change this list without review from a JavaScript Engine peer!
|
||||||
|
|
||||||
// IMPORTANT: Do not change this list without review from a DOM peer!
|
// IMPORTANT: Do not change this list without review from a DOM peer!
|
||||||
var interfaceNamesInGlobalScope =
|
var interfaceNamesInGlobalScope =
|
||||||
[
|
[
|
||||||
|
"AnalyserNode",
|
||||||
"AnimationEvent",
|
"AnimationEvent",
|
||||||
"Array",
|
"ArchiveRequest",
|
||||||
"AsyncScrollEventDetail",
|
"AsyncScrollEventDetail",
|
||||||
"Attr",
|
"Attr",
|
||||||
|
"Audio",
|
||||||
|
"AudioBuffer",
|
||||||
|
"AudioContext",
|
||||||
|
"AudioBufferSourceNode",
|
||||||
|
"AudioDestinationNode",
|
||||||
|
"AudioListener",
|
||||||
|
"AudioNode",
|
||||||
|
"AudioParam",
|
||||||
|
"AudioProcessingEvent",
|
||||||
|
"AudioStreamTrack",
|
||||||
"BarProp",
|
"BarProp",
|
||||||
"BatteryManager",
|
"BatteryManager",
|
||||||
"BeforeUnloadEvent",
|
"BeforeUnloadEvent",
|
||||||
|
"BiquadFilterNode",
|
||||||
"Blob",
|
"Blob",
|
||||||
"BlobEvent",
|
"BlobEvent",
|
||||||
|
{name: "BoxObject", xbl: true},
|
||||||
|
{name: "BrowserFeedWriter", android: false},
|
||||||
"CameraCapabilities",
|
"CameraCapabilities",
|
||||||
"CameraControl",
|
"CameraControl",
|
||||||
"CameraManager",
|
"CameraManager",
|
||||||
"CanvasGradient",
|
"CanvasGradient",
|
||||||
"CanvasPattern",
|
"CanvasPattern",
|
||||||
"CanvasRenderingContext2D",
|
"CanvasRenderingContext2D",
|
||||||
|
"CaretPosition",
|
||||||
"CDATASection",
|
"CDATASection",
|
||||||
|
"ChannelMergerNode",
|
||||||
|
"ChannelSplitterNode",
|
||||||
"CharacterData",
|
"CharacterData",
|
||||||
|
{name: "ChromeWindow", xbl: true},
|
||||||
"ClientRect",
|
"ClientRect",
|
||||||
"ClientRectList",
|
"ClientRectList",
|
||||||
"ClipboardEvent",
|
"ClipboardEvent",
|
||||||
|
@ -51,17 +113,21 @@ var interfaceNamesInGlobalScope =
|
||||||
"Comment",
|
"Comment",
|
||||||
"CompositionEvent",
|
"CompositionEvent",
|
||||||
"Controllers",
|
"Controllers",
|
||||||
"CRMFObject",
|
"ConvolverNode",
|
||||||
|
{name: "CRMFObject", android: false},
|
||||||
"Crypto",
|
"Crypto",
|
||||||
|
"CSS",
|
||||||
"CSS2Properties",
|
"CSS2Properties",
|
||||||
"CSSCharsetRule",
|
"CSSCharsetRule",
|
||||||
"CSSConditionRule",
|
"CSSConditionRule",
|
||||||
"CSSFontFaceRule",
|
"CSSFontFaceRule",
|
||||||
"CSSFontFeatureValuesRule",
|
{name: "CSSFontFeatureValuesRule", release: false},
|
||||||
"CSSGroupingRule",
|
"CSSGroupingRule",
|
||||||
|
"CSSGroupRuleRuleList",
|
||||||
"CSSImportRule",
|
"CSSImportRule",
|
||||||
"CSSMediaRule",
|
"CSSMediaRule",
|
||||||
"CSSMozDocumentRule",
|
"CSSMozDocumentRule",
|
||||||
|
"CSSNameSpaceRule",
|
||||||
"CSSPageRule",
|
"CSSPageRule",
|
||||||
"CSSPrimitiveValue",
|
"CSSPrimitiveValue",
|
||||||
"CSSRule",
|
"CSSRule",
|
||||||
|
@ -76,6 +142,7 @@ var interfaceNamesInGlobalScope =
|
||||||
"DataChannel",
|
"DataChannel",
|
||||||
"DataContainerEvent",
|
"DataContainerEvent",
|
||||||
"DataTransfer",
|
"DataTransfer",
|
||||||
|
"DelayNode",
|
||||||
"DesktopNotification",
|
"DesktopNotification",
|
||||||
"DesktopNotificationCenter",
|
"DesktopNotificationCenter",
|
||||||
"DeviceAcceleration",
|
"DeviceAcceleration",
|
||||||
|
@ -86,14 +153,16 @@ var interfaceNamesInGlobalScope =
|
||||||
"DeviceRotationRate",
|
"DeviceRotationRate",
|
||||||
"DeviceStorage",
|
"DeviceStorage",
|
||||||
"DeviceStorageChangeEvent",
|
"DeviceStorageChangeEvent",
|
||||||
"DeviceStorageCursor",
|
|
||||||
"Document",
|
"Document",
|
||||||
"DocumentFragment",
|
"DocumentFragment",
|
||||||
"DocumentType",
|
"DocumentType",
|
||||||
|
{name: "DOMConstructor", xbl: true},
|
||||||
"DOMCursor",
|
"DOMCursor",
|
||||||
"DOMError",
|
"DOMError",
|
||||||
"DOMException",
|
"DOMException",
|
||||||
"DOMImplementation",
|
"DOMImplementation",
|
||||||
|
"DOMMMIError",
|
||||||
|
"DOMParser",
|
||||||
"DOMRequest",
|
"DOMRequest",
|
||||||
"DOMSettableTokenList",
|
"DOMSettableTokenList",
|
||||||
"DOMStringList",
|
"DOMStringList",
|
||||||
|
@ -101,9 +170,9 @@ var interfaceNamesInGlobalScope =
|
||||||
"DOMTokenList",
|
"DOMTokenList",
|
||||||
"DOMTransactionEvent",
|
"DOMTransactionEvent",
|
||||||
"DragEvent",
|
"DragEvent",
|
||||||
|
"DynamicsCompressorNode",
|
||||||
"Element",
|
"Element",
|
||||||
"ElementReplaceEvent",
|
"ElementReplaceEvent",
|
||||||
"ElementTimeControl",
|
|
||||||
"Event",
|
"Event",
|
||||||
"EventListenerInfo",
|
"EventListenerInfo",
|
||||||
"EventSource",
|
"EventSource",
|
||||||
|
@ -115,10 +184,11 @@ var interfaceNamesInGlobalScope =
|
||||||
"FileRequest",
|
"FileRequest",
|
||||||
"FocusEvent",
|
"FocusEvent",
|
||||||
"FormData",
|
"FormData",
|
||||||
"Gamepad",
|
"GainNode",
|
||||||
"GamepadAxisMoveEvent",
|
{name: "Gamepad", android: false},
|
||||||
"GamepadButtonEvent",
|
{name: "GamepadAxisMoveEvent", android: false},
|
||||||
"GamepadEvent",
|
{name: "GamepadButtonEvent", android: false},
|
||||||
|
{name: "GamepadEvent", android: false},
|
||||||
"HashChangeEvent",
|
"HashChangeEvent",
|
||||||
"History",
|
"History",
|
||||||
"HTMLAnchorElement",
|
"HTMLAnchorElement",
|
||||||
|
@ -131,7 +201,7 @@ var interfaceNamesInGlobalScope =
|
||||||
"HTMLButtonElement",
|
"HTMLButtonElement",
|
||||||
"HTMLCanvasElement",
|
"HTMLCanvasElement",
|
||||||
"HTMLCollection",
|
"HTMLCollection",
|
||||||
"HTMLCommandElement",
|
"HTMLDataElement",
|
||||||
"HTMLDataListElement",
|
"HTMLDataListElement",
|
||||||
"HTMLDirectoryElement",
|
"HTMLDirectoryElement",
|
||||||
"HTMLDivElement",
|
"HTMLDivElement",
|
||||||
|
@ -177,6 +247,7 @@ var interfaceNamesInGlobalScope =
|
||||||
"HTMLScriptElement",
|
"HTMLScriptElement",
|
||||||
"HTMLSelectElement",
|
"HTMLSelectElement",
|
||||||
"HTMLSourceElement",
|
"HTMLSourceElement",
|
||||||
|
"HTMLSpanElement",
|
||||||
"HTMLStyleElement",
|
"HTMLStyleElement",
|
||||||
"HTMLTableCaptionElement",
|
"HTMLTableCaptionElement",
|
||||||
"HTMLTableCellElement",
|
"HTMLTableCellElement",
|
||||||
|
@ -184,7 +255,9 @@ var interfaceNamesInGlobalScope =
|
||||||
"HTMLTableElement",
|
"HTMLTableElement",
|
||||||
"HTMLTableRowElement",
|
"HTMLTableRowElement",
|
||||||
"HTMLTableSectionElement",
|
"HTMLTableSectionElement",
|
||||||
|
"HTMLTemplateElement",
|
||||||
"HTMLTextAreaElement",
|
"HTMLTextAreaElement",
|
||||||
|
"HTMLTimeElement",
|
||||||
"HTMLTitleElement",
|
"HTMLTitleElement",
|
||||||
"HTMLUListElement",
|
"HTMLUListElement",
|
||||||
"HTMLUnknownElement",
|
"HTMLUnknownElement",
|
||||||
|
@ -193,6 +266,7 @@ var interfaceNamesInGlobalScope =
|
||||||
"IDBCursorWithValue",
|
"IDBCursorWithValue",
|
||||||
"IDBDatabase",
|
"IDBDatabase",
|
||||||
"IDBFactory",
|
"IDBFactory",
|
||||||
|
"IDBFileHandle",
|
||||||
"IDBIndex",
|
"IDBIndex",
|
||||||
"IDBKeyRange",
|
"IDBKeyRange",
|
||||||
"IDBObjectStore",
|
"IDBObjectStore",
|
||||||
|
@ -200,18 +274,25 @@ var interfaceNamesInGlobalScope =
|
||||||
"IDBRequest",
|
"IDBRequest",
|
||||||
"IDBTransaction",
|
"IDBTransaction",
|
||||||
"IDBVersionChangeEvent",
|
"IDBVersionChangeEvent",
|
||||||
|
"Image",
|
||||||
"ImageData",
|
"ImageData",
|
||||||
"JSON",
|
{name: "InstallTrigger", xbl: false},
|
||||||
"KeyEvent",
|
"KeyEvent",
|
||||||
|
"KeyboardEvent",
|
||||||
"LoadStatus",
|
"LoadStatus",
|
||||||
"LocalMediaStream",
|
"LocalMediaStream",
|
||||||
"Location",
|
"Location",
|
||||||
"LockedFile",
|
"LockedFile",
|
||||||
"LSProgressEvent",
|
"MediaElementAudioSourceNode",
|
||||||
"MediaError",
|
"MediaError",
|
||||||
"MediaList",
|
"MediaList",
|
||||||
"MediaQueryList",
|
"MediaQueryList",
|
||||||
|
"MediaRecorder",
|
||||||
"MediaStream",
|
"MediaStream",
|
||||||
|
"MediaStreamAudioDestinationNode",
|
||||||
|
"MediaStreamAudioSourceNode",
|
||||||
|
"MediaStreamEvent",
|
||||||
|
"MediaStreamTrack",
|
||||||
"MessageEvent",
|
"MessageEvent",
|
||||||
"MimeType",
|
"MimeType",
|
||||||
"MimeTypeArray",
|
"MimeTypeArray",
|
||||||
|
@ -219,31 +300,26 @@ var interfaceNamesInGlobalScope =
|
||||||
"MouseEvent",
|
"MouseEvent",
|
||||||
"MouseScrollEvent",
|
"MouseScrollEvent",
|
||||||
"MozApplicationEvent",
|
"MozApplicationEvent",
|
||||||
"MozBlobBuilder",
|
|
||||||
"MozCanvasPrintState",
|
"MozCanvasPrintState",
|
||||||
"MozConnection",
|
"MozConnection",
|
||||||
|
"mozContact",
|
||||||
"MozContactChangeEvent",
|
"MozContactChangeEvent",
|
||||||
"MozCSSKeyframeRule",
|
"MozCSSKeyframeRule",
|
||||||
"MozCSSKeyframesRule",
|
"MozCSSKeyframesRule",
|
||||||
"MozMmsEvent",
|
"MozMmsEvent",
|
||||||
"MozMmsMessage",
|
"MozMmsMessage",
|
||||||
"MozMobileCellInfo",
|
|
||||||
"MozMobileConnectionInfo",
|
|
||||||
"MozMobileMessageManager",
|
"MozMobileMessageManager",
|
||||||
"MozMobileMessageThread",
|
"MozMobileMessageThread",
|
||||||
"MozMobileNetworkInfo",
|
|
||||||
"MozNamedAttrMap",
|
"MozNamedAttrMap",
|
||||||
"MozNetworkStats",
|
|
||||||
"MozNetworkStatsData",
|
|
||||||
"MozNetworkStatsManager",
|
|
||||||
"MozPowerManager",
|
"MozPowerManager",
|
||||||
|
"mozRTCIceCandidate",
|
||||||
|
"mozRTCPeerConnection",
|
||||||
|
"mozRTCSessionDescription",
|
||||||
"MozSettingsEvent",
|
"MozSettingsEvent",
|
||||||
"MozSmsEvent",
|
"MozSmsEvent",
|
||||||
"MozSmsFilter",
|
"MozSmsFilter",
|
||||||
"MozSmsMessage",
|
"MozSmsMessage",
|
||||||
"MozSmsSegmentInfo",
|
"MozSmsSegmentInfo",
|
||||||
"MozTimeManager",
|
|
||||||
"MozTouchEvent",
|
|
||||||
"MozWakeLock",
|
"MozWakeLock",
|
||||||
"MutationEvent",
|
"MutationEvent",
|
||||||
"MutationObserver",
|
"MutationObserver",
|
||||||
|
@ -253,47 +329,54 @@ var interfaceNamesInGlobalScope =
|
||||||
"NodeFilter",
|
"NodeFilter",
|
||||||
"NodeIterator",
|
"NodeIterator",
|
||||||
"NodeList",
|
"NodeList",
|
||||||
"NodeSelector",
|
|
||||||
"NotifyAudioAvailableEvent",
|
"NotifyAudioAvailableEvent",
|
||||||
|
"Notification",
|
||||||
"NotifyPaintEvent",
|
"NotifyPaintEvent",
|
||||||
"NSRGBAColor",
|
"OfflineAudioCompletionEvent",
|
||||||
|
"OfflineAudioContext",
|
||||||
"OfflineResourceList",
|
"OfflineResourceList",
|
||||||
"OpenWindowEventDetail",
|
"OpenWindowEventDetail",
|
||||||
|
"Option",
|
||||||
|
"OscillatorNode",
|
||||||
"PageTransitionEvent",
|
"PageTransitionEvent",
|
||||||
"PaintRequest",
|
"PaintRequest",
|
||||||
"PaintRequestList",
|
"PaintRequestList",
|
||||||
"PaymentRequestInfo",
|
"PannerNode",
|
||||||
"Performance",
|
"Performance",
|
||||||
"PerformanceNavigation",
|
"PerformanceNavigation",
|
||||||
"PerformanceTiming",
|
"PerformanceTiming",
|
||||||
|
"PeriodicWave",
|
||||||
|
"PhoneNumberService",
|
||||||
"Plugin",
|
"Plugin",
|
||||||
"PluginArray",
|
"PluginArray",
|
||||||
"PopStateEvent",
|
"PopStateEvent",
|
||||||
"PopupBlockedEvent",
|
"PopupBlockedEvent",
|
||||||
"ProcessingInstruction",
|
"ProcessingInstruction",
|
||||||
"ProgressEvent",
|
"ProgressEvent",
|
||||||
|
{name: "Promise", release: false},
|
||||||
|
{name: "PromiseResolver", release: false},
|
||||||
"PropertyNodeList",
|
"PropertyNodeList",
|
||||||
"Range",
|
"Range",
|
||||||
"RecordErrorEvent",
|
"RecordErrorEvent",
|
||||||
"Rect",
|
"Rect",
|
||||||
"RGBColor",
|
"RGBColor",
|
||||||
"RTCIceCandidate",
|
"RTCDataChannelEvent",
|
||||||
"RTCPeerConnection",
|
"RTCPeerConnectionIceEvent",
|
||||||
"RTCSessionDescription",
|
|
||||||
"Screen",
|
"Screen",
|
||||||
|
"ScriptProcessorNode",
|
||||||
"ScrollAreaEvent",
|
"ScrollAreaEvent",
|
||||||
"Selection",
|
"Selection",
|
||||||
"SettingsLock",
|
"SettingsLock",
|
||||||
"SettingsManager",
|
"SettingsManager",
|
||||||
"SimpleGestureEvent",
|
"SimpleGestureEvent",
|
||||||
|
{name: "SimpleTest", xbl: false},
|
||||||
"SmartCardEvent",
|
"SmartCardEvent",
|
||||||
"SpeechRecognitionError",
|
"SpeechRecognitionError",
|
||||||
"SpeechRecognitionEvent",
|
"SpeechRecognitionEvent",
|
||||||
"SpeechSynthesisEvent",
|
"SpeechSynthesisEvent",
|
||||||
|
{name: "SpecialPowers", xbl: false},
|
||||||
"Storage",
|
"Storage",
|
||||||
"StorageEvent",
|
"StorageEvent",
|
||||||
"StorageItem",
|
|
||||||
"StorageObsolete",
|
|
||||||
"StyleRuleChangeEvent",
|
"StyleRuleChangeEvent",
|
||||||
"StyleSheet",
|
"StyleSheet",
|
||||||
"StyleSheetApplicableStateChangeEvent",
|
"StyleSheetApplicableStateChangeEvent",
|
||||||
|
@ -310,8 +393,6 @@ var interfaceNamesInGlobalScope =
|
||||||
"SVGAnimatedLengthList",
|
"SVGAnimatedLengthList",
|
||||||
"SVGAnimatedNumber",
|
"SVGAnimatedNumber",
|
||||||
"SVGAnimatedNumberList",
|
"SVGAnimatedNumberList",
|
||||||
"SVGAnimatedPathData",
|
|
||||||
"SVGAnimatedPoints",
|
|
||||||
"SVGAnimatedPreserveAspectRatio",
|
"SVGAnimatedPreserveAspectRatio",
|
||||||
"SVGAnimatedRect",
|
"SVGAnimatedRect",
|
||||||
"SVGAnimatedString",
|
"SVGAnimatedString",
|
||||||
|
@ -328,7 +409,6 @@ var interfaceNamesInGlobalScope =
|
||||||
"SVGDocument",
|
"SVGDocument",
|
||||||
"SVGElement",
|
"SVGElement",
|
||||||
"SVGEllipseElement",
|
"SVGEllipseElement",
|
||||||
"SVGEvent",
|
|
||||||
"SVGFEBlendElement",
|
"SVGFEBlendElement",
|
||||||
"SVGFEColorMatrixElement",
|
"SVGFEColorMatrixElement",
|
||||||
"SVGFEComponentTransferElement",
|
"SVGFEComponentTransferElement",
|
||||||
|
@ -354,22 +434,20 @@ var interfaceNamesInGlobalScope =
|
||||||
"SVGFETileElement",
|
"SVGFETileElement",
|
||||||
"SVGFETurbulenceElement",
|
"SVGFETurbulenceElement",
|
||||||
"SVGFilterElement",
|
"SVGFilterElement",
|
||||||
"SVGFilterPrimitiveStandardAttributes",
|
|
||||||
"SVGFitToViewBox",
|
|
||||||
"SVGForeignObjectElement",
|
"SVGForeignObjectElement",
|
||||||
"SVGGElement",
|
"SVGGElement",
|
||||||
"SVGGradientElement",
|
"SVGGradientElement",
|
||||||
|
"SVGGraphicsElement",
|
||||||
"SVGImageElement",
|
"SVGImageElement",
|
||||||
"SVGLength",
|
"SVGLength",
|
||||||
"SVGLengthList",
|
"SVGLengthList",
|
||||||
"SVGLinearGradientElement",
|
"SVGLinearGradientElement",
|
||||||
"SVGLineElement",
|
"SVGLineElement",
|
||||||
"SVGLocatable",
|
|
||||||
"SVGMarkerElement",
|
"SVGMarkerElement",
|
||||||
"SVGMaskElement",
|
"SVGMaskElement",
|
||||||
"SVGMatrix",
|
"SVGMatrix",
|
||||||
"SVGMetadataElement",
|
"SVGMetadataElement",
|
||||||
"SVGMpathElement",
|
"SVGMPathElement",
|
||||||
"SVGNumber",
|
"SVGNumber",
|
||||||
"SVGNumberList",
|
"SVGNumberList",
|
||||||
"SVGPathElement",
|
"SVGPathElement",
|
||||||
|
@ -407,31 +485,26 @@ var interfaceNamesInGlobalScope =
|
||||||
"SVGSetElement",
|
"SVGSetElement",
|
||||||
"SVGStopElement",
|
"SVGStopElement",
|
||||||
"SVGStringList",
|
"SVGStringList",
|
||||||
"SVGStylable",
|
|
||||||
"SVGStyleElement",
|
"SVGStyleElement",
|
||||||
"SVGSVGElement",
|
"SVGSVGElement",
|
||||||
"SVGSwitchElement",
|
"SVGSwitchElement",
|
||||||
"SVGSymbolElement",
|
"SVGSymbolElement",
|
||||||
"SVGTests",
|
|
||||||
"SVGTextContentElement",
|
"SVGTextContentElement",
|
||||||
"SVGTextElement",
|
"SVGTextElement",
|
||||||
"SVGTextPathElement",
|
"SVGTextPathElement",
|
||||||
"SVGTextPositioningElement",
|
"SVGTextPositioningElement",
|
||||||
"SVGTitleElement",
|
"SVGTitleElement",
|
||||||
"SVGTransform",
|
"SVGTransform",
|
||||||
"SVGTransformable",
|
|
||||||
"SVGTransformList",
|
"SVGTransformList",
|
||||||
"SVGTSpanElement",
|
"SVGTSpanElement",
|
||||||
"SVGUnitTypes",
|
"SVGUnitTypes",
|
||||||
"SVGURIReference",
|
|
||||||
"SVGUseElement",
|
"SVGUseElement",
|
||||||
"SVGViewElement",
|
"SVGViewElement",
|
||||||
"SVGViewSpec",
|
|
||||||
"SVGZoomAndPan",
|
"SVGZoomAndPan",
|
||||||
"SVGZoomEvent",
|
"SVGZoomEvent",
|
||||||
"TCPSocket",
|
|
||||||
"TCPServerSocket",
|
|
||||||
"Text",
|
"Text",
|
||||||
|
"TextDecoder",
|
||||||
|
"TextEncoder",
|
||||||
"TextMetrics",
|
"TextMetrics",
|
||||||
"TimeEvent",
|
"TimeEvent",
|
||||||
"TimeRanges",
|
"TimeRanges",
|
||||||
|
@ -439,79 +512,131 @@ var interfaceNamesInGlobalScope =
|
||||||
"TouchEvent",
|
"TouchEvent",
|
||||||
"TouchList",
|
"TouchList",
|
||||||
"TransitionEvent",
|
"TransitionEvent",
|
||||||
|
{name: "TreeColumn", xbl: true},
|
||||||
|
{name: "TreeColumns", xbl: true},
|
||||||
|
{name: "TreeContentView", xbl: true},
|
||||||
|
{name: "TreeSelection", xbl: true},
|
||||||
"TreeWalker",
|
"TreeWalker",
|
||||||
"UIEvent",
|
"UIEvent",
|
||||||
"UndoManager",
|
"UndoManager",
|
||||||
"URL",
|
"URL",
|
||||||
"UserDataHandler",
|
"UserDataHandler",
|
||||||
"UserProximityEvent",
|
"UserProximityEvent",
|
||||||
"USSDReceivedEvent",
|
|
||||||
"ValidityState",
|
"ValidityState",
|
||||||
|
"VideoStreamTrack",
|
||||||
|
"WaveShaperNode",
|
||||||
|
"WebGLActiveInfo",
|
||||||
|
"WebGLBuffer",
|
||||||
|
"WebGLFramebuffer",
|
||||||
|
"WebGLProgram",
|
||||||
|
"WebGLRenderbuffer",
|
||||||
"WebGLRenderingContext",
|
"WebGLRenderingContext",
|
||||||
|
"WebGLShader",
|
||||||
|
"WebGLShaderPrecisionFormat",
|
||||||
|
"WebGLTexture",
|
||||||
|
"WebGLUniformLocation",
|
||||||
|
"WebGLVertexArray",
|
||||||
"WebSocket",
|
"WebSocket",
|
||||||
"WheelEvent",
|
"WheelEvent",
|
||||||
"Window",
|
"Window",
|
||||||
"WindowUtils",
|
"WindowUtils",
|
||||||
"XMLDocument",
|
"XMLDocument",
|
||||||
"XMLHttpRequest",
|
"XMLHttpRequest",
|
||||||
"XMLHttpRequestEventTarget",
|
|
||||||
"XMLHttpRequestUpload",
|
"XMLHttpRequestUpload",
|
||||||
|
"XMLSerializer",
|
||||||
|
"XMLStylesheetProcessingInstruction",
|
||||||
"XPathEvaluator",
|
"XPathEvaluator",
|
||||||
"XPathExpression",
|
"XPathExpression",
|
||||||
"XPathNamespace",
|
"XPathNamespace",
|
||||||
"XPathNSResolver",
|
"XPathNSResolver",
|
||||||
"XPathResult",
|
"XPathResult",
|
||||||
"XSLTProcessor",
|
"XSLTProcessor",
|
||||||
"XULElement",
|
{name: "XULButtonElement", xbl: true},
|
||||||
|
{name: "XULCheckboxElement", xbl: true},
|
||||||
|
{name: "XULCommandDispatcher", xbl: true},
|
||||||
|
{name: "XULCommandEvent", xbl: true},
|
||||||
|
{name: "XULControlElement", xbl: true},
|
||||||
|
{name: "XULControllers", xbl: true},
|
||||||
|
{name: "XULDocument", xbl: true},
|
||||||
|
{name: "XULElement", win: true, xbl: true},
|
||||||
|
{name: "XULLabeledControlElement", xbl: true},
|
||||||
|
{name: "XULPopupElement", xbl: true},
|
||||||
|
{name: "XULTemplateBuilder", xbl: true},
|
||||||
|
{name: "XULTreeBuilder", xbl: true},
|
||||||
]
|
]
|
||||||
// IMPORTANT: Do not change this list without review from a DOM peer!
|
// IMPORTANT: Do not change this list without review from a DOM peer!
|
||||||
|
|
||||||
// If your interface is named nsIDOMSomeInterface and you don't mean to expose
|
var excludedNames = [
|
||||||
// it to every webpage, simply change its name to nsISomeInterface to fix this problem.
|
"TraceMallocDisable", // debug builds only
|
||||||
|
"TraceMallocEnable", // debug builds only
|
||||||
var interfaceNamesInXBLScope = [
|
"TraceMallocOpenLogFile", // debug builds only
|
||||||
"BoxObject",
|
"TraceMallocChangeLogFD", // debug builds only
|
||||||
"ChromeWindow",
|
"TraceMallocCloseLogFD", // debug builds only
|
||||||
"DOMConstructor",
|
"TraceMallocLogTimestamp", // debug builds only
|
||||||
"TreeColumn",
|
"TraceMallocDumpAllocations", // debug builds only
|
||||||
"TreeColumns",
|
|
||||||
"TreeContentView",
|
|
||||||
"TreeSelection",
|
|
||||||
"XULButtonElement",
|
|
||||||
"XULCheckboxElement",
|
|
||||||
"XULCommandDispatcher",
|
|
||||||
"XULCommandEvent",
|
|
||||||
"XULControlElement",
|
|
||||||
"XULControllers",
|
|
||||||
"XULDocument",
|
|
||||||
"XULLabeledControlElement",
|
|
||||||
"XULPopupElement",
|
|
||||||
"XULTemplateBuilder",
|
|
||||||
"XULTreeBuilder",
|
|
||||||
];
|
];
|
||||||
|
|
||||||
function runTest(win, isXBLScope) {
|
function createInterfaceMap(isXBLScope) {
|
||||||
for (var i in SpecialPowers.Components.interfaces) {
|
var version = SpecialPowers.Cc["@mozilla.org/xre/app-info;1"].getService(SpecialPowers.Ci.nsIXULAppInfo).version;
|
||||||
var s = i.toString();
|
var isNightly = version.endsWith("a1");
|
||||||
var name = null;
|
var isRelease = !version.contains("a");
|
||||||
if (s.indexOf("nsIDOM") == 0) {
|
var isAndroid = navigator.userAgent.indexOf("Android") >= 0;
|
||||||
name = s.substring("nsIDOM".length);
|
var isWin = navigator.userAgent.indexOf("Windows") >= 0;
|
||||||
} else if (s.indexOf("nsI") == 0) {
|
var interfaceMap = {};
|
||||||
name = s.substring("nsI".length);
|
for (var entry of ecmaGlobals) {
|
||||||
}
|
if (typeof(entry) === "string") {
|
||||||
if (name && (name in win)) {
|
// Standard ECMAScript global objects are not defined on the XBL scope.
|
||||||
ok(interfaceNamesInGlobalScope.indexOf(name) >= 0 ||
|
interfaceMap[entry] = !isXBLScope;
|
||||||
(isXBLScope && interfaceNamesInXBLScope.indexOf(name) >= 0),
|
} else if (entry.nightly === isNightly) {
|
||||||
"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?");
|
interfaceMap[entry.name] = !isXBLScope;
|
||||||
|
} else {
|
||||||
|
interfaceMap[entry.name] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (var name of interfaceNamesInXBLScope) {
|
for (var entry of interfaceNamesInGlobalScope) {
|
||||||
is(name in win, isXBLScope,
|
if (typeof(entry) === "string") {
|
||||||
name + " should" + (isXBLScope ? "" : " NOT") + " be present in the global scope");
|
interfaceMap[entry] = true;
|
||||||
|
} else if (entry.xbl === isXBLScope ||
|
||||||
|
entry.win === isWin ||
|
||||||
|
entry.android === isAndroid ||
|
||||||
|
entry.release === isRelease) {
|
||||||
|
interfaceMap[entry.name] = true;
|
||||||
|
} else {
|
||||||
|
interfaceMap[entry.name] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return interfaceMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
function runTest(isXBLScope) {
|
||||||
|
var interfaceMap = createInterfaceMap(isXBLScope);
|
||||||
|
for (var name of Object.getOwnPropertyNames(window)) {
|
||||||
|
// An interfae name should start with an upper case character.
|
||||||
|
if (!/^(moz)?[A-Z]/.test(name) ||
|
||||||
|
excludedNames.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?");
|
||||||
|
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(window, false);
|
runTest(false);
|
||||||
SimpleTest.waitForExplicitFinish();
|
SimpleTest.waitForExplicitFinish();
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
Загрузка…
Ссылка в новой задаче