/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
async function test_user_input_handling_delay_helper(prefs) {
await SpecialPowers.pushPrefEnv({
set: prefs,
});
let canHandleInput = false;
let mouseDownPromise = BrowserTestUtils.waitForContentEvent(
tab.linkedBrowser, "mousedown"
).then(function () { Assert.ok(
canHandleInput, "This promise should be resolved after the 5 seconds mark has passed"
);
});
for (let i = 0; i < 10; ++i) {
await BrowserTestUtils.synthesizeMouseAtPoint( 10, 10,
{ type: "mousedown" },
tab.linkedBrowser
);
} // Wait for roughly 5 seconds to give chances for the // above mousedown event to be handled.
await SpecialPowers.spawn(tab.linkedBrowser, [], async () => { for (let i = 0; i < 330; ++i) {
await new Promise(r => {
content.requestAnimationFrame(r);
});
}
});
// If any user input events were handled in the above 5 seconds // the mouseDownPromise would be resolved with canHandleInput = false, // so that the test would fail.
canHandleInput = true;
// Ensure the events can be handled eventually
await BrowserTestUtils.synthesizeMouseAtPoint( 10, 10,
{ type: "mousedown" },
tab.linkedBrowser
);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.