<!doctype html>
<meta charset="utf-8">
<title>Drag select triggers the right event, and doesn't crash if it removes the target while at it</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1386418">
<style>
input {
border: 0;
padding: 0;
font: 16px/1 monospace;
}
</style>
<input type="text" value="Drag select to crash">
<script>
async_test(t => {
let input = document.querySelector("input");
input.addEventListener("select", t.step_func(function() {
input.remove();
requestAnimationFrame(() => requestAnimationFrame(() => t.done()));
}));
new test_driver.Actions()
.pointerMove(0, 0, { origin: input })
.pointerDown()
.pointerMove(40, 0, { origin: input })
.pointerUp()
.send();
}, "Drag and remove from the select event doesn't crash");
</script>