summaryrefslogtreecommitdiffstats
path: root/dom
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-06-01 14:16:06 +0200
committerGitHub <noreply@github.com>2020-06-01 14:16:06 +0200
commitf828451e5f9b4fe63545485dcb97f7e3e4a425b2 (patch)
tree58385636b3b78fd021bf6a121a734e0b3cf84ee7 /dom
parent52c4750ab24a8d0a55b79fae3face1967aee35f6 (diff)
downloadUXP-f828451e5f9b4fe63545485dcb97f7e3e4a425b2.tar
UXP-f828451e5f9b4fe63545485dcb97f7e3e4a425b2.tar.gz
UXP-f828451e5f9b4fe63545485dcb97f7e3e4a425b2.tar.lz
UXP-f828451e5f9b4fe63545485dcb97f7e3e4a425b2.tar.xz
UXP-f828451e5f9b4fe63545485dcb97f7e3e4a425b2.zip
Issue #1525 - Kill marquee element
* Remove marquee code * Regenerate HTML Elements/parser code for Removal of Marquee. Co-authored-by: Gaming4JC <g4jc@hyperbola.info>
Diffstat (limited to 'dom')
-rw-r--r--dom/base/crashtests/1251361.html33
-rw-r--r--dom/base/crashtests/371466-1.xhtml24
-rw-r--r--dom/base/crashtests/535926-1.html28
-rw-r--r--dom/base/nsGkAtomList.h1
-rw-r--r--dom/base/test/test_bug840098.html2
-rw-r--r--dom/base/test/test_caretPositionFromPoint.html2
-rw-r--r--dom/base/test/test_mutationobservers.html918
-rw-r--r--dom/canvas/test/webgl-conf/checkout/deqp/temp_externs/webkit_css.js456
-rw-r--r--dom/html/HTMLDivElement.cpp34
-rw-r--r--dom/html/test/test_bug389797.html1
-rw-r--r--dom/html/test/test_documentAll.html2
-rw-r--r--dom/security/test/csp/file_bug1312272.html13
-rw-r--r--dom/security/test/csp/file_strict_dynamic_script_events_xbl.html14
-rw-r--r--dom/security/test/csp/test_strict_dynamic.html7
-rw-r--r--dom/tests/browser/browser_bug396843.js1
-rw-r--r--dom/tests/mochitest/bugs/mochitest.ini1
-rw-r--r--dom/tests/mochitest/bugs/test_bug1160342_marquee.html337
-rw-r--r--dom/tests/mochitest/bugs/test_bug396843.html1
-rw-r--r--dom/tests/mochitest/webcomponents/htmlconstructor_builtin_tests.js1
-rw-r--r--dom/xbl/crashtests/342954-1.xhtml46
-rw-r--r--dom/xbl/crashtests/342954-2-xbl.xml19
-rw-r--r--dom/xbl/crashtests/342954-2.xhtml29
-rw-r--r--dom/xbl/crashtests/477878-1.html4
23 files changed, 3 insertions, 1971 deletions
diff --git a/dom/base/crashtests/1251361.html b/dom/base/crashtests/1251361.html
deleted file mode 100644
index 57c76121f..000000000
--- a/dom/base/crashtests/1251361.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="UTF-8">
-<script>
-
-var frameRoot;
-
-function boom()
-{
- var frameWin = f.contentWindow;
- frameRoot = frameWin.document.documentElement;
- frameWin.location.replace("data:text/html;charset=UTF-8,<body onload='parent.g();'>2");
-}
-
-function g()
-{
- setTimeout(h, 0);
-}
-
-function h()
-{
- var newDoc = document.implementation.createDocument('', '', null);
- newDoc.adoptNode(frameRoot);
-}
-
-</script>
-<body onload="boom();">
-
-<iframe id="f" src="data:text/html;charset=UTF-8,<marquee>1"></iframe>
-
-</body>
-</html>
diff --git a/dom/base/crashtests/371466-1.xhtml b/dom/base/crashtests/371466-1.xhtml
deleted file mode 100644
index 8da0b22b1..000000000
--- a/dom/base/crashtests/371466-1.xhtml
+++ /dev/null
@@ -1,24 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-wait">
-<head>
-<script>
-
-function boom()
-{
- var marquee = document.getElementById("marquee");
- var span = document.getElementById("span");
- marquee.appendChild(span);
- marquee.removeChild(span);
- document.documentElement.removeAttribute("class");
-}
-
-</script>
-</head>
-
-<body onload="setTimeout(boom, 30);">
-
-<marquee id="marquee" />
-
-<span id="span"><div>Foo</div><textarea/></span>
-
-</body>
-</html>
diff --git a/dom/base/crashtests/535926-1.html b/dom/base/crashtests/535926-1.html
deleted file mode 100644
index bddd8dc28..000000000
--- a/dom/base/crashtests/535926-1.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<html class="reftest-wait">
-<head>
-
-<script type="text/javascript">
-
-var i = 0;
-function mmf()
-{
- if (++i == 2) {
- document.body.innerHTML = "<marquee>";
- document.documentElement.removeAttribute("class");
- }
-}
-
-function init()
-{
- document.documentElement.offsetHeight;
- for (var j = 0; j < 2; ++j) {
- var iframe = document.createElementNS("http://www.w3.org/1999/xhtml", "iframe");
- iframe.addEventListener("load", mmf, false);
- document.body.appendChild(iframe);
- }
-}
-
-</script>
-</head>
-<body onload="setTimeout(init, 0);"></body>
-</html>
diff --git a/dom/base/nsGkAtomList.h b/dom/base/nsGkAtomList.h
index 35963afd7..af3077604 100644
--- a/dom/base/nsGkAtomList.h
+++ b/dom/base/nsGkAtomList.h
@@ -580,7 +580,6 @@ GK_ATOM(marginTop, "margin-top")
GK_ATOM(marginheight, "marginheight")
GK_ATOM(marginwidth, "marginwidth")
GK_ATOM(mark, "mark")
-GK_ATOM(marquee, "marquee")
GK_ATOM(match, "match")
GK_ATOM(max, "max")
GK_ATOM(maxheight, "maxheight")
diff --git a/dom/base/test/test_bug840098.html b/dom/base/test/test_bug840098.html
index 8eaceb589..e9275d55b 100644
--- a/dom/base/test/test_bug840098.html
+++ b/dom/base/test/test_bug840098.html
@@ -15,7 +15,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=840098
<div id="content" style="display: none">
<div id="foo"></div>
</div>
-<marquee id="m">Hello</marquee>
+<div id="m">Hello</div>
<pre id="test">
<script type="application/javascript">
diff --git a/dom/base/test/test_caretPositionFromPoint.html b/dom/base/test/test_caretPositionFromPoint.html
index 50f12b1ef..054f73227 100644
--- a/dom/base/test/test_caretPositionFromPoint.html
+++ b/dom/base/test/test_caretPositionFromPoint.html
@@ -115,7 +115,7 @@
<div id="a" contenteditable><span id="test1">abc, abc, abc</span><br>
<span id="test2" style="color: blue;">abc, abc, abc</span><br>
<textarea id="test3">abc</textarea><input id="test4" value="abcdef"><br><br>
-<marquee>marquee</marquee>
+<div>div</div>
</div>
<input id="test5" value="The rabbit-hole went straight on like a tunnel for some way, and then dipped suddenly down, so suddenly that Alice had not a moment to think about stopping herself before she found herself falling down a very deep well. Either the well was very deep, or she fell very slowly, for she had plenty of time as she went down to look about her and to wonder what was going to happen next. First, she tried to look down and make out what she was coming to, but it was too dark to see anything; then she looked at the sides of the well, and noticed that they were filled with cupboards and book-shelves; here and there she saw maps and pictures hung upon pegs. She took down a jar from one of the shelves as she passed; it was labelled `ORANGE MARMALADE', but to her great disappointment it was empty: she did not like to drop the jar for fear of killing somebody, so managed to put it into one of the cupboards as she fell past it." type="text">
<input id="test6" type="number" style="width:150px; height:57px;" value="31415"><br>
diff --git a/dom/base/test/test_mutationobservers.html b/dom/base/test/test_mutationobservers.html
deleted file mode 100644
index 021bedf1c..000000000
--- a/dom/base/test/test_mutationobservers.html
+++ /dev/null
@@ -1,918 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=641821
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 641821</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body onload="runTest()">
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=641821">Mozilla Bug 641821</a>
-<p id="display"></p>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 641821 **/
-
-SimpleTest.requestFlakyTimeout("requestFlakyTimeout is silly. (But make sure marquee has time to initialize itself.)");
-
-var div = document.createElement("div");
-
-var M;
-if ("MozMutationObserver" in window) {
- M = window.MozMutationObserver;
-} else if ("WebKitMutationObserver" in window) {
- M = window.WebKitMutationObserver;
-} else {
- M = window.MutationObserver;
-}
-
-function log(str) {
- var d = document.createElement("div");
- d.textContent = str;
- if (str.indexOf("PASSED") >= 0) {
- d.setAttribute("style", "color: green;");
- } else {
- d.setAttribute("style", "color: red;");
- }
- document.getElementById("log").appendChild(d);
-}
-
-// Some helper functions so that this test runs also outside mochitest.
-if (!("ok" in window)) {
- window.ok = function(val, str) {
- log(str + (val ? " PASSED\n" : " FAILED\n"));
- }
-}
-
-if (!("is" in window)) {
- window.is = function(val, refVal, str) {
- log(str + (val == refVal? " PASSED " : " FAILED ") +
- (val != refVal ? "expected " + refVal + " got " + val + "\n" : "\n"));
- }
-}
-
-if (!("isnot" in window)) {
- window.isnot = function(val, refVal, str) {
- log(str + (val != refVal? " PASSED " : " FAILED ") +
- (val == refVal ? "Didn't expect " + refVal + "\n" : "\n"));
- }
-}
-
-if (!("SimpleTest" in window)) {
- window.SimpleTest =
- {
- finish: function() {
- document.getElementById("log").appendChild(document.createTextNode("DONE"));
- },
- waitForExplicitFinish: function() {}
- }
-}
-
-function then(thenFn) {
- setTimeout(function() {
- if (thenFn) {
- setTimeout(thenFn, 0);
- } else {
- SimpleTest.finish();
- }
- }, 0);
-}
-
-var m;
-var m2;
-var m3;
-var m4;
-
-// Checks basic parameter validation and normal 'this' handling.
-// Tests also basic attribute handling.
-function runTest() {
- m = new M(function(){});
- ok(m, "MutationObserver supported");
-
- var e = null;
- try {
- m.observe(document, {});
- } catch (ex) {
- e = ex;
- }
- ok(e, "Should have thrown an exception");
- is(e.name, "TypeError", "Should have thrown TypeError");
-
- e = null;
- try {
- m.observe(document, { childList: true, attributeOldValue: true });
- } catch (ex) {
- e = ex;
- }
- ok(!e, "Shouldn't have thrown an exception");
-
- e = null;
- try {
- m.observe(document, { childList: true, attributeFilter: ["foo"] });
- } catch (ex) {
- e = ex;
- }
- ok(!e, "Shouldn't have thrown an exception");
-
- e = null;
- try {
- m.observe(document, { childList: true, characterDataOldValue: true });
- } catch (ex) {
- e = ex;
- }
- ok(!e, "Shouldn't have thrown an exception");
-
- e = null;
- try {
- m.observe(document);
- } catch (ex) {
- e = ex;
- }
- ok(e, "Should have thrown an exception");
-
- m = new M(function(records, observer) {
- is(observer, m, "2nd parameter should be the mutation observer");
- is(observer, this, "2nd parameter should be 'this'");
- is(records.length, 1, "Should have one record.");
- is(records[0].type, "attributes", "Should have got attributes record");
- is(records[0].target, div, "Should have got div as target");
- is(records[0].attributeName, "foo", "Should have got record about foo attribute");
- observer.disconnect();
- then(testThisBind);
- m = null;
- });
- m.observe(div, { attributes: true, attributeFilter: ["foo"] });
- is(SpecialPowers.wrap(div).getBoundMutationObservers()[0].getObservingInfo()[0].attributes, true);
- is(SpecialPowers.wrap(div).getBoundMutationObservers()[0].getObservingInfo()[0].attributeFilter.length, 1)
- is(SpecialPowers.wrap(div).getBoundMutationObservers()[0].getObservingInfo()[0].attributeFilter[0], "foo")
- div.setAttribute("foo", "bar");
-}
-
-// 'this' handling when fn.bind() is used.
-function testThisBind() {
- var child = div.appendChild(document.createElement("div"));
- var gchild = child.appendChild(document.createElement("div"));
- m = new M((function(records, observer) {
- is(observer, m, "2nd parameter should be the mutation observer");
- isnot(observer, this, "2nd parameter should be 'this'");
- is(records.length, 3, "Should have one record.");
- is(records[0].type, "attributes", "Should have got attributes record");
- is(records[0].target, div, "Should have got div as target");
- is(records[0].attributeName, "foo", "Should have got record about foo attribute");
- is(records[0].oldValue, "bar", "oldValue should be bar");
- is(records[1].type, "attributes", "Should have got attributes record");
- is(records[1].target, div, "Should have got div as target");
- is(records[1].attributeName, "foo", "Should have got record about foo attribute");
- is(records[1].oldValue, "bar2", "oldValue should be bar2");
- is(records[2].type, "attributes", "Should have got attributes record");
- is(records[2].target, gchild, "Should have got div as target");
- is(records[2].attributeName, "foo", "Should have got record about foo attribute");
- is(records[2].oldValue, null, "oldValue should be bar2");
- observer.disconnect();
- then(testCharacterData);
- m = null;
- }).bind(window));
- m.observe(div, { attributes: true, attributeOldValue: true, subtree: true });
- is(SpecialPowers.wrap(div).getBoundMutationObservers()[0].getObservingInfo()[0].attributes, true)
- is(SpecialPowers.wrap(div).getBoundMutationObservers()[0].getObservingInfo()[0].attributeOldValue, true)
- is(SpecialPowers.wrap(div).getBoundMutationObservers()[0].getObservingInfo()[0].subtree, true)
- div.setAttribute("foo", "bar2");
- div.removeAttribute("foo");
- div.removeChild(child);
- child.removeChild(gchild);
- div.appendChild(gchild);
- div.removeChild(gchild);
- gchild.setAttribute("foo", "bar");
-}
-
-function testCharacterData() {
- m = new M(function(records, observer) {
- is(records[0].type, "characterData", "Should have got characterData");
- is(records[0].oldValue, null, "Shouldn't have got oldData");
- observer.disconnect();
- m = null;
- });
- m2 = new M(function(records, observer) {
- is(records[0].type, "characterData", "Should have got characterData");
- is(records[0].oldValue, "foo", "Should have got oldData");
- observer.disconnect();
- m2 = null;
- });
- m3 = new M(function(records, observer) {
- ok(false, "This should not be called!");
- observer.disconnect();
- m3 = null;
- });
- m4 = new M(function(records, observer) {
- is(records[0].oldValue, null, "Shouldn't have got oldData");
- observer.disconnect();
- m3.disconnect();
- m3 = null;
- then(testChildList);
- m4 = null;
- });
-
- div.appendChild(document.createTextNode("foo"));
- m.observe(div, { characterData: true, subtree: true });
- m2.observe(div, { characterData: true, characterDataOldValue: true, subtree: true});
- // If observing the same node twice, only the latter option should apply.
- m3.observe(div, { characterData: true, subtree: true });
- m3.observe(div, { characterData: true, subtree: false });
- m4.observe(div.firstChild, { characterData: true, subtree: false });
-
- is(SpecialPowers.wrap(div).getBoundMutationObservers().length, 3)
- is(SpecialPowers.wrap(div).getBoundMutationObservers()[2].getObservingInfo()[0].characterData, true)
- is(SpecialPowers.wrap(div).getBoundMutationObservers()[2].getObservingInfo()[0].subtree, false)
-
- div.firstChild.data = "bar";
-}
-
-function testChildList() {
- var fc = div.firstChild;
- m = new M(function(records, observer) {
- is(records[0].type, "childList", "Should have got childList");
- is(records[0].addedNodes.length, 0, "Shouldn't have got addedNodes");
- is(records[0].removedNodes.length, 1, "Should have got removedNodes");
- is(records[0].removedNodes[0], fc, "Should have removed a text node");
- observer.disconnect();
- then(testChildList2);
- m = null;
- });
- m.observe(div, { childList: true});
- div.removeChild(div.firstChild);
-}
-
-function testChildList2() {
- div.innerHTML = "<span>1</span><span>2</span>";
- m = new M(function(records, observer) {
- is(records[0].type, "childList", "Should have got childList");
- is(records[0].removedNodes.length, 2, "Should have got removedNodes");
- is(records[0].addedNodes.length, 1, "Should have got addedNodes");
- observer.disconnect();
- then(testChildList3);
- m = null;
- });
- m.observe(div, { childList: true });
- div.innerHTML = "<span><span>foo</span></span>";
-}
-
-function testChildList3() {
- m = new M(function(records, observer) {
- is(records[0].type, "childList", "Should have got childList");
- is(records[0].removedNodes.length, 1, "Should have got removedNodes");
- is(records[0].addedNodes.length, 1, "Should have got addedNodes");
- observer.disconnect();
- then(testChildList4);
- m = null;
- });
- m.observe(div, { childList: true });
- div.textContent = "hello";
-}
-
-function testChildList4() {
- div.textContent = null;
- var df = document.createDocumentFragment();
- var t1 = df.appendChild(document.createTextNode("Hello "));
- var t2 = df.appendChild(document.createTextNode("world!"));
- var s1 = div.appendChild(document.createElement("span"));
- s1.textContent = "foo";
- var s2 = div.appendChild(document.createElement("span"));
- function callback(records, observer) {
- is(records.length, 3, "Should have got one record for removing nodes from document fragment and one record for adding them to div");
- is(records[0].removedNodes.length, 2, "Should have got removedNodes");
- is(records[0].removedNodes[0], t1, "Should be the 1st textnode");
- is(records[0].removedNodes[1], t2, "Should be the 2nd textnode");
- is(records[1].addedNodes.length, 2, "Should have got addedNodes");
- is(records[1].addedNodes[0], t1, "Should be the 1st textnode");
- is(records[1].addedNodes[1], t2, "Should be the 2nd textnode");
- is(records[1].previousSibling, s1, "Should have previousSibling");
- is(records[1].nextSibling, s2, "Should have nextSibling");
- is(records[2].type, "characterData", "3rd record should be characterData");
- is(records[2].target, t1, "target should be the textnode");
- is(records[2].oldValue, "Hello ", "oldValue was 'Hello '");
- observer.disconnect();
- then(testChildList5);
- m = null;
- };
- m = new M(callback);
- m.observe(df, { childList: true, characterData: true, characterDataOldValue: true, subtree: true });
- is(SpecialPowers.wrap(df).getBoundMutationObservers()[0].getObservingInfo()[0].childList, true)
- is(SpecialPowers.wrap(df).getBoundMutationObservers()[0].getObservingInfo()[0].characterData, true)
- is(SpecialPowers.wrap(df).getBoundMutationObservers()[0].getObservingInfo()[0].characterDataOldValue, true)
- is(SpecialPowers.wrap(df).getBoundMutationObservers()[0].getObservingInfo()[0].subtree, true)
- ok(SpecialPowers.compare(SpecialPowers.wrap(df).getBoundMutationObservers()[0].mutationCallback, callback))
- m.observe(div, { childList: true });
- is(SpecialPowers.wrap(df).getBoundMutationObservers()[0].getObservingInfo().length, 2)
-
- // Make sure transient observers aren't leaked.
- var leakTest = new M(function(){});
- leakTest.observe(div, { characterData: true, subtree: true });
-
- div.insertBefore(df, s2);
- s1.firstChild.data = "bar"; // This should *not* create a record.
- t1.data = "Hello the whole "; // This should create a record.
-}
-
-function testChildList5() {
- div.textContent = null;
- var c1 = div.appendChild(document.createElement("div"));
- var c2 = document.createElement("div");
- var div2 = document.createElement("div");
- var c3 = div2.appendChild(document.createElement("div"));
- var c4 = document.createElement("div");
- var c5 = document.createElement("div");
- var df = document.createDocumentFragment();
- var emptyDF = document.createDocumentFragment();
- var dfc1 = df.appendChild(document.createElement("div"));
- var dfc2 = df.appendChild(document.createElement("div"));
- var dfc3 = df.appendChild(document.createElement("div"));
- m = new M(function(records, observer) {
- is(records.length, 6 , "");
- is(records[0].removedNodes.length, 1, "Should have got removedNodes");
- is(records[0].removedNodes[0], c1, "");
- is(records[0].addedNodes.length, 1, "Should have got addedNodes");
- is(records[0].addedNodes[0], c2, "");
- is(records[0].previousSibling, null, "");
- is(records[0].nextSibling, null, "");
- is(records[1].removedNodes.length, 1, "Should have got removedNodes");
- is(records[1].removedNodes[0], c3, "");
- is(records[1].addedNodes.length, 0, "Shouldn't have got addedNodes");
- is(records[1].previousSibling, null, "");
- is(records[1].nextSibling, null, "");
- is(records[2].removedNodes.length, 1, "Should have got removedNodes");
- is(records[2].removedNodes[0], c2, "");
- is(records[2].addedNodes.length, 1, "Should have got addedNodes");
- is(records[2].addedNodes[0], c3, "");
- is(records[2].previousSibling, null, "");
- is(records[2].nextSibling, null, "");
- // Check document fragment handling
- is(records[5].removedNodes.length, 1, "");
- is(records[5].removedNodes[0], c4, "");
- is(records[5].addedNodes.length, 3, "");
- is(records[5].addedNodes[0], dfc1, "");
- is(records[5].addedNodes[1], dfc2, "");
- is(records[5].addedNodes[2], dfc3, "");
- is(records[5].previousSibling, c3, "");
- is(records[5].nextSibling, c5, "");
- observer.disconnect();
- then(testNestedMutations);
- m = null;
- });
- m.observe(div, { childList: true, subtree: true });
- m.observe(div2, { childList: true, subtree: true });
- div.replaceChild(c2, c1);
- div.replaceChild(c3, c2);
- div.appendChild(c4);
- div.appendChild(c5);
- div.replaceChild(df, c4);
- div.appendChild(emptyDF); // empty document shouldn't cause mutation records
-}
-
-function testNestedMutations() {
- div.textContent = null;
- div.appendChild(document.createTextNode("foo"));
- var m2WasCalled = false;
- m = new M(function(records, observer) {
- is(records[0].type, "characterData", "Should have got characterData");
- observer.disconnect();
- m = null;
- m3 = new M(function(records, observer) {
- ok(m2WasCalled, "m2 should have been called before m3!");
- is(records[0].type, "characterData", "Should have got characterData");
- observer.disconnect();
- then(testAdoptNode);
- m3 = null;
- });
- m3.observe(div, { characterData: true, subtree: true});
- div.firstChild.data = "foo";
- });
- m2 = new M(function(records, observer) {
- m2WasCalled = true;
- is(records[0].type, "characterData", "Should have got characterData");
- observer.disconnect();
- m2 = null;
- });
- m2.observe(div, { characterData: true, subtree: true});
- div.appendChild(document.createTextNode("foo"));
- m.observe(div, { characterData: true, subtree: true });
-
- div.firstChild.data = "bar";
-}
-
-function testAdoptNode() {
- var d1 = document.implementation.createHTMLDocument(null);
- var d2 = document.implementation.createHTMLDocument(null);
- var addedNode;
- m = new M(function(records, observer) {
- is(records.length, 3, "Should have 2 records");
- is(records[0].target.ownerDocument, d1, "ownerDocument should be the initial document")
- is(records[1].target.ownerDocument, d2, "ownerDocument should be the new document");
- is(records[2].type, "attributes", "Should have got attribute mutation")
- is(records[2].attributeName, "foo", "Should have got foo attribute mutation")
- observer.disconnect();
- then(testOuterHTML);
- m = null;
- });
- m.observe(d1, { childList: true, subtree: true, attributes: true });
- d2.body.appendChild(d1.body);
- addedNode = d2.body.lastChild.appendChild(d2.createElement("div"));
- addedNode.setAttribute("foo", "bar");
-}
-
-function testOuterHTML() {
- var doc = document.implementation.createHTMLDocument(null);
- var d1 = doc.body.appendChild(document.createElement("div"));
- var d2 = doc.body.appendChild(document.createElement("div"));
- var d3 = doc.body.appendChild(document.createElement("div"));
- var d4 = doc.body.appendChild(document.createElement("div"));
- m = new M(function(records, observer) {
- is(records.length, 4, "Should have 1 record");
- is(records[0].removedNodes.length, 1, "Should have 1 removed nodes");
- is(records[0].addedNodes.length, 2, "Should have 2 added nodes");
- is(records[0].previousSibling, null, "");
- is(records[0].nextSibling, d2, "");
- is(records[1].removedNodes.length, 1, "Should have 1 removed nodes");
- is(records[1].addedNodes.length, 2, "Should have 2 added nodes");
- is(records[1].previousSibling, records[0].addedNodes[1], "");
- is(records[1].nextSibling, d3, "");
- is(records[2].removedNodes.length, 1, "Should have 1 removed nodes");
- is(records[2].addedNodes.length, 2, "Should have 2 added nodes");
- is(records[2].previousSibling, records[1].addedNodes[1], "");
- is(records[2].nextSibling, d4, "");
- is(records[3].removedNodes.length, 1, "Should have 1 removed nodes");
- is(records[3].addedNodes.length, 0);
- is(records[3].previousSibling, records[2].addedNodes[1], "");
- is(records[3].nextSibling, null, "");
- observer.disconnect();
- then(testInsertAdjacentHTML);
- m = null;
- });
- m.observe(doc, { childList: true, subtree: true });
- d1.outerHTML = "<div>1</div><div>1</div>";
- d2.outerHTML = "<div>2</div><div>2</div>";
- d3.outerHTML = "<div>3</div><div>3</div>";
- d4.outerHTML = "";
-}
-
-function testInsertAdjacentHTML() {
- var doc = document.implementation.createHTMLDocument(null);
- var d1 = doc.body.appendChild(document.createElement("div"));
- var d2 = doc.body.appendChild(document.createElement("div"));
- var d3 = doc.body.appendChild(document.createElement("div"));
- var d4 = doc.body.appendChild(document.createElement("div"));
- m = new M(function(records, observer) {
- is(records.length, 4, "");
- is(records[0].target, doc.body, "");
- is(records[0].previousSibling, null, "");
- is(records[0].nextSibling, d1, "");
- is(records[1].target, d2, "");
- is(records[1].previousSibling, null, "");
- is(records[1].nextSibling, null, "");
- is(records[2].target, d3, "");
- is(records[2].previousSibling, null, "");
- is(records[2].nextSibling, null, "");
- is(records[3].target, doc.body, "");
- is(records[3].previousSibling, d4, "");
- is(records[3].nextSibling, null, "");
- observer.disconnect();
- then(testSyncXHR);
- m = null;
- });
- m.observe(doc, { childList: true, subtree: true });
- d1.insertAdjacentHTML("beforebegin", "<div></div><div></div>");
- d2.insertAdjacentHTML("afterbegin", "<div></div><div></div>");
- d3.insertAdjacentHTML("beforeend", "<div></div><div></div>");
- d4.insertAdjacentHTML("afterend", "<div></div><div></div>");
-}
-
-
-var callbackHandled = false;
-
-function testSyncXHR() {
- div.textContent = null;
- m = new M(function(records, observer) {
- is(records.length, 1, "");
- is(records[0].addedNodes.length, 1, "");
- callbackHandled = true;
- observer.disconnect();
- m = null;
- });
- m.observe(div, { childList: true, subtree: true });
- div.innerHTML = "<div>hello</div>";
- var x = new XMLHttpRequest();
- x.open("GET", window.location, false);
- x.send();
- ok(!callbackHandled, "Shouldn't have called the mutation callback!");
- setTimeout(testSyncXHR2, 0);
-}
-
-function testSyncXHR2() {
- ok(callbackHandled, "Should have called the mutation callback!");
- then(testTakeRecords);
-}
-
-function testTakeRecords() {
- var s = "<span>1</span><span>2</span>";
- div.innerHTML = s;
- var takenRecords;
- m = new M(function(records, observer) {
- is(records.length, 3, "Should have got 3 records");
-
- is(records[0].type, "attributes", "Should have got attributes");
- is(records[0].attributeName, "foo", "");
- is(records[0].attributeNamespace, null, "");
- is(records[0].prevValue, null, "");
- is(records[1].type, "childList", "Should have got childList");
- is(records[1].removedNodes.length, 2, "Should have got removedNodes");
- is(records[1].addedNodes.length, 2, "Should have got addedNodes");
- is(records[2].type, "attributes", "Should have got attributes");
- is(records[2].attributeName, "foo", "");
-
- is(records.length, takenRecords.length, "Should have had similar mutations");
- is(records[0].type, takenRecords[0].type, "Should have had similar mutations");
- is(records[1].type, takenRecords[1].type, "Should have had similar mutations");
- is(records[2].type, takenRecords[2].type, "Should have had similar mutations");
-
- is(records[1].removedNodes.length, takenRecords[1].removedNodes.length, "Should have had similar mutations");
- is(records[1].addedNodes.length, takenRecords[1].addedNodes.length, "Should have had similar mutations");
-
- is(m.takeRecords().length, 0, "Shouldn't have any records");
- observer.disconnect();
- then(testMutationObserverAndEvents);
- m = null;
- });
- m.observe(div, { childList: true, attributes: true });
- div.setAttribute("foo", "bar");
- div.innerHTML = s;
- div.removeAttribute("foo");
- takenRecords = m.takeRecords();
- div.setAttribute("foo", "bar");
- div.innerHTML = s;
- div.removeAttribute("foo");
-}
-
-function testTakeRecords() {
- function mutationListener(e) {
- ++mutationEventCount;
- is(e.attrChange, MutationEvent.ADDITION, "unexpected change");
- }
-
- m = new M(function(records, observer) {
- is(records.length, 2, "Should have got 2 records");
- is(records[0].type, "attributes", "Should have got attributes");
- is(records[0].attributeName, "foo", "");
- is(records[0].oldValue, null, "");
- is(records[1].type, "attributes", "Should have got attributes");
- is(records[1].attributeName, "foo", "");
- is(records[1].oldValue, "bar", "");
- observer.disconnect();
- div.removeEventListener("DOMAttrModified", mutationListener);
- then(testExpandos);
- m = null;
- });
- m.observe(div, { attributes: true, attributeOldValue: true });
- // Note, [0] points to a mutation observer which is there for a leak test!
- ok(SpecialPowers.compare(SpecialPowers.wrap(div).getBoundMutationObservers()[1], m));
- var mutationEventCount = 0;
- div.addEventListener("DOMAttrModified", mutationListener);
- div.setAttribute("foo", "bar");
- div.setAttribute("foo", "bar");
- is(mutationEventCount, 1, "Should have got only one mutation event!");
-}
-
-function testExpandos() {
- var m2 = new M(function(records, observer) {
- is(observer.expandoProperty, true);
- observer.disconnect();
- then(testOutsideShadowDOM);
- });
- m2.expandoProperty = true;
- m2.observe(div, { attributes: true });
- m2 = null;
- if (SpecialPowers) {
- // Run GC several times to see if the expando property disappears.
-
- SpecialPowers.gc();
- SpecialPowers.gc();
- SpecialPowers.gc();
- SpecialPowers.gc();
- }
- div.setAttribute("foo", "bar2");
-}
-
-function testOutsideShadowDOM() {
- var m = new M(function(records, observer) {
- is(records.length, 1);
- is(records[0].type, "attributes", "Should have got attributes");
- observer.disconnect();
- then(testMarquee);
- });
- m.observe(div, {
- attributes: true,
- childList: true,
- characterData: true,
- subtree: true
- })
- var sr = div.createShadowRoot();
- sr.innerHTML = "<div" + ">text</" + "div>";
- sr.firstChild.setAttribute("foo", "bar");
- sr.firstChild.firstChild.data = "text2";
- sr.firstChild.appendChild(document.createElement("div"));
- div.setAttribute("foo", "bar");
-}
-
-function testMarquee() {
- var m = new M(function(records, observer) {
- is(records.length, 1);
- is(records[0].type, "attributes");
- is(records[0].attributeName, "ok");
- is(records[0].oldValue, null);
- observer.disconnect();
- then(testStyleCreate);
- });
- var marquee = document.createElement("marquee");
- m.observe(marquee, {
- attributes: true,
- attributeOldValue: true,
- childList: true,
- characterData: true,
- subtree: true
- });
- document.body.appendChild(marquee);
- setTimeout(function() {marquee.setAttribute("ok", "ok")}, 500);
-}
-
-function testStyleCreate() {
- m = new M(function(records, observer) {
- is(records.length, 1, "number of records");
- is(records[0].type, "attributes", "record.type");
- is(records[0].attributeName, "style", "record.attributeName");
- is(records[0].oldValue, null, "record.oldValue");
- isnot(div.getAttribute("style"), null, "style attribute after creation");
- observer.disconnect();
- m = null;
- div.removeAttribute("style");
- then(testStyleModify);
- });
- m.observe(div, { attributes: true, attributeOldValue: true });
- is(div.getAttribute("style"), null, "style attribute before creation");
- div.style.color = "blue";
-}
-
-function testStyleModify() {
- div.style.color = "yellow";
- m = new M(function(records, observer) {
- is(records.length, 1, "number of records");
- is(records[0].type, "attributes", "record.type");
- is(records[0].attributeName, "style", "record.attributeName");
- isnot(div.getAttribute("style"), null, "style attribute after modification");
- observer.disconnect();
- m = null;
- div.removeAttribute("style");
- then(testStyleRead);
- });
- m.observe(div, { attributes: true });
- isnot(div.getAttribute("style"), null, "style attribute before modification");
- div.style.color = "blue";
-}
-
-function testStyleRead() {
- m = new M(function(records, observer) {
- is(records.length, 1, "number of records");
- is(records[0].type, "attributes", "record.type");
- is(records[0].attributeName, "data-test", "record.attributeName");
- is(div.getAttribute("style"), null, "style attribute after read");
- observer.disconnect();
- div.removeAttribute("data-test");
- m = null;
- then(testStyleRemoveProperty);
- });
- m.observe(div, { attributes: true });
- is(div.getAttribute("style"), null, "style attribute before read");
- var value = div.style.color; // shouldn't generate any mutation records
- div.setAttribute("data-test", "a");
-}
-
-function testStyleRemoveProperty() {
- div.style.color = "blue";
- m = new M(function(records, observer) {
- is(records.length, 1, "number of records");
- is(records[0].type, "attributes", "record.type");
- is(records[0].attributeName, "style", "record.attributeName");
- isnot(div.getAttribute("style"), null, "style attribute after successful removeProperty");
- observer.disconnect();
- m = null;
- div.removeAttribute("style");
- then(testStyleRemoveProperty2);
- });
- m.observe(div, { attributes: true });
- isnot(div.getAttribute("style"), null, "style attribute before successful removeProperty");
- div.style.removeProperty("color");
-}
-
-function testStyleRemoveProperty2() {
- m = new M(function(records, observer) {
- is(records.length, 1, "number of records");
- is(records[0].type, "attributes", "record.type");
- is(records[0].attributeName, "data-test", "record.attributeName");
- is(div.getAttribute("style"), null, "style attribute after unsuccessful removeProperty");
- observer.disconnect();
- m = null;
- div.removeAttribute("data-test");
- then(testAttributeRecordMerging1);
- });
- m.observe(div, { attributes: true });
- is(div.getAttribute("style"), null, "style attribute before unsuccessful removeProperty");
- div.style.removeProperty("color"); // shouldn't generate any mutation records
- div.setAttribute("data-test", "a");
-}
-
-function testAttributeRecordMerging1() {
- ok(true, "testAttributeRecordMerging1");
- var m = new M(function(records, observer) {
- is(records.length, 2);
- is(records[0].type, "attributes");
- is(records[0].target, div);
- is(records[0].attributeName, "foo");
- is(records[0].attributeNamespace, null);
- is(records[0].oldValue, null);
-
- is(records[1].type, "attributes");
- is(records[1].target, div.firstChild);
- is(records[1].attributeName, "foo");
- is(records[1].attributeNamespace, null);
- is(records[1].oldValue, null);
- observer.disconnect();
- div.innerHTML = "";
- div.removeAttribute("foo");
- then(testAttributeRecordMerging2);
- });
- m.observe(div, {
- attributes: true,
- subtree: true
- });
- SpecialPowers.wrap(m).mergeAttributeRecords = true;
-
- div.setAttribute("foo", "bar_1");
- div.setAttribute("foo", "bar_2");
- div.innerHTML = "<div></div>";
- div.firstChild.setAttribute("foo", "bar_1");
- div.firstChild.setAttribute("foo", "bar_2");
-}
-
-function testAttributeRecordMerging2() {
- ok(true, "testAttributeRecordMerging2");
- var m = new M(function(records, observer) {
- is(records.length, 2);
- is(records[0].type, "attributes");
- is(records[0].target, div);
- is(records[0].attributeName, "foo");
- is(records[0].attributeNamespace, null);
- is(records[0].oldValue, "initial");
-
- is(records[1].type, "attributes");
- is(records[1].target, div.firstChild);
- is(records[1].attributeName, "foo");
- is(records[1].attributeNamespace, null);
- is(records[1].oldValue, "initial");
- observer.disconnect();
- div.innerHTML = "";
- div.removeAttribute("foo");
- then(testAttributeRecordMerging3);
- });
-
- div.setAttribute("foo", "initial");
- div.innerHTML = "<div></div>";
- div.firstChild.setAttribute("foo", "initial");
- m.observe(div, {
- attributes: true,
- subtree: true,
- attributeOldValue: true
- });
- SpecialPowers.wrap(m).mergeAttributeRecords = true;
-
- div.setAttribute("foo", "bar_1");
- div.setAttribute("foo", "bar_2");
- div.firstChild.setAttribute("foo", "bar_1");
- div.firstChild.setAttribute("foo", "bar_2");
-}
-
-function testAttributeRecordMerging3() {
- ok(true, "testAttributeRecordMerging3");
- var m = new M(function(records, observer) {
- is(records.length, 4);
- is(records[0].type, "attributes");
- is(records[0].target, div);
- is(records[0].attributeName, "foo");
- is(records[0].attributeNamespace, null);
- is(records[0].oldValue, "initial");
-
- is(records[1].type, "attributes");
- is(records[1].target, div.firstChild);
- is(records[1].attributeName, "foo");
- is(records[1].attributeNamespace, null);
- is(records[1].oldValue, "initial");
-
- is(records[2].type, "attributes");
- is(records[2].target, div);
- is(records[2].attributeName, "foo");
- is(records[2].attributeNamespace, null);
- is(records[2].oldValue, "bar_1");
-
- is(records[3].type, "attributes");
- is(records[3].target, div.firstChild);
- is(records[3].attributeName, "foo");
- is(records[3].attributeNamespace, null);
- is(records[3].oldValue, "bar_1");
-
- observer.disconnect();
- div.innerHTML = "";
- div.removeAttribute("foo");
- then(testAttributeRecordMerging4);
- });
-
- div.setAttribute("foo", "initial");
- div.innerHTML = "<div></div>";
- div.firstChild.setAttribute("foo", "initial");
- m.observe(div, {
- attributes: true,
- subtree: true,
- attributeOldValue: true
- });
- SpecialPowers.wrap(m).mergeAttributeRecords = true;
-
- // No merging should happen.
- div.setAttribute("foo", "bar_1");
- div.firstChild.setAttribute("foo", "bar_1");
- div.setAttribute("foo", "bar_2");
- div.firstChild.setAttribute("foo", "bar_2");
-}
-
-function testAttributeRecordMerging4() {
- ok(true, "testAttributeRecordMerging4");
- var m = new M(function(records, observer) {
- });
-
- div.setAttribute("foo", "initial");
- div.innerHTML = "<div></div>";
- div.firstChild.setAttribute("foo", "initial");
- m.observe(div, {
- attributes: true,
- subtree: true,
- attributeOldValue: true
- });
- SpecialPowers.wrap(m).mergeAttributeRecords = true;
-
- div.setAttribute("foo", "bar_1");
- div.setAttribute("foo", "bar_2");
- div.firstChild.setAttribute("foo", "bar_1");
- div.firstChild.setAttribute("foo", "bar_2");
-
- var records = m.takeRecords();
-
- is(records.length, 2);
- is(records[0].type, "attributes");
- is(records[0].target, div);
- is(records[0].attributeName, "foo");
- is(records[0].attributeNamespace, null);
- is(records[0].oldValue, "initial");
-
- is(records[1].type, "attributes");
- is(records[1].target, div.firstChild);
- is(records[1].attributeName, "foo");
- is(records[1].attributeNamespace, null);
- is(records[1].oldValue, "initial");
- m.disconnect();
- div.innerHTML = "";
- div.removeAttribute("foo");
- then(testChromeOnly);
-}
-
-function testChromeOnly() {
- // Content can't access nativeAnonymousChildList
- try {
- var mo = new M(function(records, observer) { });
- mo.observe(div, { nativeAnonymousChildList: true });
- ok(false, "Should have thrown when trying to observe with chrome-only init");
- } catch (e) {
- ok(true, "Throws when trying to observe with chrome-only init");
- }
-
- then();
-}
-
-SimpleTest.waitForExplicitFinish();
-
-</script>
-</pre>
-<div id="log">
-</div>
-</body>
-</html>
diff --git a/dom/canvas/test/webgl-conf/checkout/deqp/temp_externs/webkit_css.js b/dom/canvas/test/webgl-conf/checkout/deqp/temp_externs/webkit_css.js
deleted file mode 100644
index 60841f8e2..000000000
--- a/dom/canvas/test/webgl-conf/checkout/deqp/temp_externs/webkit_css.js
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- * Copyright 2008 The Closure Compiler Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @fileoverview Definitions for WebKit's custom CSS properties. Copied from:
- * {@link
- * http://trac.webkit.org/browser/trunk/Source/WebCore/css/CSSPropertyNames.in}
- *
- * If you make changes to this file, notice that every property appears
- * twice: once as an uppercase name and once as a lowercase name.
- * WebKit allows both. The uppercase version is preferred.
- *
- * @externs
- * @author nicksantos@google.com (Nick Santos)
- */
-
-/** @type {string} */ CSSProperties.prototype.WebkitAlignContent;
-/** @type {string} */ CSSProperties.prototype.WebkitAlignItems;
-/** @type {string} */ CSSProperties.prototype.WebkitAlignSelf;
-/** @type {string} */ CSSProperties.prototype.WebkitAnimation;
-/** @type {string} */ CSSProperties.prototype.WebkitAnimationDelay;
-/** @type {string} */ CSSProperties.prototype.WebkitAnimationDirection;
-/** @type {string} */ CSSProperties.prototype.WebkitAnimationDuration;
-/** @type {string} */ CSSProperties.prototype.WebkitAnimationFillMode;
-/** @type {string} */ CSSProperties.prototype.WebkitAnimationIterationCount;
-/** @type {string} */ CSSProperties.prototype.WebkitAnimationName;
-/** @type {string} */ CSSProperties.prototype.WebkitAnimationPlayState;
-/** @type {string} */ CSSProperties.prototype.WebkitAnimationTimingFunction;
-/** @type {string} */ CSSProperties.prototype.WebkitAppearance;
-/** @type {string} */ CSSProperties.prototype.WebkitAppRegion;
-/** @type {string} */ CSSProperties.prototype.WebkitAspectRatio;
-/** @type {string} */ CSSProperties.prototype.WebkitBackfaceVisibility;
-/** @type {string} */ CSSProperties.prototype.WebkitBackgroundClip;
-/** @type {string} */ CSSProperties.prototype.WebkitBackgroundComposite;
-/** @type {string} */ CSSProperties.prototype.WebkitBackgroundOrigin;
-/** @type {string} */ CSSProperties.prototype.WebkitBackgroundSize;
-/** @type {string} */ CSSProperties.prototype.WebkitBinding;
-/** @type {string} */ CSSProperties.prototype.WebkitBlendMode;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderAfter;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderAfterColor;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderAfterStyle;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderAfterWidth;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderBefore;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderBeforeColor;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderBeforeStyle;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderBeforeWidth;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderBottomLeftRadius;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderBottomRightRadius;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderEnd;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderEndColor;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderEndStyle;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderEndWidth;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderFit;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderHorizontalSpacing;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderImage;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderRadius;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderStart;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderStartColor;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderStartStyle;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderStartWidth;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderTopLeftRadius;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderTopRightRadius;
-/** @type {string} */ CSSProperties.prototype.WebkitBorderVerticalSpacing;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxAlign;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxDecorationBreak;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxDirection;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxFlex;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxFlexGroup;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxLines;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxOrdinalGroup;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxOrient;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxPack;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxReflect;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxShadow;
-/** @type {string} */ CSSProperties.prototype.WebkitBoxSizing;
-/** @type {string} */ CSSProperties.prototype.WebkitColorCorrection;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnAxis;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnBreakAfter;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnBreakBefore;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnBreakInside;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnCount;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnGap;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnProgression;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnRule;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnRuleColor;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnRuleStyle;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnRuleWidth;
-/** @type {string} */ CSSProperties.prototype.WebkitColumns;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnSpan;
-/** @type {string} */ CSSProperties.prototype.WebkitColumnWidth;
-/** @type {string} */ CSSProperties.prototype.WebkitDashboardRegion;
-/** @type {string} */ CSSProperties.prototype.WebkitFilter;
-/** @type {string} */ CSSProperties.prototype.WebkitFlex;
-/** @type {string} */ CSSProperties.prototype.WebkitFlexBasis;
-/** @type {string} */ CSSProperties.prototype.WebkitFlexDirection;
-/** @type {string} */ CSSProperties.prototype.WebkitFlexFlow;
-/** @type {string} */ CSSProperties.prototype.WebkitFlexGrow;
-/** @type {string} */ CSSProperties.prototype.WebkitFlexShrink;
-/** @type {string} */ CSSProperties.prototype.WebkitFlexWrap;
-/** @type {string} */ CSSProperties.prototype.WebkitFlowFrom;
-/** @type {string} */ CSSProperties.prototype.WebkitFlowInto;
-/** @type {string} */ CSSProperties.prototype.WebkitFontSizeDelta;
-/** @type {string} */ CSSProperties.prototype.WebkitFontSmoothing;
-/** @type {string} */ CSSProperties.prototype.WebkitGridColumn;
-/** @type {string} */ CSSProperties.prototype.WebkitGridColumns;
-/** @type {string} */ CSSProperties.prototype.WebkitGridRow;
-/** @type {string} */ CSSProperties.prototype.WebkitGridRows;
-/** @type {string} */ CSSProperties.prototype.WebkitHighlight;
-/** @type {string} */ CSSProperties.prototype.WebkitHyphenateCharacter;
-/** @type {string} */ CSSProperties.prototype.WebkitHyphenateLimitAfter;
-/** @type {string} */ CSSProperties.prototype.WebkitHyphenateLimitBefore;
-/** @type {string} */ CSSProperties.prototype.WebkitHyphenateLimitLines;
-/** @type {string} */ CSSProperties.prototype.WebkitHyphens;
-/** @type {string} */ CSSProperties.prototype.WebkitJustifyContent;
-/** @type {string} */ CSSProperties.prototype.WebkitLineAlign;
-/** @type {string} */ CSSProperties.prototype.WebkitLineBoxContain;
-/** @type {string} */ CSSProperties.prototype.WebkitLineBreak;
-/** @type {string} */ CSSProperties.prototype.WebkitLineClamp;
-/** @type {string} */ CSSProperties.prototype.WebkitLineGrid;
-/** @type {string} */ CSSProperties.prototype.WebkitLineSnap;
-/** @type {string} */ CSSProperties.prototype.WebkitLocale;
-/** @type {string} */ CSSProperties.prototype.WebkitLogicalHeight;
-/** @type {string} */ CSSProperties.prototype.WebkitLogicalWidth;
-/** @type {string} */ CSSProperties.prototype.WebkitMarginAfter;
-/** @type {string} */ CSSProperties.prototype.WebkitMarginAfterCollapse;
-/** @type {string} */ CSSProperties.prototype.WebkitMarginBefore;
-/** @type {string} */ CSSProperties.prototype.WebkitMarginBeforeCollapse;
-/** @type {string} */ CSSProperties.prototype.WebkitMarginBottomCollapse;
-/** @type {string} */ CSSProperties.prototype.WebkitMarginCollapse;
-/** @type {string} */ CSSProperties.prototype.WebkitMarginEnd;
-/** @type {string} */ CSSProperties.prototype.WebkitMarginStart;
-/** @type {string} */ CSSProperties.prototype.WebkitMarginTopCollapse;
-/** @type {string} */ CSSProperties.prototype.WebkitMarquee;
-/** @type {string} */ CSSProperties.prototype.WebkitMarqueeDirection;
-/** @type {string} */ CSSProperties.prototype.WebkitMarqueeIncrement;
-/** @type {string} */ CSSProperties.prototype.WebkitMarqueeRepetition;
-/** @type {string} */ CSSProperties.prototype.WebkitMarqueeSpeed;
-/** @type {string} */ CSSProperties.prototype.WebkitMarqueeStyle;
-/** @type {string} */ CSSProperties.prototype.WebkitMask;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskAttachment;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImage;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImageOutset;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImageRepeat;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImageSlice;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImageSource;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImageWidth;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskClip;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskComposite;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskImage;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskOrigin;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskPosition;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskPositionX;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskPositionY;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskRepeat;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskRepeatX;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskRepeatY;
-/** @type {string} */ CSSProperties.prototype.WebkitMaskSize;
-/** @type {string} */
-CSSProperties.prototype.WebkitMatchNearestMailBlockquoteColor;
-/** @type {string} */ CSSProperties.prototype.WebkitMaxLogicalHeight;
-/** @type {string} */ CSSProperties.prototype.WebkitMaxLogicalWidth;
-/** @type {string} */ CSSProperties.prototype.WebkitMinLogicalHeight;
-/** @type {string} */ CSSProperties.prototype.WebkitMinLogicalWidth;
-/** @type {string} */ CSSProperties.prototype.WebkitNbspMode;
-/** @type {string} */ CSSProperties.prototype.WebkitOrder;
-/** @type {string} */ CSSProperties.prototype.WebkitOverflowScrolling;
-/** @type {string} */ CSSProperties.prototype.WebkitPaddingAfter;
-/** @type {string} */ CSSProperties.prototype.WebkitPaddingBefore;
-/** @type {string} */ CSSProperties.prototype.WebkitPaddingEnd;
-/** @type {string} */ CSSProperties.prototype.WebkitPaddingStart;
-/** @type {string} */ CSSProperties.prototype.WebkitPerspective;
-/** @type {string} */ CSSProperties.prototype.WebkitPerspectiveOrigin;
-/** @type {string} */ CSSProperties.prototype.WebkitPerspectiveOriginX;
-/** @type {string} */ CSSProperties.prototype.WebkitPerspectiveOriginY;
-/** @type {string} */ CSSProperties.prototype.WebkitPrintColorAdjust;
-/** @type {string} */ CSSProperties.prototype.WebkitRegionBreakAfter;
-/** @type {string} */ CSSProperties.prototype.WebkitRegionBreakBefore;
-/** @type {string} */ CSSProperties.prototype.WebkitRegionBreakInside;
-/** @type {string} */ CSSProperties.prototype.WebkitRegionOverflow;
-/** @type {string} */ CSSProperties.prototype.WebkitRtlOrdering;
-/** @type {string} */ CSSProperties.prototype.WebkitRubyPosition;
-/** @type {string} */ CSSProperties.prototype.WebkitShapeInside;
-/** @type {string} */ CSSProperties.prototype.WebkitShapeMargin;
-/** @type {string} */ CSSProperties.prototype.WebkitShapeOutside;
-/** @type {string} */ CSSProperties.prototype.WebkitShapePadding;
-/** @type {string} */ CSSProperties.prototype.WebkitTapHighlightColor;
-/** @type {string} */ CSSProperties.prototype.WebkitTextAlignLast;
-/** @type {string} */ CSSProperties.prototype.WebkitTextCombine;
-/** @type {string} */ CSSProperties.prototype.WebkitTextDecorationLine;
-/** @type {string} */ CSSProperties.prototype.WebkitTextDecorationsInEffect;
-/** @type {string} */ CSSProperties.prototype.WebkitTextDecorationStyle;
-/** @type {string} */ CSSProperties.prototype.WebkitTextEmphasis;
-/** @type {string} */ CSSProperties.prototype.WebkitTextEmphasisColor;
-/** @type {string} */ CSSProperties.prototype.WebkitTextEmphasisPosition;
-/** @type {string} */ CSSProperties.prototype.WebkitTextEmphasisStyle;
-/** @type {string} */ CSSProperties.prototype.WebkitTextFillColor;
-/** @type {string} */ CSSProperties.prototype.WebkitTextOrientation;
-/** @type {string} */ CSSProperties.prototype.WebkitTextSecurity;
-/** @type {string} */ CSSProperties.prototype.WebkitTextSizeAdjust;
-/** @type {string} */ CSSProperties.prototype.WebkitTextStroke;
-/** @type {string} */ CSSProperties.prototype.WebkitTextStrokeColor;
-/** @type {string} */ CSSProperties.prototype.WebkitTextStrokeWidth;
-/** @type {string} */ CSSProperties.prototype.WebkitTransform;
-/** @type {string} */ CSSProperties.prototype.WebkitTransformOrigin;
-/** @type {string} */ CSSProperties.prototype.WebkitTransformOriginX;
-/** @type {string} */ CSSProperties.prototype.WebkitTransformOriginY;
-/** @type {string} */ CSSProperties.prototype.WebkitTransformOriginZ;
-/** @type {string} */ CSSProperties.prototype.WebkitTransformStyle;
-/** @type {string} */ CSSProperties.prototype.WebkitTransition;
-/** @type {string} */ CSSProperties.prototype.WebkitTransitionDelay;
-/** @type {string} */ CSSProperties.prototype.WebkitTransitionDuration;
-/** @type {string} */ CSSProperties.prototype.WebkitTransitionProperty;
-/** @type {string} */ CSSProperties.prototype.WebkitTransitionRepeatCount;
-/** @type {string} */ CSSProperties.prototype.WebkitTransitionTimingFunction;
-/** @type {string} */ CSSProperties.prototype.WebkitUserDrag;
-/** @type {string} */ CSSProperties.prototype.WebkitUserModify;
-/** @type {string} */ CSSProperties.prototype.WebkitUserSelect;
-/** @type {string} */ CSSProperties.prototype.WebkitWrap;
-/** @type {string} */ CSSProperties.prototype.WebkitWrapFlow;
-/** @type {string} */ CSSProperties.prototype.WebkitWrapThrough;
-/** @type {string} */ CSSProperties.prototype.WebkitWritingMode;
-
-// WebKit also adds bindings for the lowercase versions of these properties.
-// The uppercase version is preferred.
-
-/** @type {string} */ CSSProperties.prototype.webkitAlignContent;
-/** @type {string} */ CSSProperties.prototype.webkitAlignItems;
-/** @type {string} */ CSSProperties.prototype.webkitAlignSelf;
-/** @type {string} */ CSSProperties.prototype.webkitAnimation;
-/** @type {string} */ CSSProperties.prototype.webkitAnimationDelay;
-/** @type {string} */ CSSProperties.prototype.webkitAnimationDirection;
-/** @type {string} */ CSSProperties.prototype.webkitAnimationDuration;
-/** @type {string} */ CSSProperties.prototype.webkitAnimationFillMode;
-/** @type {string} */ CSSProperties.prototype.webkitAnimationIterationCount;
-/** @type {string} */ CSSProperties.prototype.webkitAnimationName;
-/** @type {string} */ CSSProperties.prototype.webkitAnimationPlayState;
-/** @type {string} */ CSSProperties.prototype.webkitAnimationTimingFunction;
-/** @type {string} */ CSSProperties.prototype.webkitAppearance;
-/** @type {string} */ CSSProperties.prototype.webkitAppRegion;
-/** @type {string} */ CSSProperties.prototype.webkitAspectRatio;
-/** @type {string} */ CSSProperties.prototype.webkitBackfaceVisibility;
-/** @type {string} */ CSSProperties.prototype.webkitBackgroundClip;
-/** @type {string} */ CSSProperties.prototype.webkitBackgroundComposite;
-/** @type {string} */ CSSProperties.prototype.webkitBackgroundOrigin;
-/** @type {string} */ CSSProperties.prototype.webkitBackgroundSize;
-/** @type {string} */ CSSProperties.prototype.webkitBinding;
-/** @type {string} */ CSSProperties.prototype.webkitBlendMode;
-/** @type {string} */ CSSProperties.prototype.webkitBorderAfter;
-/** @type {string} */ CSSProperties.prototype.webkitBorderAfterColor;
-/** @type {string} */ CSSProperties.prototype.webkitBorderAfterStyle;
-/** @type {string} */ CSSProperties.prototype.webkitBorderAfterWidth;
-/** @type {string} */ CSSProperties.prototype.webkitBorderBefore;
-/** @type {string} */ CSSProperties.prototype.webkitBorderBeforeColor;
-/** @type {string} */ CSSProperties.prototype.webkitBorderBeforeStyle;
-/** @type {string} */ CSSProperties.prototype.webkitBorderBeforeWidth;
-/** @type {string} */ CSSProperties.prototype.webkitBorderBottomLeftRadius;
-/** @type {string} */ CSSProperties.prototype.webkitBorderBottomRightRadius;
-/** @type {string} */ CSSProperties.prototype.webkitBorderEnd;
-/** @type {string} */ CSSProperties.prototype.webkitBorderEndColor;
-/** @type {string} */ CSSProperties.prototype.webkitBorderEndStyle;
-/** @type {string} */ CSSProperties.prototype.webkitBorderEndWidth;
-/** @type {string} */ CSSProperties.prototype.webkitBorderFit;
-/** @type {string} */ CSSProperties.prototype.webkitBorderHorizontalSpacing;
-/** @type {string} */ CSSProperties.prototype.webkitBorderImage;
-/** @type {string} */ CSSProperties.prototype.webkitBorderRadius;
-/** @type {string} */ CSSProperties.prototype.webkitBorderStart;
-/** @type {string} */ CSSProperties.prototype.webkitBorderStartColor;
-/** @type {string} */ CSSProperties.prototype.webkitBorderStartStyle;
-/** @type {string} */ CSSProperties.prototype.webkitBorderStartWidth;
-/** @type {string} */ CSSProperties.prototype.webkitBorderTopLeftRadius;
-/** @type {string} */ CSSProperties.prototype.webkitBorderTopRightRadius;
-/** @type {string} */ CSSProperties.prototype.webkitBorderVerticalSpacing;
-/** @type {string} */ CSSProperties.prototype.webkitBoxAlign;
-/** @type {string} */ CSSProperties.prototype.webkitBoxDecorationBreak;
-/** @type {string} */ CSSProperties.prototype.webkitBoxDirection;
-/** @type {string} */ CSSProperties.prototype.webkitBoxFlex;
-/** @type {string} */ CSSProperties.prototype.webkitBoxFlexGroup;
-/** @type {string} */ CSSProperties.prototype.webkitBoxLines;
-/** @type {string} */ CSSProperties.prototype.webkitBoxOrdinalGroup;
-/** @type {string} */ CSSProperties.prototype.webkitBoxOrient;
-/** @type {string} */ CSSProperties.prototype.webkitBoxPack;
-/** @type {string} */ CSSProperties.prototype.webkitBoxReflect;
-/** @type {string} */ CSSProperties.prototype.webkitBoxShadow;
-/** @type {string} */ CSSProperties.prototype.webkitBoxSizing;
-/** @type {string} */ CSSProperties.prototype.webkitColorCorrection;
-/** @type {string} */ CSSProperties.prototype.webkitColumnAxis;
-/** @type {string} */ CSSProperties.prototype.webkitColumnBreakAfter;
-/** @type {string} */ CSSProperties.prototype.webkitColumnBreakBefore;
-/** @type {string} */ CSSProperties.prototype.webkitColumnBreakInside;
-/** @type {string} */ CSSProperties.prototype.webkitColumnCount;
-/** @type {string} */ CSSProperties.prototype.webkitColumnGap;
-/** @type {string} */ CSSProperties.prototype.webkitColumnProgression;
-/** @type {string} */ CSSProperties.prototype.webkitColumnRule;
-/** @type {string} */ CSSProperties.prototype.webkitColumnRuleColor;
-/** @type {string} */ CSSProperties.prototype.webkitColumnRuleStyle;
-/** @type {string} */ CSSProperties.prototype.webkitColumnRuleWidth;
-/** @type {string} */ CSSProperties.prototype.webkitColumns;
-/** @type {string} */ CSSProperties.prototype.webkitColumnSpan;
-/** @type {string} */ CSSProperties.prototype.webkitColumnWidth;
-/** @type {string} */ CSSProperties.prototype.webkitDashboardRegion;
-/** @type {string} */ CSSProperties.prototype.webkitFilter;
-/** @type {string} */ CSSProperties.prototype.webkitFlex;
-/** @type {string} */ CSSProperties.prototype.webkitFlexBasis;
-/** @type {string} */ CSSProperties.prototype.webkitFlexDirection;
-/** @type {string} */ CSSProperties.prototype.webkitFlexFlow;
-/** @type {string} */ CSSProperties.prototype.webkitFlexGrow;
-/** @type {string} */ CSSProperties.prototype.webkitFlexShrink;
-/** @type {string} */ CSSProperties.prototype.webkitFlexWrap;
-/** @type {string} */ CSSProperties.prototype.webkitFlowFrom;
-/** @type {string} */ CSSProperties.prototype.webkitFlowInto;
-/** @type {string} */ CSSProperties.prototype.webkitFontSizeDelta;
-/** @type {string} */ CSSProperties.prototype.webkitFontSmoothing;
-/** @type {string} */ CSSProperties.prototype.webkitGridColumn;
-/** @type {string} */ CSSProperties.prototype.webkitGridColumns;
-/** @type {string} */ CSSProperties.prototype.webkitGridRow;
-/** @type {string} */ CSSProperties.prototype.webkitGridRows;
-/** @type {string} */ CSSProperties.prototype.webkitHighlight;
-/** @type {string} */ CSSProperties.prototype.webkitHyphenateCharacter;
-/** @type {string} */ CSSProperties.prototype.webkitHyphenateLimitAfter;
-/** @type {string} */ CSSProperties.prototype.webkitHyphenateLimitBefore;
-/** @type {string} */ CSSProperties.prototype.webkitHyphenateLimitLines;
-/** @type {string} */ CSSProperties.prototype.webkitHyphens;
-/** @type {string} */ CSSProperties.prototype.webkitJustifyContent;
-/** @type {string} */ CSSProperties.prototype.webkitLineAlign;
-/** @type {string} */ CSSProperties.prototype.webkitLineBoxContain;
-/** @type {string} */ CSSProperties.prototype.webkitLineBreak;
-/** @type {string} */ CSSProperties.prototype.webkitLineClamp;
-/** @type {string} */ CSSProperties.prototype.webkitLineGrid;
-/** @type {string} */ CSSProperties.prototype.webkitLineSnap;
-/** @type {string} */ CSSProperties.prototype.webkitLocale;
-/** @type {string} */ CSSProperties.prototype.webkitLogicalHeight;
-/** @type {string} */ CSSProperties.prototype.webkitLogicalWidth;
-/** @type {string} */ CSSProperties.prototype.webkitMarginAfter;
-/** @type {string} */ CSSProperties.prototype.webkitMarginAfterCollapse;
-/** @type {string} */ CSSProperties.prototype.webkitMarginBefore;
-/** @type {string} */ CSSProperties.prototype.webkitMarginBeforeCollapse;
-/** @type {string} */ CSSProperties.prototype.webkitMarginBottomCollapse;
-/** @type {string} */ CSSProperties.prototype.webkitMarginCollapse;
-/** @type {string} */ CSSProperties.prototype.webkitMarginEnd;
-/** @type {string} */ CSSProperties.prototype.webkitMarginStart;
-/** @type {string} */ CSSProperties.prototype.webkitMarginTopCollapse;
-/** @type {string} */ CSSProperties.prototype.webkitMarquee;
-/** @type {string} */ CSSProperties.prototype.webkitMarqueeDirection;
-/** @type {string} */ CSSProperties.prototype.webkitMarqueeIncrement;
-/** @type {string} */ CSSProperties.prototype.webkitMarqueeRepetition;
-/** @type {string} */ CSSProperties.prototype.webkitMarqueeSpeed;
-/** @type {string} */ CSSProperties.prototype.webkitMarqueeStyle;
-/** @type {string} */ CSSProperties.prototype.webkitMask;
-/** @type {string} */ CSSProperties.prototype.webkitMaskAttachment;
-/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImage;
-/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImageOutset;
-/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImageRepeat;
-/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImageSlice;
-/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImageSource;
-/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImageWidth;
-/** @type {string} */ CSSProperties.prototype.webkitMaskClip;
-/** @type {string} */ CSSProperties.prototype.webkitMaskComposite;
-/** @type {string} */ CSSProperties.prototype.webkitMaskImage;
-/** @type {string} */ CSSProperties.prototype.webkitMaskOrigin;
-/** @type {string} */ CSSProperties.prototype.webkitMaskPosition;
-/** @type {string} */ CSSProperties.prototype.webkitMaskPositionX;
-/** @type {string} */ CSSProperties.prototype.webkitMaskPositionY;
-/** @type {string} */ CSSProperties.prototype.webkitMaskRepeat;
-/** @type {string} */ CSSProperties.prototype.webkitMaskRepeatX;
-/** @type {string} */ CSSProperties.prototype.webkitMaskRepeatY;
-/** @type {string} */ CSSProperties.prototype.webkitMaskSize;
-/** @type {string} */
-CSSProperties.prototype.webkitMatchNearestMailBlockquoteColor;
-/** @type {string} */ CSSProperties.prototype.webkitMaxLogicalHeight;
-/** @type {string} */ CSSProperties.prototype.webkitMaxLogicalWidth;
-/** @type {string} */ CSSProperties.prototype.webkitMinLogicalHeight;
-/** @type {string} */ CSSProperties.prototype.webkitMinLogicalWidth;
-/** @type {string} */ CSSProperties.prototype.webkitNbspMode;
-/** @type {string} */ CSSProperties.prototype.webkitOrder;
-/** @type {string} */ CSSProperties.prototype.webkitOverflowScrolling;
-/** @type {string} */ CSSProperties.prototype.webkitPaddingAfter;
-/** @type {string} */ CSSProperties.prototype.webkitPaddingBefore;
-/** @type {string} */ CSSProperties.prototype.webkitPaddingEnd;
-/** @type {string} */ CSSProperties.prototype.webkitPaddingStart;
-/** @type {string} */ CSSProperties.prototype.webkitPerspective;
-/** @type {string} */ CSSProperties.prototype.webkitPerspectiveOrigin;
-/** @type {string} */ CSSProperties.prototype.webkitPerspectiveOriginX;
-/** @type {string} */ CSSProperties.prototype.webkitPerspectiveOriginY;
-/** @type {string} */ CSSProperties.prototype.webkitPrintColorAdjust;
-/** @type {string} */ CSSProperties.prototype.webkitRegionBreakAfter;
-/** @type {string} */ CSSProperties.prototype.webkitRegionBreakBefore;
-/** @type {string} */ CSSProperties.prototype.webkitRegionBreakInside;
-/** @type {string} */ CSSProperties.prototype.webkitRegionOverflow;
-/** @type {string} */ CSSProperties.prototype.webkitRtlOrdering;
-/** @type {string} */ CSSProperties.prototype.webkitRubyPosition;
-/** @type {string} */ CSSProperties.prototype.webkitShapeInside;
-/** @type {string} */ CSSProperties.prototype.webkitShapeMargin;
-/** @type {string} */ CSSProperties.prototype.webkitShapeOutside;
-/** @type {string} */ CSSProperties.prototype.webkitShapePadding;
-/** @type {string} */ CSSProperties.prototype.webkitTapHighlightColor;
-/** @type {string} */ CSSProperties.prototype.webkitTextAlignLast;
-/** @type {string} */ CSSProperties.prototype.webkitTextCombine;
-/** @type {string} */ CSSProperties.prototype.webkitTextDecorationLine;
-/** @type {string} */ CSSProperties.prototype.webkitTextDecorationsInEffect;
-/** @type {string} */ CSSProperties.prototype.webkitTextDecorationStyle;
-/** @type {string} */ CSSProperties.prototype.webkitTextEmphasis;
-/** @type {string} */ CSSProperties.prototype.webkitTextEmphasisColor;
-/** @type {string} */ CSSProperties.prototype.webkitTextEmphasisPosition;
-/** @type {string} */ CSSProperties.prototype.webkitTextEmphasisStyle;
-/** @type {string} */ CSSProperties.prototype.webkitTextFillColor;
-/** @type {string} */ CSSProperties.prototype.webkitTextOrientation;
-/** @type {string} */ CSSProperties.prototype.webkitTextSecurity;
-/** @type {string} */ CSSProperties.prototype.webkitTextSizeAdjust;
-/** @type {string} */ CSSProperties.prototype.webkitTextStroke;
-/** @type {string} */ CSSProperties.prototype.webkitTextStrokeColor;
-/** @type {string} */ CSSProperties.prototype.webkitTextStrokeWidth;
-/** @type {string} */ CSSProperties.prototype.webkitTransform;
-/** @type {string} */ CSSProperties.prototype.webkitTransformOrigin;
-/** @type {string} */ CSSProperties.prototype.webkitTransformOriginX;
-/** @type {string} */ CSSProperties.prototype.webkitTransformOriginY;
-/** @type {string} */ CSSProperties.prototype.webkitTransformOriginZ;
-/** @type {string} */ CSSProperties.prototype.webkitTransformStyle;
-/** @type {string} */ CSSProperties.prototype.webkitTransition;
-/** @type {string} */ CSSProperties.prototype.webkitTransitionDelay;
-/** @type {string} */ CSSProperties.prototype.webkitTransitionDuration;
-/** @type {string} */ CSSProperties.prototype.webkitTransitionProperty;
-/** @type {string} */ CSSProperties.prototype.webkitTransitionRepeatCount;
-/** @type {string} */ CSSProperties.prototype.webkitTransitionTimingFunction;
-/** @type {string} */ CSSProperties.prototype.webkitUserDrag;
-/** @type {string} */ CSSProperties.prototype.webkitUserModify;
-/** @type {string} */ CSSProperties.prototype.webkitUserSelect;
-/** @type {string} */ CSSProperties.prototype.webkitWrap;
-/** @type {string} */ CSSProperties.prototype.webkitWrapFlow;
-/** @type {string} */ CSSProperties.prototype.webkitWrapThrough;
-/** @type {string} */ CSSProperties.prototype.webkitWritingMode;
-
-/**
- * @constructor
- * @param {number} x
- * @param {number} y
- */
-function WebKitPoint(x, y) {}
-
-/** @type {number} */
-WebKitPoint.prototype.x;
-
-/** @type {number} */
-WebKitPoint.prototype.y;
diff --git a/dom/html/HTMLDivElement.cpp b/dom/html/HTMLDivElement.cpp
index b56187e29..d5b587241 100644
--- a/dom/html/HTMLDivElement.cpp
+++ b/dom/html/HTMLDivElement.cpp
@@ -34,20 +34,6 @@ HTMLDivElement::ParseAttribute(int32_t aNamespaceID,
nsAttrValue& aResult)
{
if (aNamespaceID == kNameSpaceID_None) {
- if (mNodeInfo->Equals(nsGkAtoms::marquee)) {
- if ((aAttribute == nsGkAtoms::width) ||
- (aAttribute == nsGkAtoms::height)) {
- return aResult.ParseSpecialIntValue(aValue);
- }
- if (aAttribute == nsGkAtoms::bgcolor) {
- return aResult.ParseColor(aValue);
- }
- if ((aAttribute == nsGkAtoms::hspace) ||
- (aAttribute == nsGkAtoms::vspace)) {
- return aResult.ParseIntWithBounds(aValue, 0);
- }
- }
-
if (mNodeInfo->Equals(nsGkAtoms::div) &&
aAttribute == nsGkAtoms::align) {
return ParseDivAlignValue(aValue, aResult);
@@ -66,15 +52,6 @@ HTMLDivElement::MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aData);
}
-static void
-MapMarqueeAttributesIntoRule(const nsMappedAttributes* aAttributes, nsRuleData* aData)
-{
- nsGenericHTMLElement::MapImageMarginAttributeInto(aAttributes, aData);
- nsGenericHTMLElement::MapImageSizeAttributesInto(aAttributes, aData);
- nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aData);
- nsGenericHTMLElement::MapBGColorInto(aAttributes, aData);
-}
-
NS_IMETHODIMP_(bool)
HTMLDivElement::IsAttributeMapped(const nsIAtom* aAttribute) const
{
@@ -85,14 +62,6 @@ HTMLDivElement::IsAttributeMapped(const nsIAtom* aAttribute) const
};
return FindAttributeDependence(aAttribute, map);
}
- if (mNodeInfo->Equals(nsGkAtoms::marquee)) {
- static const MappedAttributeEntry* const map[] = {
- sImageMarginSizeAttributeMap,
- sBackgroundColorAttributeMap,
- sCommonAttributeMap
- };
- return FindAttributeDependence(aAttribute, map);
- }
return nsGenericHTMLElement::IsAttributeMapped(aAttribute);
}
@@ -103,9 +72,6 @@ HTMLDivElement::GetAttributeMappingFunction() const
if (mNodeInfo->Equals(nsGkAtoms::div)) {
return &MapAttributesIntoRule;
}
- if (mNodeInfo->Equals(nsGkAtoms::marquee)) {
- return &MapMarqueeAttributesIntoRule;
- }
return nsGenericHTMLElement::GetAttributeMappingFunction();
}
diff --git a/dom/html/test/test_bug389797.html b/dom/html/test/test_bug389797.html
index 884348b12..373528c71 100644
--- a/dom/html/test/test_bug389797.html
+++ b/dom/html/test/test_bug389797.html
@@ -168,7 +168,6 @@ HTML_TAG("listing", "Pre");
HTML_TAG("main", "");
HTML_TAG("map", "Map");
HTML_TAG("mark", "");
-HTML_TAG("marquee", "Div");
HTML_TAG("menu", "Menu");
HTML_TAG("meta", "Meta");
HTML_TAG("meter", "Meter");
diff --git a/dom/html/test/test_documentAll.html b/dom/html/test/test_documentAll.html
index ec877acec..9db77d2fe 100644
--- a/dom/html/test/test_documentAll.html
+++ b/dom/html/test/test_documentAll.html
@@ -117,7 +117,7 @@ var elementNames =
'input','ins','isindex','kbd','keygen','label','li','legend','link','menu',
'multicol','noscript','noframes','object','spacer','table','td','td','th',
'thead','tfoot','tr','textarea','select','option','spacer','param',
- 'marquee','hr','title','hx','tt','u','ul','var','wbr','sub','sup','cite',
+ 'hr','title','hx','tt','u','ul','var','wbr','sub','sup','cite',
'code','q','nobr','ol','p','pre','s','samp','small','body','html','map',
'bdo','legend','listing','style','script','tbody','caption','meta',
'optgroup','button','span','strike','strong','td'].sort();
diff --git a/dom/security/test/csp/file_bug1312272.html b/dom/security/test/csp/file_bug1312272.html
deleted file mode 100644
index 18e0e5589..000000000
--- a/dom/security/test/csp/file_bug1312272.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML>
-<!-- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ -->
-<html>
-<head>
- <meta charset="utf-8">
- <title>marquee inline script tests for Bug 1312272</title>
-</head>
-<body>
-<marquee id="m" onstart="parent.postMessage('csp-violation-marquee-onstart', '*')">bug 1312272</marquee>
-<script src="file_bug1312272.js"></script>
-</body>
-</html>
diff --git a/dom/security/test/csp/file_strict_dynamic_script_events_xbl.html b/dom/security/test/csp/file_strict_dynamic_script_events_xbl.html
deleted file mode 100644
index 701ef3226..000000000
--- a/dom/security/test/csp/file_strict_dynamic_script_events_xbl.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Bug 1316826 - 'strict-dynamic' blocking DOM event handlers</title>
-</head>
-<body>
-<div id="testdiv">blocked</div>
-
-<marquee onstart='document.getElementById("testdiv").innerHTML = "allowed";'>
- Bug 1316826
-</marquee>
-
-</body>
-</html>
diff --git a/dom/security/test/csp/test_strict_dynamic.html b/dom/security/test/csp/test_strict_dynamic.html
index 00e75143f..8f1b53f31 100644
--- a/dom/security/test/csp/test_strict_dynamic.html
+++ b/dom/security/test/csp/test_strict_dynamic.html
@@ -79,13 +79,6 @@ var tests = [
policy: "script-src 'strict-dynamic' 'nonce-foo'"
},
{
- // marquee is a special snowflake. Extra test for xbl things.
- desc: "strict-dynamic with DOM events should be blocked (XBL)",
- result: "blocked",
- file: "file_strict_dynamic_script_events_xbl.html",
- policy: "script-src 'strict-dynamic' 'nonce-foo'"
- },
- {
desc: "strict-dynamic with JS URLs should be blocked",
result: "blocked",
file: "file_strict_dynamic_js_url.html",
diff --git a/dom/tests/browser/browser_bug396843.js b/dom/tests/browser/browser_bug396843.js
index 84d7e3b83..a2281d1b8 100644
--- a/dom/tests/browser/browser_bug396843.js
+++ b/dom/tests/browser/browser_bug396843.js
@@ -72,7 +72,6 @@ function testInDocument(doc, documentID) {
HTML_TAG("link", "Link")
HTML_TAG("listing", "Span")
HTML_TAG("map", "Map")
- HTML_TAG("marquee", "Div")
HTML_TAG("menu", "Shared")
HTML_TAG("meta", "Meta")
HTML_TAG("multicol", "Unknown")
diff --git a/dom/tests/mochitest/bugs/mochitest.ini b/dom/tests/mochitest/bugs/mochitest.ini
index 3743c6782..6865ada88 100644
--- a/dom/tests/mochitest/bugs/mochitest.ini
+++ b/dom/tests/mochitest/bugs/mochitest.ini
@@ -145,5 +145,4 @@ skip-if = toolkit == 'android' #Windows can't change size on Android
skip-if = toolkit == 'android'
[test_bug1022869.html]
[test_bug1112040.html]
-[test_bug1160342_marquee.html]
[test_bug1171215.html]
diff --git a/dom/tests/mochitest/bugs/test_bug1160342_marquee.html b/dom/tests/mochitest/bugs/test_bug1160342_marquee.html
deleted file mode 100644
index 8da13478e..000000000
--- a/dom/tests/mochitest/bugs/test_bug1160342_marquee.html
+++ /dev/null
@@ -1,337 +0,0 @@
-<!DOCTYPE html>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1160342
--->
-<head>
- <title>Test for Bug 411103</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1160342">Mozilla Bug 1160342</a>
-<p id="display"></p>
-<div id="content">
-<marquee id="a" style="border: 1px solid black;">marquee</marquee>
-</div>
-
-<pre id="test">
-<script class="testbody" type="text/javascript">
-/* The todos are cases where IE/Edge is throwing errors, but
- for Mozilla it was decided to not do that for now */
- var x=document.getElementById('a');
-
- SimpleTest.waitForExplicitFinish();
-
- setTimeout(function() {
- is(x.behavior, "scroll", "Wrong behavior value");
- x.setAttribute('behavior', 'alternate');
- is(x.behavior, "alternate", "Wrong behavior value");
- x.setAttribute('behavior', 'invalid');
- is(x.behavior, "scroll", "Wrong behavior value");;
- x.setAttribute('behavior', 'Scroll');
- is(x.behavior, "scroll", "Wrong behavior value");
- x.setAttribute('behavior', 'Slide');
- is(x.behavior, "slide", "Wrong behavior value");
- x.setAttribute('behavior', '');
- is(x.behavior, "scroll", "Wrong behavior value");
- x.setAttribute('behavior', 'slide');
- x.removeAttribute('behavior');
- is(x.behavior, "scroll", "Wrong behavior value");
- is(x.getAttribute('behavior'), null, "Wrong behavior attribute");
-
- x.behavior = 'alternate';
- is(x.behavior, "alternate", "Wrong behavior value");
- try {
- x.behavior = 'invalid';
- todo_is(false, true, "marquee.behavior = 'invalid' should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.behavior, "alternate", "Wrong behavior value");
- is(x.getAttribute('behavior'), "alternate", "Wrong behavior attribute");
- x.behavior = 'Slide';
- is(x.behavior, "slide", "Wrong behavior value");
- is(x.getAttribute('behavior'), "slide", "Wrong behavior attribute");
- try {
- x.behavior = 'invalid';
- todo_is(false, true, "marquee.behavior = 'invalid' should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- try {
- x.behavior = null;
- x.behavior = undefined;
- todo_is(false, true, "marquee.behavior = 'invalid' should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.behavior, "slide", "Wrong behavior value");
- is(x.getAttribute('behavior'), "slide", "Wrong behavior attribute");
- // This doesn't work in Mozilla due to chrome XBL security issues
- x.behavior = { toString: function _toString() { return "scroll"} }
- is(x.behavior, x.getAttribute('behavior'), "Wrong behavior value");
- x.behavior = 'scroll';
- is(x.behavior, "scroll", "Wrong behavior value");
-
- is(x.loop, -1, "Wrong loop value");
- x.setAttribute('loop', '1');
- is(x.loop, 1, "Wrong loop value");
- x.setAttribute('loop', 'invalid');
- is(x.loop, -1, "Wrong loop value");
- x.setAttribute('loop', '');
- is(x.loop, -1, "Wrong loop value");
- x.setAttribute('loop', '0');
- is(x.loop, -1, "Wrong loop value");
- x.setAttribute('loop', '1000');
- is(x.loop, 1000, "Wrong loop value");
- x.setAttribute('loop', '-0.123');
- is(x.loop, 1000, "Wrong loop value");
- x.setAttribute('loop', '-1.123');
- is(x.loop, -1, "Wrong loop value");
- x.setAttribute('loop', '-1');
- is(x.loop, -1, "Wrong loop value");
- x.setAttribute('loop', '1000');
- is(x.loop, 1000, "Wrong loop value");
- x.removeAttribute('loop');
- is(x.loop, -1, "Wrong loop value");
- is(x.getAttribute('loop'), null, "Wrong loop attribute");
-
- x.loop = 1;
- is(x.loop, 1, "Wrong loop value");
- is(x.getAttribute('loop'), "1", "Wrong loop attribute");
- try {
- x.loop = -2;
- todo_is(false, true, "marquee.loop = -2 should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.loop, 1, "Wrong loop value");
- is(x.getAttribute('loop'), "1", "Wrong loop attribute");
- try {
- x.loop = 'invalid';
- todo_is(false, true, ".loop = 'invalid' should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.loop, 1, "Wrong loop value");
- is(x.getAttribute('loop'), "1", "Wrong loop attribute");
- try {
- x.loop = null;
- todo_is(false, true, "marquee.loop = null should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.loop, 1, "Wrong loop value");
- is(x.getAttribute('loop'), "1", "Wrong loop attribute");
- x.loop = -1;
- is(x.loop, -1, "Wrong loop value");
- is(x.getAttribute('loop'), "-1", "Wrong loop attribute");
- x.loop = '100';
- is(x.loop, 100, "Wrong loop value");
- is(x.getAttribute('loop'), "100", "Wrong loop attribute");
- try {
- x.loop = -0.123;
- todo_is(false, true, "marquee.loop = null should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.loop, 100, "Wrong loop value");
- is(x.getAttribute('loop'), "100", "Wrong loop attribute");
- try {
- x.loop = 0;
- todo_is(false, true, "marquee.loop = null should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.loop, 100, "Wrong loop value");
- is(x.getAttribute('loop'), "100", "Wrong loop attribute");
- x.loop = -1.123;
- is(x.loop, -1, "Wrong loop value");
- is(x.getAttribute('loop'), "-1", "Wrong loop attribute");
-
-
- is(x.scrollAmount, 6, "Wrong scrollAmount value");
- x.setAttribute('scrollAmount', '1');
- is(x.scrollAmount, 1, "Wrong scrollAmount value");
- x.setAttribute('scrollAmount', 'invalid');
- is(x.scrollAmount, 6, "Wrong scrollAmount value");
- x.setAttribute('scrollAmount', '1000');
- is(x.scrollAmount, 1000, "Wrong scrollAmount value");
- x.setAttribute('scrollAmount', '-1');
- is(x.scrollAmount, 1000, "Wrong scrollAmount value");
- x.setAttribute('scrollAmount', '999');
- is(x.scrollAmount, 999, "Wrong scrollAmount value");
- x.setAttribute('scrollAmount', '');
- is(x.scrollAmount, 6, "Wrong scrollAmount value");
- x.setAttribute('scrollAmount', '999');
- x.removeAttribute('scrollAmount');
- is(x.scrollAmount, 6, "Wrong scrollAmount value");
- is(x.getAttribute('scrollamount'), null, "Wrong scrollamount attribute");
-
- x.scrollAmount = 1;
- is(x.scrollAmount, 1, "Wrong scrollAmount value");
- is(x.getAttribute('scrollamount'), "1", "Wrong scrolldelay attribute");
- try {
- x.scrollAmount = -2;
- todo_is(false, true, "marquee.scrollAmount = -2 should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.scrollAmount, 1, "Wrong scrollAmount value");
- is(x.getAttribute('scrollamount'), "1", "Wrong scrolldelay attribute");
- x.scrollAmount = 'invalid';
- is(x.scrollAmount, 0, "Wrong scrollAmount value");
- is(x.getAttribute('scrollamount'), "0", "Wrong scrolldelay attribute");
- x.scrollAmount = 1;
- x.scrollAmount = null;
- is(x.scrollAmount, 0, "Wrong scrollAmount value");
- is(x.getAttribute('scrollamount'), "0", "Wrong scrolldelay attribute");
- x.scrollAmount = '2';
- is(x.scrollAmount, 2, "Wrong scrollAmount value");
- is(x.getAttribute('scrollamount'), "2", "Wrong scrolldelay attribute");
-
-
- is(x.scrollDelay, 85, "Wrong scrollDelay value");
- x.setAttribute('scrollDelay', '1');
- is(x.scrollDelay, 1, "Wrong scrollDelay value");
- x.setAttribute('scrollDelay', 'invalid');
- is(x.scrollDelay, 85, "Wrong scrollDelay value");
- x.setAttribute('scrollDelay', '70');
- is(x.scrollDelay, 70, "Wrong scrollDelay value");
- x.setAttribute('scrollDelay', '59');
- is(x.scrollDelay, 59, "Wrong scrollDelay value");
- x.setAttribute('scrollDelay', '1000');
- is(x.scrollDelay, 1000, "Wrong scrollDelay value");
- x.setAttribute('scrollDelay', '-1');
- is(x.scrollDelay, 1000, "Wrong scrollDelay value");
- x.setAttribute('scrollDelay', '');
- is(x.scrollDelay, 85, "Wrong scrollDelay value");
- x.setAttribute('scrollDelay', '1000');
- x.removeAttribute('scrollDelay');
- is(x.scrollDelay, 85, "Wrong scrollDelay value");
- is(x.getAttribute('scrolldelay'), null, "Wrong scrolldelay attribute");
-
- x.scrollDelay = 100;
- is(x.scrollDelay, 100, "Wrong scrollDelay value");
- is(x.getAttribute('scrolldelay'), "100", "Wrong scrolldelay attribute");
- try {
- x.scrollDelay = -2;
- todo_is(false, true, "marquee.scrollDelay = -2 should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.scrollDelay, 100, "Wrong scrollDelay value");
- is(x.getAttribute('scrolldelay'), "100", "Wrong scrolldelay attribute");
- try {
- x.scrollDelay = 'invalid';
- todo_is(false, true, "marquee.scrollDelay = 'invalid' should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.scrollDelay, 100, "Wrong scrollDelay value");
- is(x.getAttribute('scrolldelay'), "100", "Wrong scrolldelay attribute");
- try {
- x.scrollDelay = null;
- todo_is(false, true, "marquee.scrollDelay = null should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.scrollDelay, 100, "Wrong scrollDelay value");
- is(x.getAttribute('scrolldelay'), "100", "Wrong scrolldelay attribute");
- try {
- x.scrollDelay = -1;
- todo_is(false, true, "marquee.scrollDelay = -1 should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.scrollDelay, 100, "Wrong scrollDelay value");
- is(x.getAttribute('scrolldelay'), "100", "Wrong scrolldelay attribute");
- x.scrollDelay = '50';
- is(x.scrollDelay, 50, "Wrong scrollDelay value");
- is(x.getAttribute('scrolldelay'), "50", "Wrong scrolldelay attribute");
-
-
- is(x.trueSpeed, false, "Wrong trueSpeed value");
- x.setAttribute('trueSpeed', '1');
- is(x.trueSpeed, true, "Wrong trueSpeed value");
- x.setAttribute('trueSpeed', 'false');
- is(x.trueSpeed, true, "Wrong trueSpeed value");
- x.setAttribute('trueSpeed', '');
- is(x.trueSpeed, true, "Wrong trueSpeed value");
- x.removeAttribute('trueSpeed');
- is(x.trueSpeed, false, "Wrong trueSpeed value");
- is(x.getAttribute('truespeed'), null, "Wrong truespeed attribute");
-
- x.trueSpeed = 1;
- is(x.trueSpeed, true, "Wrong trueSpeed value");
- is(x.getAttribute('truespeed'), "", "Wrong truespeed attribute");
- x.trueSpeed = -2;
- is(x.trueSpeed, true, "Wrong trueSpeed value");
- is(x.getAttribute('truespeed'), "", "Wrong truespeed attribute");
- x.trueSpeed = null;
- is(x.trueSpeed, false, "Wrong trueSpeed value");
- is(x.getAttribute('truespeed'), null, "Wrong truespeed attribute");
- x.trueSpeed = '100';
- is(x.trueSpeed, true, "Wrong trueSpeed value");
- is(x.getAttribute('truespeed'), "", "Wrong truespeed attribute");
-
-
- is(x.direction, "left", "Wrong direction value");
- x.setAttribute('direction', 'right');
- is(x.direction, "right", "Wrong direction value");
- x.setAttribute('direction', 'invalid');
- is(x.direction, "left", "Wrong direction value");
- x.setAttribute('direction', 'RIGHT');
- is(x.direction, "right", "Wrong direction value");
- x.setAttribute('direction', '');
- is(x.direction, "left", "Wrong direction value");
- x.setAttribute('direction', 'right');
- x.removeAttribute('direction');
- is(x.direction, "left", "Wrong direction value");
- is(x.getAttribute('direction'), null, "Wrong direction attribute");
- x.setAttribute('direction', 'up');
- is(x.direction, "up", "Wrong direction value");
- x.setAttribute('direction', 'down');
- is(x.direction, "down", "Wrong direction value");
- x.removeAttribute('direction');
- is(x.direction, "left", "Wrong direction value");
- is(x.getAttribute('direction'), null, "Wrong direction attribute");
-
- x.direction = 'right';
- is(x.direction, "right", "Wrong direction value");
- is(x.getAttribute('direction'), "right", "Wrong direction attribute");
- x.direction = 'up';
- is(x.direction, "up", "Wrong direction value");
- is(x.getAttribute('direction'), "up", "Wrong direction attribute");
- x.direction = 'down';
- is(x.direction, "down", "Wrong direction value");
- is(x.getAttribute('direction'), "down", "Wrong direction attribute");
- try {
- x.direction = 1;
- todo_is(false, true, "marquee.direction = 1 should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.direction, "down", "Wrong direction value");
- is(x.getAttribute('direction'), "down", "Wrong direction attribute");
- try {
- x.direction = null;
- todo_is(false, true, "marquee.direction = null should throw");
- } catch(e) {
- ok(true, "Exception was raised");
- }
- is(x.direction, "down", "Wrong direction value");
- is(x.getAttribute('direction'), "down", "Wrong direction attribute");
- // This doesn't work in Mozilla due to chrome XBL security issues
- x.direction = { toString: function _toString() { return "right"} }
- is(x.direction, x.getAttribute('direction'), "Wrong direction value");
- x.direction = 'left';
- is(x.direction, "left", "Wrong direction value");
- SimpleTest.finish();
- }, 0);
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/tests/mochitest/bugs/test_bug396843.html b/dom/tests/mochitest/bugs/test_bug396843.html
index 20dc53068..031843fd4 100644
--- a/dom/tests/mochitest/bugs/test_bug396843.html
+++ b/dom/tests/mochitest/bugs/test_bug396843.html
@@ -92,7 +92,6 @@ HTML_TAG("li", "LI")
HTML_TAG("link", "Link")
HTML_TAG("listing", "Span")
HTML_TAG("map", "Map")
-HTML_TAG("marquee", "Div")
HTML_TAG("menu", "Shared")
HTML_TAG("meta", "Meta")
HTML_TAG("multicol", "Unknown")
diff --git a/dom/tests/mochitest/webcomponents/htmlconstructor_builtin_tests.js b/dom/tests/mochitest/webcomponents/htmlconstructor_builtin_tests.js
index dd6515148..0b04971e3 100644
--- a/dom/tests/mochitest/webcomponents/htmlconstructor_builtin_tests.js
+++ b/dom/tests/mochitest/webcomponents/htmlconstructor_builtin_tests.js
@@ -70,7 +70,6 @@
['main', ''],
['map', 'Map'],
['mark', ''],
- ['marquee', 'Div'],
['menu', 'Menu'],
['menuitem', 'MenuItem'],
['meta', 'Meta'],
diff --git a/dom/xbl/crashtests/342954-1.xhtml b/dom/xbl/crashtests/342954-1.xhtml
deleted file mode 100644
index dbaa15384..000000000
--- a/dom/xbl/crashtests/342954-1.xhtml
+++ /dev/null
@@ -1,46 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xbl="http://www.mozilla.org/xbl">
-
-
-<head>
-
-<script>
-<![CDATA[
-
-function boo()
-{
- s1 = document.getElementById("s1");
- marq = document.getElementById("marq");
- marqAnonymousSomething = document.getAnonymousNodes(marq)[0].childNodes[0];
-
- removeNode(marqAnonymousSomething);
- s1.appendChild(document.createElement("div"));
-}
-
-function removeNode(q1) { q1.parentNode.removeChild(q1); }
-
-]]>
-</script>
-
-<xbl:bindings id="marqueeBindings">
- <xbl:binding id="marquee-horizontal-12">
- <xbl:content>
- <div>
- <xbl:children/>
- </div>
- </xbl:content>
- </xbl:binding>
-</xbl:bindings>
-
-</head>
-
-
-<body onload="boo()">
-
-<span id="s1">Span</span>
-
-<div id="marq" style="-moz-binding: url('#marquee-horizontal-12');">Marquee</div>
-
-</body>
-
-
-</html>
diff --git a/dom/xbl/crashtests/342954-2-xbl.xml b/dom/xbl/crashtests/342954-2-xbl.xml
deleted file mode 100644
index 3e73f1355..000000000
--- a/dom/xbl/crashtests/342954-2-xbl.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-
-<bindings id="marqueeBindings"
- xmlns="http://www.mozilla.org/xbl"
- xmlns:html="http://www.w3.org/1999/xhtml"
- xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- xmlns:xbl="http://www.mozilla.org/xbl">
-
- <binding id="marquee-horizontal-10">
-
- <content>
- <html:div>
- <children/>
- </html:div>
- </content>
-
- </binding>
-
-</bindings>
diff --git a/dom/xbl/crashtests/342954-2.xhtml b/dom/xbl/crashtests/342954-2.xhtml
deleted file mode 100644
index 4a250e31c..000000000
--- a/dom/xbl/crashtests/342954-2.xhtml
+++ /dev/null
@@ -1,29 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<script>
-<![CDATA[
-
-function boo()
-{
- s1 = document.getElementById("s1");
- marq = document.getElementById("marq");
- marqAnonymousSomething = document.getAnonymousNodes(marq)[0].childNodes[0];
-
- removeNode(marqAnonymousSomething);
- s1.appendChild(document.createElement("div"));
-}
-
-function removeNode(q1) { q1.parentNode.removeChild(q1); }
-
-]]>
-</script>
-</head>
-
-<body onload="boo()">
-
-<span id="s1">Span</span>
-
-<div id="marq" style="-moz-binding: url('342954-2-xbl.xml#marquee-horizontal-10');">Marquee</div>
-
-</body>
-</html>
diff --git a/dom/xbl/crashtests/477878-1.html b/dom/xbl/crashtests/477878-1.html
deleted file mode 100644
index 17e4002b4..000000000
--- a/dom/xbl/crashtests/477878-1.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<html>
-<head></head>
-<body><iframe style="display:none" src="data:text/html,<marquee>Marquee</marquee>" onload="this.style.display = '';"></iframe></body>
-</html>