'use strict'; let fakeHidService = undefined; function hid_test(func, name, properties) { promise_test(async (test) => { assert_implements(navigator.hid, 'missing navigator.hid'); if (fakeHidService === undefined) { // Try loading a polyfill for the fake hid service. if (isChromiumBased) { const fakes = await import('/resources/chromium/fake-hid.js'); fakeHidService = fakes.fakeHidService; } } assert_implements( fakeHidService, 'missing fakeHidService after initialization'); fakeHidService.start(); try { await func(test, fakeHidService); } finally { fakeHidService.stop(); fakeHidService.reset(); } }, name, properties); } function trustedClick() { return new Promise(resolve => { let button = document.createElement('button'); button.textContent = 'click to continue test'; button.style.display = 'block'; button.style.fontSize = '20px'; button.style.padding = '10px'; button.onclick = () => { document.body.removeChild(button); resolve(); }; document.body.appendChild(button); test_driver.click(button); }); }