Bug 1689317 - Clipboard events should be composed. r=smaug

Automate some of the copy event tests which tested for this, since there
seems we/WPT don't have a lot of coverage for them.

Differential Revision: https://phabricator.services.mozilla.com/D103428
This commit is contained in:
Emilio Cobos Álvarez 2021-01-29 13:30:40 +00:00
parent c61e417a18
commit f467ea41bc
2 changed files with 19 additions and 2 deletions

View File

@ -3,11 +3,23 @@
<link rel="help" href="https://w3c.github.io/clipboard-apis/#clipboard-event-copy">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<div id=log></div>
<p>Select and copy any part of this text to continue.
<button id="copy">Trigger copy</button>
<input id="copyTarget" value="this text should be copied">
<script>
setup({explicit_timeout: true});
async_test(t => {
let button = document.getElementById("copy");
button.addEventListener("click", function(e) {
let input = document.getElementById("copyTarget");
input.focus();
input.select();
document.execCommand("copy");
});
document.oncopy = t.step_func_done(event => {
// Nothing can be asserted about the event target until
// https://github.com/w3c/clipboard-apis/issues/70 is resolved.
@ -15,5 +27,7 @@ async_test(t => {
assert_true(event.isTrusted, 'event.isTrusted');
assert_true(event.composed, 'event.composed');
});
test_driver.click(button);
});
</script>

View File

@ -859,6 +859,9 @@ class WidgetEvent : public WidgetEventTime {
*/
void SetDefaultComposed() {
switch (mClass) {
case eClipboardEventClass:
mFlags.mComposed = true;
break;
case eCompositionEventClass:
mFlags.mComposed =
mMessage == eCompositionStart || mMessage == eCompositionUpdate ||