summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/selection/crashtests
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/selection/crashtests
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/selection/crashtests')
-rw-r--r--testing/web-platform/tests/selection/crashtests/selectall-and-find-svg-text-on-selectstart.html23
-rw-r--r--testing/web-platform/tests/selection/crashtests/selection-clip-crash.html31
-rw-r--r--testing/web-platform/tests/selection/crashtests/selection-modify-around-input.html24
-rw-r--r--testing/web-platform/tests/selection/crashtests/selection-modify-line-next-to-textarea.html25
-rw-r--r--testing/web-platform/tests/selection/crashtests/selection-modify-per-word-in-table-header-group.html27
-rw-r--r--testing/web-platform/tests/selection/crashtests/table.html14
6 files changed, 144 insertions, 0 deletions
diff --git a/testing/web-platform/tests/selection/crashtests/selectall-and-find-svg-text-on-selectstart.html b/testing/web-platform/tests/selection/crashtests/selectall-and-find-svg-text-on-selectstart.html
new file mode 100644
index 0000000000..9f9dfbc938
--- /dev/null
+++ b/testing/web-platform/tests/selection/crashtests/selectall-and-find-svg-text-on-selectstart.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<html class="reftest-wait">
+<head>
+<meta charset="utf-8">
+<script>
+addEventListener("DOMContentLoaded", () => {
+ let i = 5;
+ document.addEventListener("selectstart", () => {
+ window.find("AAA");
+ document.querySelector("li").before(document.querySelector("text"));
+ if (!(--i)) {
+ document.documentElement.removeAttribute("class");
+ }
+ });
+ document.execCommand("selectAll");
+}, {once: true});
+</script>
+<body>
+<svg>
+<text>AAA</text>
+<li>
+</li></svg></body>
+</html>
diff --git a/testing/web-platform/tests/selection/crashtests/selection-clip-crash.html b/testing/web-platform/tests/selection/crashtests/selection-clip-crash.html
new file mode 100644
index 0000000000..66d10b4742
--- /dev/null
+++ b/testing/web-platform/tests/selection/crashtests/selection-clip-crash.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Philip Rogers" href="mailto:pdr@chromium.org">
+<meta name="assert" content="Moving a selection to a different clipper should not crash">
+<html class=reftest-wait>
+ <script>
+ function test() {
+ document.designMode = "on";
+
+ const a = document.getElementById('a');
+ const range = new Range();
+ range.setStart(a, 1);
+ range.setEnd(a, 1);
+ document.getSelection().addRange(range);
+ requestAnimationFrame(function() {
+ requestAnimationFrame(function() {
+ const b = document.getElementById('b');
+ const updated_range = window.getSelection().getRangeAt(0);
+ updated_range.setStart(b, 1);
+ updated_range.setEnd(b, 1);
+
+ document.documentElement.classList.remove("reftest-wait");
+ });
+ });
+ }
+ </script>
+ <body onload=test()>
+ <div id=a style="width: 100px; height: 100px;"> </div>
+ <div id=b style="width: 100px; height: 100px; overflow: clip; margin-top: -100px;"> </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/selection/crashtests/selection-modify-around-input.html b/testing/web-platform/tests/selection/crashtests/selection-modify-around-input.html
new file mode 100644
index 0000000000..24b9ae7d35
--- /dev/null
+++ b/testing/web-platform/tests/selection/crashtests/selection-modify-around-input.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<html>
+<head>
+<meta charset="utf-8">
+<style>
+div {
+ border: medium solid red;
+ border-width: 32em;
+}
+</style>
+<script>
+document.addEventListener("DOMContentLoaded", () => {
+ document.execCommand("selectAll");
+ getSelection().modify("move", "backward", "character");
+ getSelection().collapseToStart();
+}, {once: true});
+</script>
+</head>
+<body>
+<button contenteditable></button>
+<input value="a">
+<div></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/selection/crashtests/selection-modify-line-next-to-textarea.html b/testing/web-platform/tests/selection/crashtests/selection-modify-line-next-to-textarea.html
new file mode 100644
index 0000000000..b685add01c
--- /dev/null
+++ b/testing/web-platform/tests/selection/crashtests/selection-modify-line-next-to-textarea.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html>
+<head>
+<meta charset="utf-8">
+<script>
+addEventListener("load", () => {
+ getSelection().collapse(document.querySelector("header"), 1);
+ getSelection().modify("move", "backward", "line");
+ const ruby = document.querySelector("ruby");
+ ruby.parentElement.replaceChild(document.createElement("h3"), ruby);
+ getSelection().modify("extend", "backward", "character");
+});
+</script>
+</head>
+<body>
+<textarea>
+</textarea>
+<abbr>
+<header>
+<select autofocus='false'>
+<input/>
+<sup>
+<ruby id='a'>
+</body>
+</html>
diff --git a/testing/web-platform/tests/selection/crashtests/selection-modify-per-word-in-table-header-group.html b/testing/web-platform/tests/selection/crashtests/selection-modify-per-word-in-table-header-group.html
new file mode 100644
index 0000000000..66a57381ed
--- /dev/null
+++ b/testing/web-platform/tests/selection/crashtests/selection-modify-per-word-in-table-header-group.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<html>
+<head>
+<meta charset="utf-8">
+<style>
+dialog {
+ display: table-header-group;
+ translate: -1px 0px 0px;
+ position: sticky;
+}
+</style>
+<script>
+addEventListener("DOMContentLoaded", () => {
+ window.find("1");
+ getSelection().modify("move", "left", "word");
+}, {once: true});
+</script>
+</head>
+<body>
+<dialog>
+<span style="position: fixed">1</span>
+<table dir="rtl"></table>
+<video>
+</video>
+</dialog>
+</body>
+</html>
diff --git a/testing/web-platform/tests/selection/crashtests/table.html b/testing/web-platform/tests/selection/crashtests/table.html
new file mode 100644
index 0000000000..36eb803a5c
--- /dev/null
+++ b/testing/web-platform/tests/selection/crashtests/table.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<script>
+ function go() {
+ let b = window.getSelection();
+ b.setPosition(a.insertRow(0), 0)
+ b.modify("extend", "right", "word")
+ }
+</script>
+
+<body onload=go()>
+ <dd dir="rtl">M!}\\)M6\X</dd>
+ <table id="a">
+ <tr>