Skip to content

Commit ebcf4f0

Browse files
arichivchromium-wpt-export-bot
authored andcommitted
[SVG] Add navigation wpts
Need to add a srcdoc one too. Bug: 476646486 Change-Id: I07c7aba3f87aa0f3f952491d52256aab118d6312 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7823285 Reviewed-by: Philip Rogers <pdr@chromium.org> Auto-Submit: Ari Chivukula <arichiv@chromium.org> Commit-Queue: Ari Chivukula <arichiv@chromium.org> Cr-Commit-Position: refs/heads/main@{#1628032}
1 parent 1ecc679 commit ebcf4f0

5 files changed

Lines changed: 130 additions & 0 deletions
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
function navigateAndWaitForLoad(iframeElement, newUrl) {
2+
return new Promise((resolve) => {
3+
iframeElement.addEventListener('load', () => resolve(), { once: true });
4+
iframeElement.contentWindow.location.href = newUrl;
5+
});
6+
}
7+
8+
function waitFrame() {
9+
return new Promise((resolve) => {
10+
requestAnimationFrame(resolve)
11+
});
12+
}
13+
14+
async function waitForRender(callback) {
15+
await waitFrame();
16+
await waitFrame();
17+
callback();
18+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!DOCTYPE html>
2+
<html class="reftest-wait">
3+
<head>
4+
<script src="/common/reftest-wait.js"></script>
5+
<script src="/svg/styling/support/svg-filter-render-util.js"></script>
6+
<script>
7+
onload = async () => {
8+
await waitForRender(takeScreenshot);
9+
};
10+
</script>
11+
</head>
12+
<body>
13+
<div>
14+
SVG filter security test: this test passes if there is no filter effect on the cross-origin navigation in the srcdoc frame.
15+
</div>
16+
<br />
17+
<div>
18+
<iframe id="iframe" width="100px" height="100px" frameBorder="0" src="https://{{hosts[alt][]}}:{{ports[https][0]}}/svg/styling/support/svg-filter-render-iframe.html"></iframe>
19+
</div>
20+
</body>
21+
</html>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<!DOCTYPE html>
2+
<html class="reftest-wait">
3+
<head>
4+
<title>SVG Filter: Cross-Origin Navigation in Srcdoc Frame</title>
5+
<link rel="match" href="svg-filter-render-cross-origin-navigation-in-srcdoc-frame-ref.tentative.sub.html">
6+
<svg width="0" height="0" display="none">
7+
<filter id="svg-filter">
8+
<feGaussianBlur in="SourceGraphic" stdDeviation="5" />
9+
</filter>
10+
</svg>
11+
<style type="text/css">
12+
.svg-filter {
13+
filter: url(#svg-filter);
14+
}
15+
</style>
16+
<script src="/common/reftest-wait.js"></script>
17+
<script src="/svg/styling/support/svg-filter-render-util.js"></script>
18+
<script>
19+
onload = async () => {
20+
await navigateAndWaitForLoad(iframe, 'https://{{hosts[alt][]}}:{{ports[https][0]}}/svg/styling/support/svg-filter-render-iframe.html');
21+
takeScreenshot();
22+
};
23+
</script>
24+
</head>
25+
<body>
26+
<div>
27+
SVG filter security test: this test passes if there is no filter effect on the cross-origin navigation in the srcdoc frame.
28+
</div>
29+
<br />
30+
<div>
31+
<iframe id="iframe" width="100px" height="100px" frameBorder="0" class="svg-filter" srcdoc=""></iframe>
32+
</div>
33+
</body>
34+
</html>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!DOCTYPE html>
2+
<html class="reftest-wait">
3+
<head>
4+
<script src="/common/reftest-wait.js"></script>
5+
<script src="/svg/styling/support/svg-filter-render-util.js"></script>
6+
<script>
7+
onload = async () => {
8+
await waitForRender(takeScreenshot);
9+
};
10+
</script>
11+
</head>
12+
<body>
13+
<div>
14+
SVG filter security test: this test passes if there is no filter effect on the same-origin frame marked as sandbox.
15+
</div>
16+
<br />
17+
<div>
18+
<iframe id="iframe" width="100px" height="100px" frameBorder="0" sandbox src="/svg/styling/support/svg-filter-render-iframe.html"></iframe>
19+
</div>
20+
</body>
21+
</html>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<!DOCTYPE html>
2+
<html class="reftest-wait">
3+
<head>
4+
<title>SVG Filter: Same-Origin Frame Reload as Sandbox</title>
5+
<link rel="match" href="svg-filter-render-same-origin-frame-reload-as-sandbox-ref.tentative.html">
6+
<svg width="0" height="0" display="none">
7+
<filter id="svg-filter">
8+
<feGaussianBlur in="SourceGraphic" stdDeviation="5" />
9+
</filter>
10+
</svg>
11+
<style type="text/css">
12+
.svg-filter {
13+
filter: url(#svg-filter);
14+
}
15+
</style>
16+
<script src="/common/reftest-wait.js"></script>
17+
<script src="/svg/styling/support/svg-filter-render-util.js"></script>
18+
<script>
19+
onload = async () => {
20+
const iframe = document.getElementById('iframe');
21+
iframe.setAttribute('sandbox', '');
22+
await navigateAndWaitForLoad(iframe, iframe.src);
23+
takeScreenshot();
24+
};
25+
</script>
26+
</head>
27+
<body>
28+
<div>
29+
SVG filter security test: this test passes if there is no filter effect on the same-origin frame marked as sandbox.
30+
</div>
31+
<br />
32+
<div>
33+
<iframe id="iframe" width="100px" height="100px" frameBorder="0" class="svg-filter" src="/svg/styling/support/svg-filter-render-iframe.html"></iframe>
34+
</div>
35+
</body>
36+
</html>

0 commit comments

Comments
 (0)