diff options
Diffstat (limited to 'testing/web-platform/tests/selection/crashtests')
3 files changed, 82 insertions, 0 deletions
diff --git a/testing/web-platform/tests/selection/crashtests/selection-modify-around-textarea.html b/testing/web-platform/tests/selection/crashtests/selection-modify-around-textarea.html new file mode 100644 index 0000000000..113dea5ffa --- /dev/null +++ b/testing/web-platform/tests/selection/crashtests/selection-modify-around-textarea.html @@ -0,0 +1,23 @@ +<!doctype html> +<html> +<head> +<meta charset="utf-8"> +<script> +"use strict"; +document.addEventListener("DOMContentLoaded", () => { + const time = document.querySelector("time"); + getSelection().setBaseAndExtent(time, 2, time, 3); + getSelection().modify("move", "left", "line"); + getSelection().collapseToStart(); +}); +</script> +</head> +<body><time style="user-select:none"> +<h5> +<pre contenteditable></pre> +<textarea></textarea> +</h5> +<h6></h6> +<textarea></textarea> +</body> +</html> diff --git a/testing/web-platform/tests/selection/crashtests/selection-modify-line-boundary-around-empty-details.html b/testing/web-platform/tests/selection/crashtests/selection-modify-line-boundary-around-empty-details.html new file mode 100644 index 0000000000..815a819c33 --- /dev/null +++ b/testing/web-platform/tests/selection/crashtests/selection-modify-line-boundary-around-empty-details.html @@ -0,0 +1,29 @@ +<!doctype html> +<html class="test-wait"> +<head> +<meta charset="utf-8"> +<script> +"use strict"; + +addEventListener("load", () => { + let i = 0; + const details = document.querySelector("details"); + const id = setInterval(() => { + getSelection().modify("move", "forward", "lineboundary"); + if (details.isConnected) { + details.outerHTML = undefined; + } + if (++i == 5) { + document.documentElement.removeAttribute("class"); + clearInterval(id); + } + }, 0); + document.execCommand("selectAll"); +}, {once: true}); +</script> +</head> +<body> +<details>a</details> +<span contenteditable></span> +</body> +</html> diff --git a/testing/web-platform/tests/selection/crashtests/selection-modify-line-boundary-around-shadow.html b/testing/web-platform/tests/selection/crashtests/selection-modify-line-boundary-around-shadow.html new file mode 100644 index 0000000000..bfca0402a7 --- /dev/null +++ b/testing/web-platform/tests/selection/crashtests/selection-modify-line-boundary-around-shadow.html @@ -0,0 +1,30 @@ +<!doctype html> +<html class="reftest-wait"> +<head> +<meta charset="utf-8"> +<script> +document.addEventListener("DOMContentLoaded", () => { + const shadowRoot = b.attachShadow({mode: "closed"}); + shadowRoot.textContent = "A"; + getSelection().collapse(shadowRoot.firstChild, 1); + + function moveCaretAndReplaceBodyWithAddress() { + getSelection().modify("move", "forward", "lineboundary"); + document.documentElement.replaceChild(a, document.body); + } + + requestAnimationFrame(() => { + requestAnimationFrame(moveCaretAndReplaceBodyWithAddress); + requestAnimationFrame(moveCaretAndReplaceBodyWithAddress); + requestAnimationFrame( + () => document.documentElement.removeAttribute("class") + ); + }); +}, {once: true}); +</script> +</head> +<body> +<address id="a"></address> +<div id="b"></div> +</body> +</html> |