]> git.ardis.lu - envpass/commitdiff
Add workaround for 1Password browser extension bug main
authorArdis Lu <ardisglu@gmail.com>
Wed, 30 Sep 2026 06:47:02 +0000 (23:47 -0700)
committerArdis Lu <ardisglu@gmail.com>
Wed, 30 Sep 2026 06:54:19 +0000 (23:54 -0700)
src/getPrf.html
test/getPrf.test.js

index 90db0996f960412c6af82a35a33e1f1b95f79d13..782355e524806fc5bc2f0e48bf5a57d9fa54dafc 100644 (file)
@@ -88,6 +88,9 @@
     }
     async function broadcastPrf(controller) {
       const prf = new Uint8Array(32);
+      // Workaround for 1Password's "Universal sign-in" not working. There is some bug in the 1Password browser extension. Fetching a passkey
+      // too soon will result in the passkey popup never appearing. So, block for 250ms to wait for the extension to "settle down" first.
+      await new Promise(r => setTimeout(r, 250));
       try { prf.set(await getPrf(controller.signal)); }
       catch { prf.set(await createPrf(controller.signal)); }
       const response = await fetch(`http://localhost:${location.port}`, { // Intentionally hardcoding localhost, do not broadcast anywhere else
index 0ae306e449937b640d3cddbcfd119eee15258ab7..0ed9e234c0fd52750127498a292b18b94d9405a5 100644 (file)
@@ -307,6 +307,7 @@ suite('getPrf.html (client)', { concurrency: true }, () => {
     await page.clock.install();
     await page.goto(url);
 
+    await page.clock.runFor(250); // 1Password browser extension workaround
     match(await page.locator('p').textContent() ?? '', /^Successfully sent passkey/);
     await page.clock.runFor(WINDOW_EXPIRATION_DURATION);
     match(await page.locator('p').textContent() ?? '', /^Successfully sent passkey/);
This page took 0.044227 seconds and 4 git commands to generate.