TrustedTypes: Added TrustedTypes.getPolicyNames & minor changes
Changed window.trustedTypes to window.TrustedTypes.
Added TrustedTypes.getPolicyNames.
Throw exception for TrustedTypes.createPolicy with non-unique policy name.
Adapted tests to match.
Most existing applications are synchronous, createPolicy was made synchronous.
Changed tests from async_test to test, because of change mentioned above.
Bug: 739170
Change-Id: Ie4e2702994a8674e65376b7bf4b42d4c41e9cec4
Reviewed-on: https://chromium-review.googlesource.com/1181362
Commit-Queue: Orsolya Bernadett Batiz <orsibatiz@google.com>
Reviewed-by: Mike West <mkwst@chromium.org>
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586630}
diff --git a/trusted-types/DOMParser-parseFromString.tentative.html b/trusted-types/DOMParser-parseFromString.tentative.html
index 2fe9b31..2dfc376 100644
--- a/trusted-types/DOMParser-parseFromString.tentative.html
+++ b/trusted-types/DOMParser-parseFromString.tentative.html
@@ -4,14 +4,12 @@
<script src="support/helper.sub.js"></script>
<body>
<script>
- async_test(t => {
- createHTML_policy(window)
- .then(t.step_func_done(p => {
- let html = p.createHTML(INPUTS.HTML);
- let parser = new DOMParser();
- let doc = parser.parseFromString(html, "text/html");
- assert_equals(doc.body.innerText, RESULTS.HTML);
- }));
+ test(t => {
+ let p = createHTML_policy(window, 1);
+ let html = p.createHTML(INPUTS.HTML);
+ let parser = new DOMParser();
+ let doc = parser.parseFromString(html, "text/html");
+ assert_equals(doc.body.innerText, RESULTS.HTML);
}, "document.innerText assigned via policy (successful HTML transformation).");
test(t => {
diff --git a/trusted-types/Document-write.tentative.html b/trusted-types/Document-write.tentative.html
index 3a63e92..79247fb 100644
--- a/trusted-types/Document-write.tentative.html
+++ b/trusted-types/Document-write.tentative.html
@@ -4,12 +4,10 @@
<script src="support/helper.sub.js"></script>
<body>
<script>
- async_test(t => {
- createHTML_policy(window)
- .then(t.step_func_done(p => {
- let html = p.createHTML(INPUTS.HTML);
- document.write(html);
- assert_equals(document.body.innerText, RESULTS.HTML);
- }));
+ test(t => {
+ let p = createHTML_policy(window, 1);
+ let html = p.createHTML(INPUTS.HTML);
+ document.write(html);
+ assert_equals(document.body.innerText, RESULTS.HTML);
}, "document.write with html assigned via policy (successful URL transformation).");
</script>
diff --git a/trusted-types/Element-insertAdjacentHTML.tentative.html b/trusted-types/Element-insertAdjacentHTML.tentative.html
index 599ade4..d5db793 100644
--- a/trusted-types/Element-insertAdjacentHTML.tentative.html
+++ b/trusted-types/Element-insertAdjacentHTML.tentative.html
@@ -7,32 +7,30 @@
<script>
var container = document.querySelector('#container');
- async_test(t => {
- createHTML_policy(window)
- .then(t.step_func_done(p => {
- let html = p.createHTML(INPUTS.HTML);
+ test(t => {
+ let p = createHTML_policy(window, 1);
+ let html = p.createHTML(INPUTS.HTML);
- var d = document.createElement('div');
- container.appendChild(d);
+ var d = document.createElement('div');
+ container.appendChild(d);
- d.insertAdjacentHTML('beforebegin', html);
- assert_equals(d.previousSibling.nodeType, Node.TEXT_NODE);
- assert_equals(d.previousSibling.data, RESULTS.HTML);
+ d.insertAdjacentHTML('beforebegin', html);
+ assert_equals(d.previousSibling.nodeType, Node.TEXT_NODE);
+ assert_equals(d.previousSibling.data, RESULTS.HTML);
- d.insertAdjacentHTML('afterbegin', html);
- assert_equals(d.firstChild.nodeType, Node.TEXT_NODE);
- assert_equals(d.firstChild.data, RESULTS.HTML);
+ d.insertAdjacentHTML('afterbegin', html);
+ assert_equals(d.firstChild.nodeType, Node.TEXT_NODE);
+ assert_equals(d.firstChild.data, RESULTS.HTML);
- d.insertAdjacentHTML('beforeend', html);
- assert_equals(d.lastChild.nodeType, Node.TEXT_NODE);
- assert_equals(d.lastChild.data, RESULTS.HTML);
+ d.insertAdjacentHTML('beforeend', html);
+ assert_equals(d.lastChild.nodeType, Node.TEXT_NODE);
+ assert_equals(d.lastChild.data, RESULTS.HTML);
- d.insertAdjacentHTML('afterend', html);
- assert_equals(d.nextSibling.nodeType, Node.TEXT_NODE);
- assert_equals(d.nextSibling.data, RESULTS.HTML);
+ d.insertAdjacentHTML('afterend', html);
+ assert_equals(d.nextSibling.nodeType, Node.TEXT_NODE);
+ assert_equals(d.nextSibling.data, RESULTS.HTML);
- while (container.firstChild)
- container.firstChild.remove();
- }));
+ while (container.firstChild)
+ container.firstChild.remove();
}, "insertAdjacentHTML with html assigned via policy (successful HTML transformation).");
</script>
diff --git a/trusted-types/Element-outerHTML.tentative.html b/trusted-types/Element-outerHTML.tentative.html
index a0bb6c1..c8daddf 100644
--- a/trusted-types/Element-outerHTML.tentative.html
+++ b/trusted-types/Element-outerHTML.tentative.html
@@ -5,20 +5,18 @@
<body>
<div id="container"></div>
<script>
- var container = document.querySelector('#container')
+ var container = document.querySelector('#container');
- async_test(t => {
- createHTML_policy(window)
- .then(t.step_func_done(p => {
- let html = p.createHTML(INPUTS.HTML);
+ test(t => {
+ let p = createHTML_policy(window, 1);
+ let html = p.createHTML(INPUTS.HTML);
- var d = document.createElement('div');
- document.querySelector('#container').appendChild(d);
- d.outerHTML = html;
- assert_equals(container.innerText, RESULTS.HTML);
+ var d = document.createElement('div');
+ document.querySelector('#container').appendChild(d);
+ d.outerHTML = html;
+ assert_equals(container.innerText, RESULTS.HTML);
- while (container.firstChild)
- container.firstChild.remove();
- }));
+ while (container.firstChild)
+ container.firstChild.remove();
}, "outerHTML with html assigned via policy (successful HTML transformation).");
</script>
diff --git a/trusted-types/HTMLElement-generic.tentative.html b/trusted-types/HTMLElement-generic.tentative.html
index cea32a5..08d165a 100644
--- a/trusted-types/HTMLElement-generic.tentative.html
+++ b/trusted-types/HTMLElement-generic.tentative.html
@@ -24,8 +24,8 @@
];
testCases.forEach(c => {
- async_test(t => {
- assert_element_accepts_trusted_url(window, t, c[0], c[1], RESULTS.URL);
+ test(t => {
+ assert_element_accepts_trusted_url(window, c, t, c[0], c[1], RESULTS.URL);
}, c[0] + "." + c[1] + " assigned via policy (successful URL transformation)");
});
@@ -36,8 +36,8 @@
];
scriptTestCases.forEach(c => {
- async_test(t => {
- assert_element_accepts_trusted_script_url(window, t, c[0], c[1], RESULTS.SCRIPTURL);
+ test(t => {
+ assert_element_accepts_trusted_script_url(window, c, t, c[0], c[1], RESULTS.SCRIPTURL);
}, c[0] + "." + c[1] + " assigned via policy (successful ScriptURL transformation)");
});
@@ -48,8 +48,8 @@
];
HTMLTestCases.forEach(c => {
- async_test(t => {
- assert_element_accepts_trusted_html(window, t, c[0], c[1], RESULTS.HTML);
+ test(t => {
+ assert_element_accepts_trusted_html(window, c, t, c[0], c[1], RESULTS.HTML);
}, c[0] + "." + c[1] + " assigned via policy (successful HTML transformation)");
});
</script>
diff --git a/trusted-types/Location-assign.tentative.html b/trusted-types/Location-assign.tentative.html
index 13cca56..62f98e9 100644
--- a/trusted-types/Location-assign.tentative.html
+++ b/trusted-types/Location-assign.tentative.html
@@ -4,12 +4,10 @@
<script src="support/helper.sub.js"></script>
<body>
<script>
- async_test(t => {
- createURL_policy(window)
- .then(t.step_func_done(p => {
- let url = p.createURL(location.href + "#xxx");
- location.assign(url);
- assert_equals("" + url, location.href, "location href");
- }));
+ test(t => {
+ let p = createURL_policy(window, 1);
+ let url = p.createURL(location.href + "#xxx");
+ location.assign(url);
+ assert_equals("" + url, location.href, "location href");
}, "location.assign via policy (successful URL transformation).");
</script>
diff --git a/trusted-types/Location-href.tentative.html b/trusted-types/Location-href.tentative.html
index d759d28..bacadf6 100644
--- a/trusted-types/Location-href.tentative.html
+++ b/trusted-types/Location-href.tentative.html
@@ -4,12 +4,10 @@
<script src="support/helper.sub.js"></script>
<body>
<script>
- async_test(t => {
- createURL_policy(window)
- .then(t.step_func_done(p => {
- let url = p.createURL(location.href + "#xxx");
- location.href = url;
- assert_equals("" + url, location.href, "location href");
- }));
+ test(t => {
+ let p = createURL_policy(window, 1);
+ let url = p.createURL(location.href + "#xxx");
+ location.href = url;
+ assert_equals("" + url, location.href, "location href");
}, "location.href assigned via policy (successful URL transformation).");
</script>
diff --git a/trusted-types/Location-replace.tentative.html b/trusted-types/Location-replace.tentative.html
index 7d84905..4fb53d0 100644
--- a/trusted-types/Location-replace.tentative.html
+++ b/trusted-types/Location-replace.tentative.html
@@ -4,12 +4,10 @@
<script src="support/helper.sub.js"></script>
<body>
<script>
- async_test(t => {
- createURL_policy(window)
- .then(t.step_func_done(p => {
- let url = p.createURL(location.href + "#xxx");
- location.replace(url);
- assert_equals("" + url, location.href, "location href");
- }));
+ test(t => {
+ let p = createURL_policy(window, 1);
+ let url = p.createURL(location.href + "#xxx");
+ location.replace(url);
+ assert_equals("" + url, location.href, "location href");
}, "location.replace via policy (successful URL transformation).");
</script>
diff --git a/trusted-types/Range-createContextualFragment.tentative.html b/trusted-types/Range-createContextualFragment.tentative.html
index 3d45b33..3a880a5 100644
--- a/trusted-types/Range-createContextualFragment.tentative.html
+++ b/trusted-types/Range-createContextualFragment.tentative.html
@@ -4,14 +4,12 @@
<script src="support/helper.sub.js"></script>
<body>
<script>
- async_test(t => {
- createHTML_policy(window)
- .then(t.step_func_done(p => {
- let html = p.createHTML(INPUTS.HTML);
- var range = document.createRange();
- range.selectNodeContents(document.documentElement);
- var result = range.createContextualFragment(html);
- assert_equals(result.textContent, RESULTS.HTML);
- }));
+ test(t => {
+ let p = createHTML_policy(window, 1);
+ let html = p.createHTML(INPUTS.HTML);
+ var range = document.createRange();
+ range.selectNodeContents(document.documentElement);
+ var result = range.createContextualFragment(html);
+ assert_equals(result.textContent, RESULTS.HTML);
}, "range.createContextualFragment assigned via policy (successful HTML transformation).");
</script>
diff --git a/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html b/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html
new file mode 100644
index 0000000..b20fcf2
--- /dev/null
+++ b/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html
@@ -0,0 +1,294 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js" ></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/helper.sub.js"></script>
+<body>
+<script>
+ //HTML tests
+ function createHTMLTest(policyName, policy, expectedHTML, t) {
+ let p = window.TrustedTypes.createPolicy(policyName, policy);
+ assert_true(p.createHTML('whatever') instanceof TrustedHTML);
+ assert_equals(p.createHTML('whatever') + "", expectedHTML);
+ }
+
+ test(t => {
+ createHTMLTest('TestPolicyHTML1', { createHTML: s => s }, 'whatever', t);
+ }, "html = identity function");
+
+ test(t => {
+ createHTMLTest('TestPolicyHTML2', { createHTML: s => null }, "null", t);
+ }, "html = null");
+
+ var HTMLstr = 'well, ';
+ test(t => {
+ createHTMLTest('TestPolicyHTML3', { createHTML: s => HTMLstr + s }, HTMLstr + 'whatever', t);
+ }, "html = string + global string");
+
+ var HTMLx = 'global';
+ test(t => {
+ createHTMLTest('TestPolicyHTML4', { createHTML: s => { HTMLx = s; return s; } }, 'whatever', t);
+ assert_equals(HTMLx, 'whatever');
+ }, "html = identity function, global string changed");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyHTML5', { createHTML: s => { throw new Error(); }});
+ assert_throws(new Error(), _ => {
+ p.createHTML('whatever');
+ });
+ }, "html = callback that throws");
+
+ var obj = {
+ "foo": "well,"
+ }
+
+ function getHTML(s) {
+ return this.foo + " " + s;
+ }
+
+ test(t => {
+ createHTMLTest('TestPolicyHTML6', { createHTML: getHTML.bind(obj) }, 'well, whatever', t);
+ }, "html = this bound to an object");
+
+ var foo = "well,";
+ test(t => {
+ createHTMLTest('TestPolicyHTML7', { createHTML: s => getHTML(s) }, 'well, whatever', t);
+ }, "html = this without bind");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyHTML8', null);
+ assert_throws(new TypeError(), _ => {
+ p.createHTML('whatever');
+ });
+ }, "html - calling undefined callback throws");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyHTML9', { createHTML: createHTMLJS });
+ assert_throws(new TypeError(), _ => {
+ p.createScript(INPUTS.SCRIPT);
+ });
+ assert_throws(new TypeError(), _ => {
+ p.createScriptURL(INPUTS.SCRIPTURL);
+ });
+ assert_throws(new TypeError(), _ => {
+ p.createURL(INPUTS.URL);
+ });
+ }, "createHTML defined - calling undefined callbacks throws");
+
+ //Script tests
+ function createScriptTest(policyName, policy, expectedScript, t) {
+ let p = window.TrustedTypes.createPolicy(policyName, policy);
+ assert_true(p.createScript('whatever') instanceof TrustedScript);
+ assert_equals(p.createScript('whatever') + "", expectedScript);
+ }
+
+ test(t => {
+ createScriptTest('TestPolicyScript1', { createScript: s => s }, 'whatever', t);
+ }, "script = identity function");
+
+ test(t => {
+ createScriptTest('TestPolicyScript2', { createScript: s => null }, "null", t);
+ }, "script = null");
+
+ var Scriptstr = 'well, ';
+ test(t => {
+ createScriptTest('TestPolicyScript3', { createScript: s => Scriptstr + s }, Scriptstr + 'whatever', t);
+ }, "script = string + global string");
+
+ var Scriptx = 'global';
+ test(t => {
+ createScriptTest('TestPolicyScript4', { createScript: s => { Scriptx = s; return s; } }, 'whatever', t);
+ assert_equals(Scriptx, 'whatever');
+ }, "script = identity function, global string changed");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyScript5', {
+ createScript: s => { throw new Error(); }
+ });
+ assert_throws(new Error(), _ => {
+ p.createScript('whatever');
+ });
+ }, "script = callback that throws");
+
+ var obj = {
+ "foo": "well,"
+ }
+
+ function getScript(s) {
+ return this.foo + " " + s;
+ }
+
+ test(t => {
+ createScriptTest('TestPolicyScript6', { createScript: getScript.bind(obj) }, 'well, whatever', t);
+ }, "script = this bound to an object");
+
+ var foo = "well,";
+ test(t => {
+ createScriptTest('TestPolicyScript7', { createScript: s => getScript(s) }, 'well, whatever', t);
+ }, "script = this without bind");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyScript8', null);
+ assert_throws(new TypeError(), _ => {
+ p.createScript('whatever');
+ });
+ }, "script - calling undefined callback throws");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyScript9', { createScript: createScriptJS });
+ assert_throws(new TypeError(), _ => {
+ p.createHTML(INPUTS.HTML);
+ });
+ assert_throws(new TypeError(), _ => {
+ p.createScriptURL(INPUTS.SCRIPTURL);
+ });
+ assert_throws(new TypeError(), _ => {
+ p.createURL(INPUTS.URL);
+ });
+ }, "createScript defined - calling undefined callbacks throws");
+
+
+ //ScriptURL tests
+ function createScriptURLTest(policyName, policy, expectedScriptURL, t) {
+ let p = window.TrustedTypes.createPolicy(policyName, policy);
+ assert_true(p.createScriptURL(INPUTS.SCRIPTURL) instanceof TrustedScriptURL);
+ assert_equals(p.createScriptURL(INPUTS.SCRIPTURL) + "", expectedScriptURL);
+ }
+
+ test(t => {
+ createScriptURLTest('TestPolicyScriptURL1', { createScriptURL: s => s }, INPUTS.SCRIPTURL, t);
+ }, "script_url = identity function");
+
+ test(t => {
+ createScriptURLTest('TestPolicyScriptURL2', { createScriptURL: s => null }, "", t);
+ }, "script_url = null");
+
+ var scriptURLstr = '#duck';
+ test(t => {
+ createScriptURLTest('TestPolicyScriptURL3', { createScriptURL: s => s + scriptURLstr }, INPUTS.SCRIPTURL + scriptURLstr, t);
+ }, "script_url = string + global string");
+
+ var scriptURLx = 'global';
+ test(t => {
+ createScriptURLTest('TestPolicyScriptURL4', { createScriptURL: s => { ScriptURLx = s; return s; } }, INPUTS.SCRIPTURL, t);
+ assert_equals(ScriptURLx, INPUTS.SCRIPTURL);
+ }, "script_url = identity function, global string changed");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyScriptURL5', {
+ createScriptURL: s => { throw new Error(); }
+ });
+ assert_throws(new Error(), _ => {
+ p.createScriptURL(INPUTS.SCRIPTURL);
+ });
+ }, "script_url = callback that throws");
+
+ function getScriptURL(s) {
+ return s + this.baz;
+ }
+
+ var obj = {
+ "baz": "#duck"
+ }
+
+ test(t => {
+ createScriptURLTest('TestPolicyScriptURL6', { createScriptURL: getScriptURL.bind(obj) }, INPUTS.SCRIPTURL + "#duck", t);
+ }, "script_url = this bound to an object");
+
+ var baz = "#duck";
+ test(t => {
+ createScriptURLTest('TestPolicyScriptURL7', { createScriptURL: s => getScriptURL(s) }, INPUTS.SCRIPTURL + baz, t);
+ }, "script_url = this without bind");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyScriptURL8', null);
+ assert_throws(new TypeError(), _ => {
+ p.createScriptURL(INPUTS.SCRIPTURL);
+ });
+ }, "script_url - calling undefined callback throws");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyScriptURL9', { createScriptURL: createScriptURLJS });
+ assert_throws(new TypeError(), _ => {
+ p.createHTML(INPUTS.HTML);
+ });
+ assert_throws(new TypeError(), _ => {
+ p.createScript(INPUTS.SCRIPT);
+ });
+ assert_throws(new TypeError(), _ => {
+ p.createURL(INPUTS.URL);
+ });
+ }, "createScriptURL defined - calling undefined callbacks throws");
+
+
+ //URL tests
+ function createURLTest(policyName, policy, expectedURL, t) {
+ let p = window.TrustedTypes.createPolicy(policyName, policy);
+ assert_true(p.createURL(INPUTS.URL) instanceof TrustedURL);
+ assert_equals(p.createURL(INPUTS.URL) + "", expectedURL);
+ }
+
+ test(t => {
+ createURLTest('TestPolicyURL1', { createURL: s => s }, INPUTS.URL, t);
+ }, "url = identity function");
+
+ test(t => {
+ createURLTest('TestPolicyURL2', { createURL: s => null }, "", t);
+ }, "url = null");
+
+ var URLstr = '#x';
+ test(t => {
+ createURLTest('TestPolicyURL3', { createURL: s => s + URLstr }, INPUTS.URL + URLstr, t);
+ }, "url = string + global string");
+
+ var URLx = 'global';
+ test(t => {
+ createURLTest('TestPolicyURL4', { createURL: s => { URLx = s; return s; } }, INPUTS.URL, t);
+ assert_equals(URLx, INPUTS.URL);
+ }, "url = identity function, global string changed");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyURL5', {
+ createURL: s => { throw new Error(); }
+ });
+ assert_throws(new Error(), _ => {
+ p.createURL(INPUTS.URL);
+ });
+ }, "url = callback that throws");
+
+ function getURL(s) {
+ return s + this.bar;
+ }
+
+ var obj = {
+ "bar": "#x"
+ }
+
+ test(t => {
+ createURLTest('TestPolicyURL6', { createURL: getURL.bind(obj) }, INPUTS.URL + "#x", t);
+ }, "url = this bound to an object");
+
+ var bar = "#x";
+ test(t => {
+ createURLTest('TestPolicyURL7', { createURL: s => getURL(s) }, INPUTS.URL + bar, t);
+ }, "url = this without bind");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyURL8', null);
+ assert_throws(new TypeError(), _ => {
+ p.createURL(INPUTS.URL);
+ });
+ }, "url - calling undefined callback throws");
+
+ test(t => {
+ let p = window.TrustedTypes.createPolicy('TestPolicyURL9', { createURL: createURLJS });
+ assert_throws(new TypeError(), _ => {
+ p.createHTML(INPUTS.HTML);
+ });
+ assert_throws(new TypeError(), _ => {
+ p.createScript(INPUTS.SCRIPT);
+ });
+ assert_throws(new TypeError(), _ => {
+ p.createScriptURL(INPUTS.SCRIPTURL);
+ });
+ }, "createURL defined - calling undefined callbacks throws");
+</script>
diff --git a/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html b/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html
new file mode 100644
index 0000000..6d43e0b
--- /dev/null
+++ b/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js" ></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/helper.sub.js"></script>
+<body>
+<script>
+ //Policy name test
+ test(t => {
+ let policy = window.TrustedTypes.createPolicy('SomeName', { createHTML: s => s } );
+ assert_true(policy instanceof TrustedTypePolicy);
+ assert_equals(policy.name, 'SomeName');
+ }, "policy.name = name");
+
+ //Duplicate names test
+ test(t => {
+ assert_throws(new TypeError(), _ => {
+ window.TrustedTypes.createPolicy('SomeName', { createURL: s => s } );
+ });
+ }, "duplicate policy name attempt throws");
+
+ //Retrieve policy names tests
+ test(t => {
+ let policy = window.TrustedTypes.createPolicy('SomeOtherName', { createURL: s => s } );
+ let names = window.TrustedTypes.getPolicyNames();
+ assert_true(names.includes('SomeName'));
+ assert_true(names.includes('SomeOtherName'));
+ }, "Retrieving policy names");
+</script>
diff --git a/trusted-types/TrustedTypePolicyFactory-createPolicy.tentative.html b/trusted-types/TrustedTypePolicyFactory-createPolicy.tentative.html
deleted file mode 100644
index 76e6d13..0000000
--- a/trusted-types/TrustedTypePolicyFactory-createPolicy.tentative.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js" ></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="support/helper.sub.js"></script>
-<body>
-<script>
- //Policy name test
- async_test(t => {
- window.trustedTypes.createPolicy('SomeName', { createHTML: s => s } )
- .then(t.step_func_done(policy => {
- assert_true(policy instanceof TrustedTypePolicy);
- assert_equals(policy.name, 'SomeName');
- }));
- }, "policy.name = name");
-
- //HTML tests
- function createHTMLTest(policy, expectedHTML, t) {
- window.trustedTypes.createPolicy('SomeName', policy)
- .then(t.step_func_done(p => {
- assert_true(p.createHTML('whatever') instanceof TrustedHTML);
- assert_equals(p.createHTML('whatever') + "", expectedHTML);
- }));
- }
-
- async_test(t => {
- createHTMLTest( { createHTML: s => s }, 'whatever', t);
- }, "html = identity function");
-
- async_test(t => {
- createHTMLTest( { createHTML: s => null }, "null", t);
- }, "html = null");
-
- var HTMLstr = 'well, ';
- async_test(t => {
- createHTMLTest( { createHTML: s => HTMLstr + s }, HTMLstr + 'whatever', t);
- }, "html = string + global string");
-
- var HTMLx = 'global';
- async_test(t => {
- window.trustedTypes.createPolicy('SomeName', {
- createHTML: s => { HTMLx = s; return s; }
- })
- .then(t.step_func_done(p => {
- assert_true(p.createHTML('whatever') instanceof TrustedHTML);
- assert_equals(p.createHTML('whatever') + "", 'whatever');
- assert_equals(HTMLx, 'whatever');
- }));
- }, "html = identity function, global string changed");
-
- async_test(t => {
- window.trustedTypes.createPolicy('SomeName', {
- createHTML: s => { throw new Error(); }
- })
- .then(t.step_func_done(p => {
- assert_throws(new Error(), _ => {
- p.createHTML('whatever');
- });
- }));
- }, "html = callback that throws");
-
- var obj = {
- "foo": "well,"
- }
-
- function getHTML(s) {
- return this.foo + " " + s;
- }
-
- async_test(t => {
- createHTMLTest( {
- createHTML: getHTML.bind(obj)},
- 'well, whatever', t);
- }, "html = this bound to an object");
-
- var foo = "well,";
- async_test(t => {
- createHTMLTest( { createHTML: s => getHTML(s) }, 'well, whatever', t);
- }, "html = this without bind");
-
- async_test(t => {
- window.trustedTypes.createPolicy('SomeName', null)
- .then(t.step_func_done(p => {
- assert_equals(p.createHTML('whatever'), null);
- }));
- }, "html - calling undefined callback");
-
- //Script tests
- function createScriptTest(policy, expectedScript, t) {
- let p = window.trustedTypes.createPolicy('SomeName', policy)
- .then(t.step_func_done(p => {
- assert_true(p.createScript('whatever') instanceof TrustedScript);
- assert_equals(p.createScript('whatever') + "", expectedScript);
- }));
- }
-
- async_test(t => {
- createScriptTest( { createScript: s => s }, 'whatever', t);
- }, "script = identity function");
-
- async_test(t => {
- createScriptTest( { createScript: s => null }, "null", t);
- }, "script = null");
-
- var Scriptstr = 'well, ';
- async_test(t => {
- createScriptTest( { createScript: s => Scriptstr + s }, Scriptstr + 'whatever', t);
- }, "script = string + global string");
-
- var Scriptx = 'global';
- async_test(t => {
- let p = window.trustedTypes.createPolicy('SomeName', {
- createScript: s => { Scriptx = s; return s; }
- })
- .then(t.step_func_done(p => {
- assert_true(p.createScript('whatever') instanceof TrustedScript);
- assert_equals(p.createScript('whatever') + "", 'whatever');
- assert_equals(Scriptx, 'whatever');
- }));
- }, "script = identity function, global string changed");
-
- async_test(t => {
- let p = window.trustedTypes.createPolicy('SomeName', {
- createScript: s => { throw new Error(); }
- })
- .then(t.step_func_done(p => {
- assert_throws(new Error(), _ => {
- p.createScript('whatever');
- });
- }));
- }, "script = callback that throws");
-
- var obj = {
- "foo": "well,"
- }
-
- function getScript(s) {
- return this.foo + " " + s;
- }
-
- async_test(t => {
- createScriptTest( {
- createScript: getScript.bind(obj)},
- 'well, whatever', t);
- }, "script = this bound to an object");
-
- var foo = "well,";
- async_test(t => {
- createScriptTest( { createScript: s => getScript(s) }, 'well, whatever', t);
- }, "script = this without bind");
-
- async_test(t => {
- let p = window.trustedTypes.createPolicy('SomeName', null)
- .then(t.step_func_done(p => {
- assert_equals(p.createScript('whatever'), null);
- }));
- }, "script - calling undefined callback");
-
- //ScriptURL tests
- function createScriptURLTest(policy, expectedScriptURL, t) {
- window.trustedTypes.createPolicy('SomeName', policy)
- .then(t.step_func_done(p => {
- assert_true(p.createScriptURL(INPUTS.SCRIPTURL) instanceof TrustedScriptURL);
- assert_equals(p.createScriptURL(INPUTS.SCRIPTURL) + "", expectedScriptURL);
- }));
- }
-
- async_test(t => {
- createScriptURLTest( { createScriptURL: s => s }, INPUTS.SCRIPTURL, t);
- }, "script_url = identity function");
-
- async_test(t => {
- createScriptURLTest( { createScriptURL: s => null }, "", t);
- }, "script_url = null");
-
- var scriptURLstr = '#duck';
- async_test(t => {
- createScriptURLTest( { createScriptURL: s => s + scriptURLstr }, INPUTS.SCRIPTURL + scriptURLstr, t);
- }, "script_url = string + global string");
-
- var scriptURLx = 'global';
- async_test(t => {
- window.trustedTypes.createPolicy('SomeName', {
- createScriptURL: s => { ScriptURLx = s; return s; }
- })
- .then(t.step_func_done(p => {
- assert_true(p.createScriptURL(INPUTS.SCRIPTURL) instanceof TrustedScriptURL);
- assert_equals(p.createScriptURL(INPUTS.SCRIPTURL) + "", INPUTS.SCRIPTURL);
- assert_equals(ScriptURLx, INPUTS.SCRIPTURL);
- }));
- }, "script_url = identity function, global string changed");
-
- async_test(t => {
- window.trustedTypes.createPolicy('SomeName', {
- createScriptURL: s => { throw new Error(); }
- })
- .then(t.step_func_done(p => {
- assert_throws(new Error(), _ => {
- p.createScriptURL(INPUTS.SCRIPTURL);
- });
- }));
- }, "script_url = callback that throws");
-
- function getScriptURL(s) {
- return s + this.baz;
- }
-
- var obj = {
- "baz": "#duck"
- }
-
- async_test(t => {
- createScriptURLTest( {
- createScriptURL: getScriptURL.bind(obj)},
- INPUTS.SCRIPTURL + "#duck", t);
- }, "script_url = this bound to an object");
-
- var baz = "#duck";
- async_test(t => {
- createScriptURLTest( { createScriptURL: s => getScriptURL(s) }, INPUTS.SCRIPTURL + baz, t);
- }, "script_url = this without bind");
-
- async_test(t => {
- window.trustedTypes.createPolicy('SomeName', null)
- .then(t.step_func_done(p => {
- assert_equals(p.createScriptURL(INPUTS.SCRIPTURL), null);
- }));
- }, "script_url - calling undefined callback");
-
- //URL tests
- function createURLTest(policy, expectedURL, t) {
- window.trustedTypes.createPolicy('SomeName', policy)
- .then(t.step_func_done(p => {
- assert_true(p.createURL(INPUTS.URL) instanceof TrustedURL);
- assert_equals(p.createURL(INPUTS.URL) + "", expectedURL);
- }));
- }
-
- async_test(t => {
- createURLTest( { createURL: s => s }, INPUTS.URL, t);
- }, "url = identity function");
-
- async_test(t => {
- createURLTest( { createURL: s => null }, "", t);
- }, "url = null");
-
- var URLstr = '#x';
- async_test(t => {
- createURLTest( { createURL: s => s + URLstr }, INPUTS.URL + URLstr, t);
- }, "url = string + global string");
-
- var URLx = 'global';
- async_test(t => {
- window.trustedTypes.createPolicy('SomeName', {
- createURL: s => { URLx = s; return s; }
- })
- .then(t.step_func_done(p => {
- assert_true(p.createURL(INPUTS.URL) instanceof TrustedURL);
- assert_equals(p.createURL(INPUTS.URL) + "", INPUTS.URL);
- assert_equals(URLx, INPUTS.URL);
- }));
- }, "url = identity function, global string changed");
-
- async_test(t => {
- window.trustedTypes.createPolicy('SomeName', {
- createURL: s => { throw new Error(); }
- })
- .then(t.step_func_done(p => {
- assert_throws(new Error(), _ => {
- p.createURL(INPUTS.URL);
- });
- }));
- }, "url = callback that throws");
-
- function getURL(s) {
- return s + this.bar;
- }
-
- var obj = {
- "bar": "#x"
- }
-
- async_test(t => {
- createURLTest( {
- createURL: getURL.bind(obj)},
- INPUTS.URL + "#x", t);
- }, "url = this bound to an object");
-
- var bar = "#x";
- async_test(t => {
- createURLTest( { createURL: s => getURL(s) }, INPUTS.URL + bar, t);
- }, "url = this without bind");
-
- async_test(t => {
- window.trustedTypes.createPolicy('SomeName', null)
- .then(t.step_func_done(p => {
- assert_equals(p.createURL(INPUTS.URL), null);
- }));
- }, "url - calling undefined callback");
-</script>
diff --git a/trusted-types/Window-trustedTypes.tentative.html b/trusted-types/Window-TrustedTypes.tentative.html
similarity index 77%
rename from trusted-types/Window-trustedTypes.tentative.html
rename to trusted-types/Window-TrustedTypes.tentative.html
index ef44877..8e20e49 100644
--- a/trusted-types/Window-trustedTypes.tentative.html
+++ b/trusted-types/Window-TrustedTypes.tentative.html
@@ -5,7 +5,7 @@
<body>
<script>
test(t => {
- let factory = window.trustedTypes;
+ let factory = window.TrustedTypes;
assert_true(factory instanceof TrustedTypePolicyFactory);
- }, "factory = window.trustedTypes");
+ }, "factory = window.TrustedTypes");
</script>
diff --git a/trusted-types/Window-open.tentative.html b/trusted-types/Window-open.tentative.html
index c005fbb..172d566 100644
--- a/trusted-types/Window-open.tentative.html
+++ b/trusted-types/Window-open.tentative.html
@@ -5,23 +5,21 @@
<body>
<script>
// helper functions for the tests
- function testWindowOpen(t, win) {
- createURL_policy(window)
- .then(t.step_func_done(p => {
- let url = p.createURL(INPUTS.URL);
- let child_window = win.open(url, "", "");
- child_window.onload = t.step_func_done(_ => {
- assert_equals(child_window.location.href, "" + url);
- child_window.close();
- });
- }));
+ function testWindowOpen(t, win, testNumber) {
+ let p = createURL_policy(window, testNumber);
+ let url = p.createURL(INPUTS.URL);
+ let child_window = win.open(url, "", "");
+ child_window.onload = t.step_func_done(_ => {
+ assert_equals(child_window.location.href, "" + url);
+ child_window.close();
+ });
}
- async_test(t => {
- testWindowOpen(t, window);
+ test(t => {
+ testWindowOpen(t, window, 1);
}, "window.open via policy (successful URL transformation).");
- async_test(t => {
- testWindowOpen(t, document);
+ test(t => {
+ testWindowOpen(t, document, 2);
}, "document.open via policy (successful URL transformation).");
</script>
diff --git a/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html b/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html
index cc575dc..e5959a4 100644
--- a/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html
+++ b/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html
@@ -7,14 +7,12 @@
<body>
<script>
// Trusted HTML assignments do not throw.
- async_test(t => {
- createHTML_policy(window)
- .then(t.step_func_done(p => {
- let html = p.createHTML(INPUTS.HTML);
- let parser = new DOMParser();
- let doc = parser.parseFromString(html, "text/html");
- assert_equals(doc.body.innerText, RESULTS.HTML);
- }));
+ test(t => {
+ let p = createHTML_policy(window, 1);
+ let html = p.createHTML(INPUTS.HTML);
+ let parser = new DOMParser();
+ let doc = parser.parseFromString(html, "text/html");
+ assert_equals(doc.body.innerText, RESULTS.HTML);
}, "document.innerText assigned via policy (successful HTML transformation).");
// String assignments throw.
diff --git a/trusted-types/block-string-assignment-to-Document-write.tentative.html b/trusted-types/block-string-assignment-to-Document-write.tentative.html
index 28813d7..06532c3 100644
--- a/trusted-types/block-string-assignment-to-Document-write.tentative.html
+++ b/trusted-types/block-string-assignment-to-Document-write.tentative.html
@@ -10,13 +10,11 @@
<body>
<script>
// TrustedURL assignments do not throw.
- async_test(t => {
- createHTML_policy(window)
- .then(t.step_func_done(p => {
- let html = p.createHTML(INPUTS.HTML);
- document.write(html);
- assert_equals(document.body.innerText, RESULTS.HTML);
- }));
+ test(t => {
+ let p = createHTML_policy(window, 1);
+ let html = p.createHTML(INPUTS.HTML);
+ document.write(html);
+ assert_equals(document.body.innerText, RESULTS.HTML);
}, "document.write with html assigned via policy (successful URL transformation).");
// String assignments throw.
diff --git a/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html b/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html
index ad94b44..1fb3bbd 100644
--- a/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html
+++ b/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html
@@ -13,33 +13,31 @@
var container = document.querySelector('#container');
// Trusted HTML assignments do not throw.
- async_test(t => {
- createHTML_policy(window)
- .then(t.step_func_done(p => {
- let html = p.createHTML(INPUTS.HTML);
+ test(t => {
+ let p = createHTML_policy(window, 1);
+ let html = p.createHTML(INPUTS.HTML);
- var d = document.createElement('div');
- container.appendChild(d);
+ var d = document.createElement('div');
+ container.appendChild(d);
- d.insertAdjacentHTML('beforebegin', html);
- assert_equals(d.previousSibling.nodeType, Node.TEXT_NODE);
- assert_equals(d.previousSibling.data, RESULTS.HTML);
+ d.insertAdjacentHTML('beforebegin', html);
+ assert_equals(d.previousSibling.nodeType, Node.TEXT_NODE);
+ assert_equals(d.previousSibling.data, RESULTS.HTML);
- d.insertAdjacentHTML('afterbegin', html);
- assert_equals(d.firstChild.nodeType, Node.TEXT_NODE);
- assert_equals(d.firstChild.data, RESULTS.HTML);
+ d.insertAdjacentHTML('afterbegin', html);
+ assert_equals(d.firstChild.nodeType, Node.TEXT_NODE);
+ assert_equals(d.firstChild.data, RESULTS.HTML);
- d.insertAdjacentHTML('beforeend', html);
- assert_equals(d.lastChild.nodeType, Node.TEXT_NODE);
- assert_equals(d.lastChild.data, RESULTS.HTML);
+ d.insertAdjacentHTML('beforeend', html);
+ assert_equals(d.lastChild.nodeType, Node.TEXT_NODE);
+ assert_equals(d.lastChild.data, RESULTS.HTML);
- d.insertAdjacentHTML('afterend', html);
- assert_equals(d.nextSibling.nodeType, Node.TEXT_NODE);
- assert_equals(d.nextSibling.data, RESULTS.HTML);
+ d.insertAdjacentHTML('afterend', html);
+ assert_equals(d.nextSibling.nodeType, Node.TEXT_NODE);
+ assert_equals(d.nextSibling.data, RESULTS.HTML);
- while (container.firstChild)
- container.firstChild.remove();
- }));
+ while (container.firstChild)
+ container.firstChild.remove();
}, "insertAdjacentHTML with html assigned via policy (successful HTML transformation).");
// String assignments throw.
diff --git a/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html b/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html
index 47f1165..abb5952 100644
--- a/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html
+++ b/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html
@@ -13,19 +13,17 @@
var container = document.querySelector('#container')
// TrustedHTML assignments do not throw.
- async_test(t => {
- createHTML_policy(window)
- .then(t.step_func_done(p => {
- let html = p.createHTML(INPUTS.HTML);
+ test(t => {
+ let p = createHTML_policy(window, 1);
+ let html = p.createHTML(INPUTS.HTML);
- var d = document.createElement('div');
- document.querySelector('#container').appendChild(d);
- d.outerHTML = html;
- assert_equals(container.innerText, RESULTS.HTML);
+ var d = document.createElement('div');
+ document.querySelector('#container').appendChild(d);
+ d.outerHTML = html;
+ assert_equals(container.innerText, RESULTS.HTML);
- while (container.firstChild)
- container.firstChild.remove();
- }));
+ while (container.firstChild)
+ container.firstChild.remove();
}, "outerHTML with html assigned via policy (successful HTML transformation).");
// String assignments throw.
diff --git a/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html b/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html
index eae5262..7b1a579 100644
--- a/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html
+++ b/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html
@@ -27,8 +27,8 @@
];
testCases.forEach(c => {
- async_test(t => {
- assert_element_accepts_trusted_url(window, t, c[0], c[1], RESULTS.URL);
+ test(t => {
+ assert_element_accepts_trusted_url(window, c, t, c[0], c[1], RESULTS.URL);
assert_throws_no_trusted_type(c[0], c[1], 'A string');
assert_throws_no_trusted_type(c[0], c[1], null);
}, c[0] + "." + c[1] + " accepts only TrustedURL");
@@ -41,8 +41,8 @@
];
scriptTestCases.forEach(c => {
- async_test(t => {
- assert_element_accepts_trusted_script_url(window, t, c[0], c[1], RESULTS.SCRIPTURL);
+ test(t => {
+ assert_element_accepts_trusted_script_url(window, c, t, c[0], c[1], RESULTS.SCRIPTURL);
assert_throws_no_trusted_type(c[0], c[1], 'A string');
assert_throws_no_trusted_type(c[0], c[1], null);
}, c[0] + "." + c[1] + " accepts only TrustedScriptURL");
@@ -55,8 +55,8 @@
];
HTMLTestCases.forEach(c => {
- async_test(t => {
- assert_element_accepts_trusted_html(window, t, c[0], c[1], RESULTS.HTML);
+ test(t => {
+ assert_element_accepts_trusted_html(window, c, t, c[0], c[1], RESULTS.HTML);
assert_throws_no_trusted_type(c[0], c[1], 'A string');
assert_throws_no_trusted_type(c[0], c[1], null);
}, c[0] + "." + c[1] + " accepts only TrustedHTML");
diff --git a/trusted-types/block-string-assignment-to-Location-assign.tentative.html b/trusted-types/block-string-assignment-to-Location-assign.tentative.html
index 8079335..cd375b9 100644
--- a/trusted-types/block-string-assignment-to-Location-assign.tentative.html
+++ b/trusted-types/block-string-assignment-to-Location-assign.tentative.html
@@ -10,13 +10,11 @@
<body>
<script>
// TrustedURL assignments do not throw.
- async_test(t => {
- createURL_policy(window)
- .then(t.step_func_done(p => {
- let url = p.createURL(location.href + "#xxx");
- location.assign(url);
- assert_equals("" + url, location.href, "location href");
- }));
+ test(t => {
+ let p = createURL_policy(window, 1);
+ let url = p.createURL(location.href + "#xxx");
+ location.assign(url);
+ assert_equals("" + url, location.href, "location href");
}, "location.assign via policy (successful URL transformation).");
// String assignments throw.
diff --git a/trusted-types/block-string-assignment-to-Location-href.tentative.html b/trusted-types/block-string-assignment-to-Location-href.tentative.html
index 4e393f9..14fbcb2f 100644
--- a/trusted-types/block-string-assignment-to-Location-href.tentative.html
+++ b/trusted-types/block-string-assignment-to-Location-href.tentative.html
@@ -10,13 +10,11 @@
<body>
<script>
// TrustedURL assignments do not throw.
- async_test(t => {
- createURL_policy(window)
- .then(t.step_func_done(p => {
- let url = p.createURL(location.href + "#xxx");
- location.href = url;
- assert_equals("" + url, location.href, "location href");
- }));
+ test(t => {
+ let p = createURL_policy(window, 1);
+ let url = p.createURL(location.href + "#xxx");
+ location.href = url;
+ assert_equals("" + url, location.href, "location href");
}, "location.href assigned via policy (successful URL transformation).");
// String assignments throw.
diff --git a/trusted-types/block-string-assignment-to-Location-replace.tentative.html b/trusted-types/block-string-assignment-to-Location-replace.tentative.html
index 872f14e..9d00fcd 100644
--- a/trusted-types/block-string-assignment-to-Location-replace.tentative.html
+++ b/trusted-types/block-string-assignment-to-Location-replace.tentative.html
@@ -10,13 +10,11 @@
<body>
<script>
// TrustedURL replacements do not throw.
- async_test(t => {
- createURL_policy(window)
- .then(t.step_func_done(p => {
- let url = p.createURL(location.href + "#xxx");
- location.replace(url);
- assert_equals("" + url, location.href, "location href");
- }));
+ test(t => {
+ let p = createURL_policy(window, 1);
+ let url = p.createURL(location.href + "#xxx");
+ location.replace(url);
+ assert_equals("" + url, location.href, "location href");
}, "location.replace via policy (successful URL transformation).");
// String replacements throw.
diff --git a/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html b/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html
index 2afa257..ff9be06 100644
--- a/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html
+++ b/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html
@@ -7,15 +7,13 @@
<body>
<script>
// TrustedHTML assignments do not throw.
- async_test(t => {
- createHTML_policy(window)
- .then(t.step_func_done(p => {
- let html = p.createHTML(INPUTS.HTML);
- var range = document.createRange();
- range.selectNodeContents(document.documentElement);
- var result = range.createContextualFragment(html);
- assert_equals(result.textContent, RESULTS.HTML);
- }));
+ test(t => {
+ let p = createHTML_policy(window, 1);
+ let html = p.createHTML(INPUTS.HTML);
+ var range = document.createRange();
+ range.selectNodeContents(document.documentElement);
+ var result = range.createContextualFragment(html);
+ assert_equals(result.textContent, RESULTS.HTML);
}, "range.createContextualFragment assigned via policy (successful HTML transformation).");
// String assignments throw.
diff --git a/trusted-types/block-string-assignment-to-Window-open.tentative.html b/trusted-types/block-string-assignment-to-Window-open.tentative.html
index f571229..ae4b038 100644
--- a/trusted-types/block-string-assignment-to-Window-open.tentative.html
+++ b/trusted-types/block-string-assignment-to-Window-open.tentative.html
@@ -9,54 +9,51 @@
</head>
<body>
<script>
+ var testnb = 0;
// helper functions for the tests
- function testWindowOpen(t, win) {
- createURL_policy(window)
- .then(t.step_func_done(p => {
- let url = p.createURL(INPUTS.URL);
- let child_window = win.open(url, "", "");
- child_window.onload = t.step_func_done(_ => {
- assert_equals(child_window.location.href, "" + url);
- child_window.close();
- });
- }));
+ function testWindowOpen(t, win, nb) {
+ let p = createURL_policy(window, nb);
+ let url = p.createURL(INPUTS.URL);
+ let child_window = win.open(url, "", "");
+ child_window.onload = t.step_func_done(_ => {
+ assert_equals(child_window.location.href, "" + url);
+ child_window.close();
+ });
}
- function testWindowThrows(t, url, win) {
- createURL_policy(window)
- .then(t.step_func_done(p => {
- assert_throws(new TypeError(), _ => {
- let child_window = win.open(url, "", "");
- child_window.close();
- });
- }));
+ function testWindowThrows(t, url, win, nb) {
+ let p = createURL_policy(window, nb);
+ assert_throws(new TypeError(), _ => {
+ let child_window = win.open(url, "", "");
+ child_window.close();
+ });
}
// TrustedURL assignments do not throw.
- async_test(t => {
- testWindowOpen(t, window);
+ test(t => {
+ testWindowOpen(t, window, ++testnb);
}, "window.open via policy (successful URL transformation).");
- async_test(t => {
- testWindowOpen(t, document);
+ test(t => {
+ testWindowOpen(t, document, ++testnb);
}, "document.open via policy (successful URL transformation).");
// String assignments throw.
- async_test(t => {
- testWindowThrows(t, 'A string', window);
+ test(t => {
+ testWindowThrows(t, 'A string', window, ++testnb);
}, "`window.open(string)` throws.");
- async_test(t => {
- testWindowThrows(t, 'A string', document);
+ test(t => {
+ testWindowThrows(t, 'A string', document, ++testnb);
}, "`document.open(string)` throws.");
// Null assignment throws.
- async_test(t => {
- testWindowThrows(t, null, window);
+ test(t => {
+ testWindowThrows(t, null, window, ++testnb);
}, "`window.open(null)` throws.");
- async_test(t => {
- testWindowThrows(t, null, document);
+ test(t => {
+ testWindowThrows(t, null, document, ++testnb);
}, "`document.open(null)` throws.");
</script>
</body>
diff --git a/trusted-types/support/helper.sub.js b/trusted-types/support/helper.sub.js
index b543591..617e02a 100644
--- a/trusted-types/support/helper.sub.js
+++ b/trusted-types/support/helper.sub.js
@@ -31,52 +31,44 @@
.replace("an.url", "successfully.transformed");
}
-function createHTML_policy(win) {
- return win.trustedTypes.createPolicy('SomeName', { createHTML: createHTMLJS });
+function createHTML_policy(win, c) {
+ return win.TrustedTypes.createPolicy('SomeHTMLPolicyName' + c, { createHTML: createHTMLJS });
}
-function createScript_policy(win) {
- return win.trustedTypes.createPolicy('SomeName', { createScript: createScriptJS });
+function createScript_policy(win, c) {
+ return win.TrustedTypes.createPolicy('SomeScriptPolicyName' + c, { createScript: createScriptJS });
}
-function createScriptURL_policy(win) {
- return win.trustedTypes.createPolicy('SomeName', { createScriptURL: createScriptURLJS });
+function createScriptURL_policy(win, c) {
+ return win.TrustedTypes.createPolicy('SomeScriptURLPolicyName' + c, { createScriptURL: createScriptURLJS });
}
-function createURL_policy(win) {
- return win.trustedTypes.createPolicy('SomeName', { createURL: createURLJS });
+function createURL_policy(win, c) {
+ return win.TrustedTypes.createPolicy('SomeURLPolicyName' + c, { createURL: createURLJS });
}
-function assert_element_accepts_trusted_html(win, t, tag, attribute, expected) {
- createHTML_policy(win)
- .then(t.step_func_done(p => {
- let html = p.createHTML(INPUTS.HTML);
- assert_element_accepts_trusted_type(tag, attribute, html, expected);
- }));
+function assert_element_accepts_trusted_html(win, c, t, tag, attribute, expected) {
+ let p = createHTML_policy(win, c);
+ let html = p.createHTML(INPUTS.HTML);
+ assert_element_accepts_trusted_type(tag, attribute, html, expected);
}
-function assert_element_accepts_trusted_script(win, t, tag, attribute, expected) {
- createScript_policy(win)
- .then(t.step_func_done(p => {
- let script = p.createScript(INPUTS.SCRIPT);
- assert_element_accepts_trusted_type(tag, attribute, script, expected);
- }));
+function assert_element_accepts_trusted_script(win, c, t, tag, attribute, expected) {
+ let p = createScript_policy(win, c);
+ let script = p.createScript(INPUTS.SCRIPT);
+ assert_element_accepts_trusted_type(tag, attribute, script, expected);
}
-function assert_element_accepts_trusted_script_url(win, t, tag, attribute, expected) {
- createScriptURL_policy(win)
- .then(t.step_func_done(p => {
- let scripturl = p.createScriptURL(INPUTS.SCRIPTURL);
- assert_element_accepts_trusted_type(tag, attribute, scripturl, expected);
- }));
+function assert_element_accepts_trusted_script_url(win, c, t, tag, attribute, expected) {
+ let p = createScriptURL_policy(win, c);
+ let scripturl = p.createScriptURL(INPUTS.SCRIPTURL);
+ assert_element_accepts_trusted_type(tag, attribute, scripturl, expected);
}
-function assert_element_accepts_trusted_url(win, t, tag, attribute, expected) {
- createURL_policy(win)
- .then(t.step_func_done(p => {
- let url = p.createURL(INPUTS.URL);
- assert_element_accepts_trusted_type(tag, attribute, url, expected);
- }));
+function assert_element_accepts_trusted_url(win, c, t, tag, attribute, expected) {
+ let p = createURL_policy(win, c);
+ let url = p.createURL(INPUTS.URL);
+ assert_element_accepts_trusted_type(tag, attribute, url, expected);
}
function assert_element_accepts_trusted_type(tag, attribute, value, expected) {