Revision 147e565772fee0513f6fa79f8b75263a16fe13f8 authored by Boris Zbarsky on 09 June 2016, 10:52:28 UTC, committed by James Graham on 09 June 2016, 10:52:53 UTC
Fix fallback loading of <embed> inside an <object> with no type attribute to actually work reliably.
Upstreamed from https://bugzilla.mozilla.org/show_bug.cgi?id=1272651
1 parent 08ddca5
historical.html
<!DOCTYPE html>
<title>Historical DOM features must be removed</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
function isInterfaceNuked(name) {
test(function() {
assert_equals(window[name], undefined)
}, "Historical DOM features must be removed: " + name)
}
var nukedInterfaces = [
"CDATASection",
"DOMConfiguration",
"DOMError",
"DOMErrorHandler",
"DOMImplementationList",
"DOMImplementationSource",
"DOMLocator",
"DOMObject",
"DOMSettableTokenList",
"DOMUserData",
"Entity",
"EntityReference",
"EventException", // DOM Events
"NameList",
"Notation",
"TypeInfo",
"UserDataHandler",
"RangeException" // DOM Range
]
nukedInterfaces.forEach(isInterfaceNuked)
function isNukedFromDocument(name) {
test(function() {
var doc = document.implementation.createDocument(null,null,null)
assert_equals(document[name], undefined)
assert_equals(doc[name], undefined)
}, "Historical DOM features must be removed: " + name)
}
var documentNuked = [
"createCDATASection",
"createEntityReference",
"xmlEncoding",
"xmlStandalone",
"xmlVersion",
"strictErrorChecking",
"domConfig",
"normalizeDocument",
"renameNode",
"defaultCharset",
"height",
"width"
]
documentNuked.forEach(isNukedFromDocument)
test(function() {
assert_equals(document.implementation["getFeature"], undefined)
}, "DOMImplementation.getFeature() must be nuked.")
function isNukedFromElement(name) {
test(function() {
var ele = document.createElementNS("test", "test")
assert_equals(document.body[name], undefined)
assert_equals(ele[name], undefined)
}, "Historical DOM features must be removed: " + name)
}
var elementNuked = [
"schemaTypeInfo",
"setIdAttribute",
"setIdAttributeNS",
"setIdAttributeNode"
]
elementNuked.forEach(isNukedFromElement)
function isNukedFromDoctype(name) {
test(function() {
var doctype = document.implementation.createDocumentType("test", "", "")
assert_equals(doctype[name], undefined)
}, "DocumentType member must be nuked: " + name)
}
var doctypeNuked = [
"entities",
"notations",
"internalSubset"
]
doctypeNuked.forEach(isNukedFromDoctype)
function isNukedFromText(name) {
test(function() {
var text = document.createTextNode("test")
assert_equals(text[name], undefined)
}, "Text member must be nuked: " + name)
}
var textNuked = [
"isElementContentWhitespace",
"replaceWholeText"
]
textNuked.forEach(isNukedFromText)
function isNukedFromNode(name) {
test(function() {
var doc = document.implementation.createDocument(null,null,null)
var doctype = document.implementation.createDocumentType("test", "", "")
var text = document.createTextNode("test")
assert_equals(doc[name], undefined)
assert_equals(doctype[name], undefined)
assert_equals(text[name], undefined)
}, "Node member must be nuked: " + name)
}
var nodeNuked = [
"hasAttributes",
"attributes",
"namespaceURI",
"prefix",
"localName",
"isSupported",
"getFeature",
"getUserData",
"setUserData",
"rootNode",
]
nodeNuked.forEach(isNukedFromNode)
function isNukedFromWindow(name) {
test(function() {
assert_equals(window[name], undefined)
}, "Window member must be nuked: " + name)
}
var windowNuked = [
"attachEvent"
]
windowNuked.forEach(isNukedFromWindow)
</script>
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...