diff options
author | Gaming4JC <g4jc@hyperbola.info> | 2020-01-20 20:14:59 -0500 |
---|---|---|
committer | Gaming4JC <g4jc@hyperbola.info> | 2020-01-26 15:50:48 -0500 |
commit | 8db81508a1ffe1c3873503a1cb2082d664714776 (patch) | |
tree | dd1ef38691c25a80787dfcdca06038a7fac18c7e /testing | |
parent | 4083a9abf76058d35f0277dd6857478fc6715137 (diff) | |
download | uxp-8db81508a1ffe1c3873503a1cb2082d664714776.tar.gz |
Bug 1415761 - Catch the exception and rethrow it after invoking custom elements reactions;
The spec was unclear on how CEReactions interact with thrown exceptions; see https://github.com/whatwg/html/issues/3217. The spec is now being clarified in https://github.com/whatwg/html/pull/3235.
Tag UXP Issue #1344
Diffstat (limited to 'testing')
-rw-r--r-- | testing/web-platform/tests/custom-elements/reactions/with-exceptions.html | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/testing/web-platform/tests/custom-elements/reactions/with-exceptions.html b/testing/web-platform/tests/custom-elements/reactions/with-exceptions.html new file mode 100644 index 0000000000..82e0f59c93 --- /dev/null +++ b/testing/web-platform/tests/custom-elements/reactions/with-exceptions.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Custom Elements: CEReactions interaction with exceptions</title> +<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> +<meta name="help" content="https://html.spec.whatwg.org/multipage/#cereactions"> +<meta name="help" content="https://github.com/whatwg/html/pull/3235"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="../resources/custom-elements-helpers.js"></script> + +<div id="log"></div> + +<script> +"use strict"; +// Basically from https://github.com/whatwg/html/issues/3217#issuecomment-343633273 +test_with_window((contentWindow, contentDocument) => { + let reactionRan = false; + contentWindow.customElements.define("custom-element", class extends contentWindow.HTMLElement { + disconnectedCallback() { + reactionRan = true; + } + }); + const text = contentDocument.createTextNode(""); + contentDocument.documentElement.appendChild(text); + const element = contentDocument.createElement("custom-element"); + contentDocument.documentElement.appendChild(element); + assert_throws("HierarchyRequestError", () => text.before("", contentDocument.documentElement)); + assert_true(reactionRan); +}, "Reaction must run even after the exception is thrown"); +</script> |