commit d3763246899985b5eaf6fede1716e350b44aeaa2
parent 7f22f480b56a89f79ed3b79778ec52616117e392
Author: Luke Warlow <lwarlow@igalia.com>
Date: Thu, 9 Oct 2025 20:33:17 +0000
Bug 1987852 [wpt PR 54784] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=298620, a=testonly
Automatic update from web-platform-tests
Improve tests for SVGAElement rel and relList
--
wpt-commits: dfa98f27f6385cac162ace2832e23a2e6d745084
wpt-pr: 54784
Diffstat:
3 files changed, 46 insertions(+), 25 deletions(-)
diff --git a/testing/web-platform/tests/svg/linking/scripted/a.rel-noopener-policy.html b/testing/web-platform/tests/svg/linking/scripted/a.rel-noopener-policy.html
@@ -1,22 +1,47 @@
<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<link rel="author" title="Divyansh Mangal" href="mailto:dmangal@microsoft.com">
-<link rel="help" href="https://svgwg.org/svg2-draft/linking.html#InterfaceSVGAElement">
-<title> Rel attribute with noopener value </title>
-<svg>
- <a id="test" href="resources/a.rel-noopener-policy-target.html" rel="noopener"></a>
+<html>
+<head>
+ <meta charset=utf-8>
+ <meta name="timeout" content="long">
+ <title>Test behavior of target=_blank links</title>
+ <script src=/resources/testharness.js></script>
+ <script src=/resources/testharnessreport.js></script>
+</head>
+<body>
+ <svg>
+ <a href="resources/a.rel-noopener-policy-target.html?a1" id="a1" rel="noopener" target="_blank">Click me</a>
+ <a href="resources/a.rel-noopener-policy-target.html?a2" id="a2" rel="opener" target="_blank">Click me</a>
+ <a href="resources/a.rel-noopener-policy-target.html?a3" id="a3" target="_blank">Click me</a>
+ <a href="resources/a.rel-noopener-policy-target.html?a4" id="a4" rel="opener noopener" target="_blank">Click me</a>
+ <a href="resources/a.rel-noopener-policy-target.html?a5" id="a5" rel="noopener opener" target="_blank">Click me</a>
+ <a href="resources/a.rel-noopener-policy-target.html?a6" id="a6" rel="noreferrer" target="_blank">Click me</a>
+ <a href="resources/a.rel-noopener-policy-target.html?a7" id="a7" rel="opener noreferrer" target="_blank">Click me</a>
+ <a href="resources/a.rel-noopener-policy-target.html?a8" id="a8" rel="noopener opener noreferrer" target="_blank">Click me</a>
+ </svg>
<script>
- var anchorElement = document.getElementById('test');
- // Simulate a click event
- var event = new MouseEvent('click', {
- view: window,
- bubbles: true,
- cancelable: true
- });
+ let tests = [
+ { id: "a1", hasOpener: false, name: "SVG Anchor element with target=_blank with rel=noopener" },
+ { id: "a2", hasOpener: true, name: "SVG Anchor element with target=_blank with rel=opener" },
+ { id: "a3", hasOpener: false, name: "SVG Anchor element with target=_blank with implicit rel=noopener" },
+ { id: "a4", hasOpener: false, name: "SVG Anchor element with target=_blank with rel=opener+noopener" },
+ { id: "a5", hasOpener: false, name: "SVG Anchor element with target=_blank with rel=noopener+opener" },
+ { id: "a6", hasOpener: false, name: "SVG Anchor element with target=_blank with rel=noreferrer" },
+ { id: "a7", hasOpener: false, name: "SVG Anchor element with target=_blank with rel=opener+noreferrer" },
+ { id: "a8", hasOpener: false, name: "SVG Anchor element with target=_blank with rel=noopener+opener+noreferrer" },
+ ];
- // Dispatch the event to the anchor element
- anchorElement.dispatchEvent(event);
+ tests.forEach(data => {
+ async_test(
+ test => {
+ let bc = new BroadcastChannel(data.id);
+ bc.addEventListener("message", test.step_func_done(e => {
+ assert_equals(e.data.hasOpener, data.hasOpener);
+ }), {once: true});
+
+ document.getElementById(data.id).dispatchEvent(new MouseEvent('click'));
+ }, data.name);
+ });
</script>
-</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/svg/linking/scripted/rellist-feature-detection.svg b/testing/web-platform/tests/svg/linking/scripted/rellist-feature-detection.svg
@@ -11,7 +11,7 @@
let link_support_table = {};
// https://html.spec.whatwg.org/multipage/links.html#linkTypes
link_support_table['a'] = {
- supported : ['noreferrer', 'noopener'],
+ supported : ['noreferrer', 'noopener', 'opener'],
unsupported : ['author', 'bookmark', 'external', 'help', 'license',
'nofollow', 'pingback', 'prev', 'search', 'tag',
'modulepreload', 'preload', 'preconnect', 'dns-prefetch',
diff --git a/testing/web-platform/tests/svg/linking/scripted/resources/a.rel-noopener-policy-target.html b/testing/web-platform/tests/svg/linking/scripted/resources/a.rel-noopener-policy-target.html
@@ -1,10 +1,6 @@
<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<link rel="author" title="Divyansh Mangal" href="mailto:dmangal@microsoft.com">
-<link rel="help" href="https://svgwg.org/svg2-draft/linking.html#InterfaceSVGAElement">
<script>
- test(function () {
- assert_equals(true,window.opener == null);
- }, "No Opener policy attribute on svg anchor element is applied");
+ let bc = new BroadcastChannel(window.location.search.substring(1));
+ bc.postMessage({ hasOpener: opener !== null });
+ window.close();
</script>