mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 07:48:38 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<title>HTMLBodyElement.onload</title>
|
||||
<link rel="author" title="Boris Zbarsky" href="mailto:bzbarsky@mit.edu">
|
||||
<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com">
|
||||
<link rel="help" href="https://html.spec.whatwg.org/multipage/#handler-window-onload">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var t = async_test("body.onload should set the window.onload handler")
|
||||
window.onload = t.step_func(function() {
|
||||
assert_unreached("This handler should be overwritten.")
|
||||
})
|
||||
var b = document.createElement("body")
|
||||
b.onload = t.step_func(function(e) {
|
||||
assert_equals(e.currentTarget, window,
|
||||
"The event should be fired at the window.")
|
||||
t.done()
|
||||
})
|
||||
</script>
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
[
|
||||
{
|
||||
"id": "event-handler-attributes",
|
||||
"original_id": "event-handler-attributes"
|
||||
},
|
||||
{
|
||||
"id": "event-handlers-on-elements-document-objects-and-window-objects",
|
||||
"original_id": "event-handlers-on-elements,-document-objects,-and-window-objects"
|
||||
},
|
||||
{
|
||||
"id": "event-firing",
|
||||
"original_id": "event-firing"
|
||||
},
|
||||
{
|
||||
"id": "events-and-the-window-object",
|
||||
"original_id": "events-and-the-window-object"
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<title>HTMLBodyElement event handlers</title>
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<body>
|
||||
<script>
|
||||
function f() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
var handlers = ['blur','error','focus','load','resize','scroll',
|
||||
'afterprint','beforeprint','beforeunload','hashchange',
|
||||
'languagechange','message','offline','online','pagehide',
|
||||
'pageshow','popstate','storage','unload'];
|
||||
handlers.forEach(function(handler) {
|
||||
test(function() {
|
||||
document.body['on' + handler] = f;
|
||||
assert_equals(window['on' + handler], f);
|
||||
}, handler);
|
||||
});
|
||||
|
||||
handlers.forEach(function(handler) {
|
||||
document.body['on' + handler] = null;
|
||||
});
|
||||
|
||||
handlers.forEach(function(handler) {
|
||||
test(function() {
|
||||
assert_equals(document.body['on' + handler], null);
|
||||
assert_equals(window['on' + handler], null);
|
||||
}, handler + " removal");
|
||||
});
|
||||
</script>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Event handler with labels</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<body onload="javascript:
|
||||
for (var i = 0; i < 2; ++i) {
|
||||
for (var j = 0; j < 2; ++j) {
|
||||
t.step(function() {
|
||||
assert_equals(i, 0);
|
||||
assert_equals(j, 0);
|
||||
});
|
||||
break javascript;
|
||||
}
|
||||
}
|
||||
t.done();
|
||||
">
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var t = async_test("Event handlers starting with 'javascript:' should treat that as a label.");
|
||||
</script>
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html>
|
||||
<title>HTMLBodyElement.onresize</title>
|
||||
<link rel="author" title="His-Name-Is-Joof" href="mailto:jeffrharrison@gmail.com">
|
||||
<link rel="help" href="https://html.spec.whatwg.org/multipage/#handler-window-onresize">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var t = async_test("body.onresize should set the window.onload handler")
|
||||
window.onresize = t.step_func(function() {
|
||||
assert_unreached("This handler should be overwritten.")
|
||||
})
|
||||
|
||||
var body = document.createElement("body")
|
||||
body.onresize = t.step_func(function(e) {
|
||||
assert_equals(e.currentTarget, window,
|
||||
"The event should be fired at the window.")
|
||||
t.done()
|
||||
})
|
||||
window.dispatchEvent(new Event('resize'));
|
||||
|
||||
t = async_test("document.onresize should set the document.onresize handler");
|
||||
document.onresize = t.step_func(function(e) {
|
||||
assert_equals(e.currentTarget, document,
|
||||
"The event should be fired at the document")
|
||||
t.done()
|
||||
})
|
||||
document.dispatchEvent(new Event('resize'));
|
||||
|
||||
t = async_test("meta.onresize should set the meta.onresize handler");
|
||||
var meta = document.createElement("meta")
|
||||
meta.onresize = t.step_func(function(e) {
|
||||
assert_equals(e.currentTarget, meta,
|
||||
"The event should be fired at the <meta> object")
|
||||
t.done()
|
||||
})
|
||||
meta.dispatchEvent(new Event('resize'));
|
||||
</script>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Event handlers processing algorithm</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<body>
|
||||
<div id="foo" style="width: 100px; height: 100px; background-color: black"></div>
|
||||
<script>
|
||||
async_test(function(t) {
|
||||
var ev = new Event('mouseover', {cancelable: true});
|
||||
document.getElementById("foo").onmouseover = t.step_func(function() { return true });
|
||||
document.getElementById("foo").dispatchEvent(ev);
|
||||
assert_equals(ev.defaultPrevented, true)
|
||||
t.done();
|
||||
}, "mouseover listener returning true cancels event");
|
||||
|
||||
async_test(function(t) {
|
||||
var ev = new Event('mouseover', {cancelable: true});
|
||||
document.getElementById("foo").onmouseover = t.step_func(function() { return false; });
|
||||
document.getElementById("foo").dispatchEvent(ev);
|
||||
assert_equals(ev.defaultPrevented, false);
|
||||
t.done();
|
||||
}, "mouseover listener returning false doesn't cancel event");
|
||||
|
||||
async_test(function(t) {
|
||||
var ev = new Event('beforeunload', {cancelable: true});
|
||||
window.onbeforeunload = t.step_func(function() {return null});
|
||||
window.dispatchEvent(ev);
|
||||
assert_equals(ev.defaultPrevented, true);
|
||||
t.done();
|
||||
}, "beforeunload listener returning null cancels event");
|
||||
|
||||
async_test(function(t) {
|
||||
var ev = new Event('beforeunload', {cancelable: true});
|
||||
window.onbeforeunload = t.step_func(function() {return true});
|
||||
window.dispatchEvent(ev);
|
||||
assert_equals(ev.defaultPrevented, false);
|
||||
t.done();
|
||||
}, "beforeunload listener returning non-null doesn't cancel event");
|
||||
|
||||
async_test(function(t) {
|
||||
var ev = new Event("click", {cancelable: true});
|
||||
document.getElementById("foo").onclick = t.step_func(function() { return false; });
|
||||
document.getElementById("foo").dispatchEvent(ev);
|
||||
assert_equals(ev.defaultPrevented, true);
|
||||
t.done();
|
||||
}, "click listener returning false cancels event");
|
||||
|
||||
async_test(function(t) {
|
||||
var ev = new Event("blur", {cancelable: true});
|
||||
document.getElementById("foo").onblur = t.step_func(function() { return false; });
|
||||
document.getElementById("foo").dispatchEvent(ev);
|
||||
assert_equals(ev.defaultPrevented, true);
|
||||
t.done();
|
||||
}, "blur listener returning false cancels event");
|
||||
|
||||
async_test(function(t) {
|
||||
var ev = new Event("dblclick", {cancelable: true});
|
||||
document.getElementById("foo").ondblclick = t.step_func(function() { return false; });
|
||||
document.getElementById("foo").dispatchEvent(ev);
|
||||
assert_equals(ev.defaultPrevented, true);
|
||||
t.done();
|
||||
}, "dblclick listener returning false cancels event");
|
||||
</script>
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Event handler invocation order</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var objects = [{}, function() {}, new Number(42), new String()];
|
||||
var primitives = [42, null, undefined, ""];
|
||||
objects.forEach(function(object) {
|
||||
var t = async_test("Event handler listeners should be registered when they " +
|
||||
"are first set to an object value (" +
|
||||
format_value(object) + ").");
|
||||
t.step(function() {
|
||||
var i = 0;
|
||||
var uncalled = "t.step(function() { assert_unreached('First event handler.') })"
|
||||
var button = document.createElement('button');
|
||||
button.onclick = object; // event handler listener is registered here
|
||||
button.addEventListener('click', t.step_func(function () { assert_equals(++i, 2) }), false);
|
||||
button.setAttribute('onclick', uncalled);
|
||||
button.addEventListener('click', t.step_func(function () { assert_equals(++i, 3) }), false);
|
||||
button.onclick = t.step_func(function () { assert_equals(++i, 1); });
|
||||
button.addEventListener('click', t.step_func(function () { assert_equals(++i, 4) }), false);
|
||||
button.click()
|
||||
assert_equals(button.getAttribute("onclick"), uncalled)
|
||||
assert_equals(i, 4);
|
||||
t.done()
|
||||
});
|
||||
});
|
||||
primitives.forEach(function(primitive) {
|
||||
var t = async_test("Event handler listeners should be registered when they " +
|
||||
"are first set to an object value (" +
|
||||
format_value(primitive) + ").");
|
||||
t.step(function() {
|
||||
var i = 0;
|
||||
var uncalled = "t.step(function() { assert_unreached('First event handler.') })"
|
||||
var button = document.createElement('button');
|
||||
button.onclick = primitive;
|
||||
button.addEventListener('click', t.step_func(function () { assert_equals(++i, 1) }), false);
|
||||
button.setAttribute('onclick', uncalled); // event handler listener is registered here
|
||||
button.addEventListener('click', t.step_func(function () { assert_equals(++i, 3) }), false);
|
||||
button.onclick = t.step_func(function () { assert_equals(++i, 2); });
|
||||
button.addEventListener('click', t.step_func(function () { assert_equals(++i, 4) }), false);
|
||||
button.click()
|
||||
assert_equals(button.getAttribute("onclick"), uncalled)
|
||||
assert_equals(i, 4);
|
||||
t.done()
|
||||
});
|
||||
});
|
||||
var t = async_test("Event handler listeners should be registered when they " +
|
||||
"are first set to an object value.");
|
||||
t.step(function() {
|
||||
var i = 0;
|
||||
var uncalled = "t.step(function() { assert_unreached('First event handler.') })"
|
||||
var button = document.createElement('button');
|
||||
button.addEventListener('click', t.step_func(function () { assert_equals(++i, 1) }), false);
|
||||
button.setAttribute('onclick', uncalled); // event handler listener is registered here
|
||||
button.addEventListener('click', t.step_func(function () { assert_equals(++i, 3) }), false);
|
||||
button.onclick = t.step_func(function () { assert_equals(++i, 2); });
|
||||
button.addEventListener('click', t.step_func(function () { assert_equals(++i, 4) }), false);
|
||||
button.click()
|
||||
assert_equals(button.getAttribute("onclick"), uncalled)
|
||||
assert_equals(i, 4);
|
||||
t.done()
|
||||
});
|
||||
</script>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Inline event handlers retain their ordering even when invalid</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<body>
|
||||
<script>
|
||||
var events = [];
|
||||
|
||||
test(function() {
|
||||
events = [];
|
||||
var e = document.createElement("div");
|
||||
document.body.appendChild(e);
|
||||
e.addEventListener("click", function() { events.push("ONE") });
|
||||
e.setAttribute("onclick", "window.open(");
|
||||
e.addEventListener("click", function() { events.push("THREE") });
|
||||
// Try to compile the event handler.
|
||||
e.onclick;
|
||||
e.setAttribute("onclick", "events.push('TWO')");
|
||||
e.dispatchEvent(new Event("click"));
|
||||
var expected_events = ["ONE", "TWO", "THREE"];
|
||||
assert_array_equals(events, expected_events);
|
||||
}, "Inline event handlers retain their ordering when invalid and force-compiled");
|
||||
|
||||
test(function() {
|
||||
events = [];
|
||||
var e = document.createElement("div");
|
||||
document.body.appendChild(e);
|
||||
e.addEventListener("click", function() { events.push("ONE") });
|
||||
e.setAttribute("onclick", "window.open(");
|
||||
e.addEventListener("click", function() { events.push("THREE") });
|
||||
e.dispatchEvent(new Event("click"));
|
||||
e.setAttribute("onclick", "events.push('TWO')");
|
||||
e.dispatchEvent(new Event("click"));
|
||||
var expected_events = ["ONE", "THREE", "ONE", "TWO", "THREE"];
|
||||
assert_array_equals(events, expected_events);
|
||||
}, "Inline event handlers retain their ordering when invalid and force-compiled via dispatch");
|
||||
|
||||
test(function() {
|
||||
events = [];
|
||||
var e = document.createElement("div");
|
||||
document.body.appendChild(e);
|
||||
e.addEventListener("click", function() { events.push("ONE") });
|
||||
e.setAttribute("onclick", "window.open(");
|
||||
e.addEventListener("click", function() { events.push("THREE") });
|
||||
e.setAttribute("onclick", "events.push('TWO')");
|
||||
e.dispatchEvent(new Event("click"));
|
||||
var expected_events = ["ONE", "TWO", "THREE"];
|
||||
assert_array_equals(events, expected_events);
|
||||
}, "Inline event handlers retain their ordering when invalid and lazy-compiled");
|
||||
</script>
|
||||
</body>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Invalid uncompiled raw handlers should only be compiled when about to call them.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<body>
|
||||
<script>
|
||||
setup({ allow_uncaught_exception: true });
|
||||
|
||||
test(function() {
|
||||
var events = [];
|
||||
window.onerror = function() {
|
||||
events.push("Error");
|
||||
};
|
||||
|
||||
var div = document.createElement("div");
|
||||
div.addEventListener("click", function (e) { events.push("click 1") });
|
||||
div.setAttribute("onclick", "}");
|
||||
div.addEventListener("click", function (e) { events.push("click 2") });
|
||||
div.dispatchEvent(new Event("click"));
|
||||
assert_equals(div.onclick, null);
|
||||
assert_array_equals(events, ["click 1", "error", "click 2"]);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Invalid uncompiled raw handlers should only be compiled once.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<body>
|
||||
<script>
|
||||
setup({ allow_uncaught_exception: true });
|
||||
|
||||
var errors = 0;
|
||||
window.onerror = function() {
|
||||
errors++;
|
||||
};
|
||||
|
||||
test(function() {
|
||||
var e = document.body;
|
||||
e.setAttribute("onclick", "window.open(");
|
||||
assert_equals(e.onclick, null);
|
||||
assert_equals(e.onclick, null);
|
||||
assert_equals(errors, 1);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
<body></body>
|
||||
<script>
|
||||
function check1(args, callee) {
|
||||
parent.t.step(function() {
|
||||
parent.assert_equals(callee.length, 5);
|
||||
parent.assert_equals(args.length, 5);
|
||||
parent.assert_equals(args[0], reference_error.message);
|
||||
parent.assert_equals(args[1], reference_error.filename);
|
||||
parent.assert_equals(args[2], reference_error.lineno);
|
||||
parent.assert_equals(args[3], reference_error.colno);
|
||||
parent.assert_equals(args[4], reference_error.error);
|
||||
parent.t.done();
|
||||
});
|
||||
}
|
||||
|
||||
var reference_error = new ErrorEvent("error", {
|
||||
filename: "error_file.js",
|
||||
lineno: 333,
|
||||
colno: 999,
|
||||
message: "there was an error",
|
||||
error: {nondefault: 'some unusual object'},
|
||||
});
|
||||
|
||||
parent.t.step(function() {
|
||||
document.body.outerHTML = "<body onerror='check1(arguments, arguments.callee)'></body>"
|
||||
window.dispatchEvent(reference_error);
|
||||
});
|
||||
|
||||
function check2(args, callee) {
|
||||
parent.t2.step(function() {
|
||||
parent.assert_equals(callee.length, 5);
|
||||
parent.assert_equals(args.length, 1);
|
||||
parent.assert_false(args[0] instanceof ErrorEvent);
|
||||
parent.t2.done()
|
||||
});
|
||||
}
|
||||
|
||||
parent.t2.step(function() {
|
||||
document.body.outerHTML = "<body onerror='check2(arguments, arguments.callee)'></body>"
|
||||
window.dispatchEvent(new Event("error"));
|
||||
});
|
||||
|
||||
function check3(args, callee) {
|
||||
parent.t3.step(function() {
|
||||
parent.assert_equals(args.length, 1);
|
||||
parent.assert_equals(callee.length, 1);
|
||||
});
|
||||
}
|
||||
|
||||
parent.t3.step(function() {
|
||||
document.body.outerHTML = "<body><span onerror='check3(arguments, arguments.callee)'></span></body>"
|
||||
document.body.firstChild.dispatchEvent(reference_error);
|
||||
document.body.firstChild.dispatchEvent(new Event("error"));
|
||||
parent.t3.done();
|
||||
});
|
||||
</script>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>OnErrorEventHandler + ErrorEvent is treated differently</title>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script>
|
||||
var t = async_test("onerror + ErrorEvent + Window");
|
||||
var t2 = async_test("onerror + !ErrorEvent + Window");
|
||||
var t3 = async_test("onerror + Document");
|
||||
</script>
|
||||
<iframe src="onerroreventhandler-frame.html"></iframe>
|
||||
Loading…
Add table
Add a link
Reference in a new issue