summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/scroll-to-text-fragment/iframe-target.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/scroll-to-text-fragment/iframe-target.html
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/scroll-to-text-fragment/iframe-target.html')
-rw-r--r--testing/web-platform/tests/scroll-to-text-fragment/iframe-target.html49
1 files changed, 49 insertions, 0 deletions
diff --git a/testing/web-platform/tests/scroll-to-text-fragment/iframe-target.html b/testing/web-platform/tests/scroll-to-text-fragment/iframe-target.html
new file mode 100644
index 0000000000..7d57d4920b
--- /dev/null
+++ b/testing/web-platform/tests/scroll-to-text-fragment/iframe-target.html
@@ -0,0 +1,49 @@
+<!doctype html>
+<title>Inner document for use in iframes.sub.html test</title>
+<script>
+ function isInView(element) {
+ let rect = element.getBoundingClientRect();
+ return rect.top >= 0 && rect.top <= window.innerHeight
+ && rect.left >= 0 && rect.left <= window.innerWidth;
+ }
+
+ function postResult() {
+ let position = 'unknown';
+ if (window.scrollY == 0)
+ position = 'top';
+ else if (isInView(document.getElementById('target')))
+ position = 'target';
+ else if (isInView(document.getElementById('elementid')))
+ position = 'elementid';
+
+ let results = {
+ scrollPosition: position,
+ href: window.location.href,
+ };
+
+ window.top.postMessage(results, "*");
+ }
+
+ window.addEventListener('message', (e) => {
+ if (e.data == 'getResult') {
+ // Use a timeout to get results - in the elementId fallback case, the
+ // browser may retry the text fragment search a few times before giving
+ // up and trying the elementid.
+ setTimeout(postResult, 2000);
+ } else if (e.data == 'reset') {
+ window.location.hash = '';
+ window.scrollTo(0, 0);
+ window.top.postMessage('', "*");
+ }
+ });
+</script>
+<style>
+ p {
+ margin-top: 400vh;
+ margin-bottom: 400vh;
+ }
+</style>
+<body>
+ <p id="target">Target Text</p>
+ <div id="elementid">DIV</div>
+</body>