It’s Cybersecurity Awareness Month! Join our interactive training session, or learn about security and AI from 1Password experts.
browser extension
13 TopicsSevere slowdown in Chrome with 1Password extension 8.11.12.27 on pages with many inputs
Since updating to 1Password extension 8.11.12.27 in Chrome, pages with forms containing thousands of inputs freeze on load. The problem also occurs with many hidden inputs, which should not be processed by the extension. We run an application that makes heavy use of hidden inputs. With earlier versions of the extension this was not a problem. Profiling shows high CPU use in openOrClosedShadowRoot(), especially when called on the form element containing many inputs. After load, the function runs instantly, so the slowdown is tied to the extension’s initial DOM scan. Steps to Reproduce: Install 1Password extension v8.11.12.27 in Chrome. Open a form with thousands of inputs, including hidden ones. Example: https://inputs-1password.netlify.app/ On load, clicking buttons or opening the context menu is impossible. Chrome stays frozen until the extension finishes scanning. Expected Result: Pages should load normally, regardless of number or type of inputs. Actual Result: Pages freeze during load due to heavy time spent in openOrClosedShadowRoot(). Impact: Severe slowdown in apps with large forms. Users blocked from working with affected pages. Disabling Autofill options does not help. Using "Hide on this page" does not help. Adding data-1p-ignore to every input is not feasible for us. Rolling back the extension is not practical. Workarounds: None viable for production. Proposed fixes: Optimize DOM traversal or revert to the previous methods. Support a parent-level attribute to exclude all children from scanning. Ensure that when the extension is disabled for a page, it truly does not inject or process elements on that page.202Views2likes4CommentsChrome extension broken in dark mode when using oklch
This took me a bit to debug, and unfortunately I don't have a minimal reproduction available, but here's the issue, on a website I'm working on we use shadcn, which in turns uses OKLCH to define colors, which is not supported by the chrome extension at the moment. I found the code in the extension for this, and it expecting a RGB color: Would it be possible to update the extension to support OKLCH as well? For example this is the style I'm using36Views0likes3Commentsconsole logs: unable to filter out 1password logs in local development
As a front end developer, I have a feature request: the ability to turn off logs from the 1password extension. This could be just a checkbox to enable/disable logs, maybe a developer mode for debugging implementation which enables logs, anything! Maybe logging them as `console.debug` instead of `console.log`? A checkbox for disabling logs on `localhost` only? I love 1password, don't get me wrong. But the logs have been the bane of my existence when working on any web app involving authentication, because there's no way to filter out the logs. Example output: background.js:80 📤 Sending <NmLockState> message to native core <2920926948> 11:00:39.169 background.js:80 📥 Received message <NmLockState> from native core <2920926948>. Duration: 4.3ms 11:00:54.167 background.js:80 📤 Sending <NmLockState> message to native core <1746240738> 11:00:54.171 background.js:80 📥 Received message <NmLockState> from native core <1746240738>. Duration: 4.6ms 11:01:09.172 background.js:80 📤 Sending <NmLockState> message to native core <4161527562> 11:01:09.183 background.js:80 📥 Received message <NmLockState> from native core <4161527562>. Duration: 11ms 11:01:21.119 background.js:80 📤 Sending <NmLockState> message to native core <951950119> 11:01:21.151 background.js:80 📥 Received message <NmLockState> from native core <951950119>. Duration: 31.7ms 11:01:24.171 background.js:80 📤 Sending <NmLockState> message to native core <2174341925> 11:01:24.176 background.js:80 📥 Received message <NmLockState> from native core <2174341925>. Duration: 5.8ms 11:01:39.173 background.js:80 📤 Sending <NmLockState> message to native core <1407972505> 11:01:39.186 background.js:80 📥 Received message <NmLockState> from native core <1407972505>. Duration: 12.6ms 11:01:54.171 background.js:80 Sending <NmLockState> message to native core <2421987558> 11:01:54.184 background.js:80 📥 Received message <NmLockState> from native core <2421987558>. Duration: 13.1ms 11:02:09.172 background.js:80 📤 Sending <NmLockState> message to native core <630129950> 11:02:09.188 background.js:80 📥 Received message <NmLockState> from native core <630129950>. Duration: 15.8ms 11:02:21.119 background.js:80 📤 Sending <NmLockState> message to native core <964956985> 11:02:21.123 background.js:80 📥 Received message <NmLockState> from native core <964956985>. Duration: 4.5ms 11:02:24.171 background.js:80 📤 Sending <NmLockState> message to native core <3234675529> 11:02:24.177 background.js:80 📥 Received message <NmLockState> from native core <3234675529>. Duration: 5.8ms 11:02:39.170 background.js:80 📤 Sending <NmLockState> message to native core <714895378> 11:02:39.176 background.js:80 📥 Received message <NmLockState> from native core <714895378>. Duration: 5.5ms 11:02:54.171 background.js:80 📤 Sending <NmLockState> message to native core <1997105720> 11:02:54.178 background.js:80 📥 Received message <NmLockState> from native core <1997105720>. Duration: 7.5ms 11:03:09.173 background.js:80 📤 Sending <NmLockState> message to native core <1243253266> 11:03:09.199 background.js:80 📥 Received message <NmLockState> from native core <1243253266>. Duration: 26.2ms 11:03:21.175 background.js:80 📤 Sending <NmLockState> message to native core <3734071001> 11:03:21.181 background.js:80 📥 Received message <NmLockState> from native core <3734071001>. Duration: 6.5ms 11:03:24.171 background.js:80 📤 Sending <NmLockState> message to native core <1854610928> 11:03:24.173 background.js:80 📥 Received message <NmLockState> from native core <1854610928>. Duration: 2.6ms 11:03:39.171 background.js:80 📤 Sending <NmLockState> message to native core <3181823558> 11:03:39.176 background.js:80 📥 Received message <NmLockState> from native core <3181823558>. Duration: 4.7ms 11:03:54.171 background.js:80 📤 Sending <NmLockState> message to native core <3797715197> 11:03:54.180 background.js:80 📥 Received message <NmLockState> from native core <3797715197>. Duration: 8.8ms 11:04:09.171 background.js:80 📤 Sending <NmLockState> message to native core <2885493011> 11:04:09.177 background.js:80 📥 Received message <NmLockState> from native core <2885493011>. Duration: 5.5ms 11:04:18.049 background.js:80 📤 Sending <NmLockState> message to native core <386599336> 11:04:18.052 background.js:80 📥 Received message <NmLockState> from native core <386599336>. Duration: 3.2ms 11:04:24.171 background.js:80 📤 Sending <NmLockState> message to native core <3057763534> 11:04:24.177 background.js:80 📥 Received message <NmLockState> from native core <3057763534>. Duration: 6.6ms 11:04:39.171 background.js:80 📤 Sending <NmLockState> message to native core <3449831082> 11:04:39.174 background.js:80 📥 Received message <NmLockState> from native core <3449831082>. Duration: 3.1ms I've also found these other relevant posts on the same issue with no solution: How to silence 1Password noise in the browser console | 1Password Community Chrome extension background.js logs and/or errors in console | 1Password Community Sending <NumLockState> messages | 1Password Community18Views0likes1Comment1PW extension bug: autofill theme detection fails when using oklch color scheme
Hey, I am trying to fix the autofill background on a web app that has dark mode. Right now the 1Password extension applies light autofill background which creates unreadable contrast (1st screenshot). It's because input gets `data-com-onepassword-filled="light"` attribute with light variant. Is it possible to tell the 1PW that the page is using dark mode or what's the solution to let the 1PW set `data-com-onepassword-filled` to `'dark'`? I have set the color-scheme CSS property to `dark`. Edit: I managed to debug this issue and found out there's a bug in the theme detection by 1PW extension itself that's done via `data-com-onepassword-filled="light|dark"`. The reproduction is simple: When using `oklch` color on input text, the autofill detection breaks and resolves the theme always as light. <!DOCTYPE html> <html lang="en" style="color-scheme: dark"> <body> <h1>Working - uses hex</h1> <div style="color: #edeef0"> <input type="email" autocomplete="email" /> </div> <h1>Not working - uses oklch</h1> <div style="color: oklch(94.9% 0.003 264.5)"> <input type="email" autocomplete="email" /> </div> </body> </html> Which will result in118Views1like5CommentsConsole flooded with errors when clicking links during 1Password passkey selection dialog
Hi, I’m experiencing an issue with the 1Password browser extension when testing WebAuthn API integration on my own website. Environment macOS Chrome (latest version) 1Password browser extension Issue I’ve successfully implemented WebAuthn API functionality for login on my website. However, the 1Password extension behaves unexpectedly: When the 1Password passkey selection dialog is open, if I click a link on the page, the page transition happens, but the Chrome DevTools console gets flooded with a large number of log, warn, and error messages. This feels like a bug. Steps to Reproduce Register a passkey in 1Password for the test site. Open the login page, which triggers the 1Password passkey selection dialog. While the dialog is open, click any link on the page. The navigation works, but the console outputs a large number of log, warn, and error messages. Expected Behavior Page navigation should happen without producing unnecessary console output. Actual Behavior Console is flooded with log, warn, and error messages. Additional Information I will attach/paste the console output below for reference. background.js:80 📤 Sending <NmLockState> message to native core <740716061> background.js:80 📥 Received message <NmLockState> from native core <740716061>. Duration: 4.8ms background.js:80 DeviceTrust: access denied: [ missing backoffice permission, missing admin permission ] - aborting (anonymous) @ background.js:80 background.js:80 📤 Sending <NmOfflineStatus> message to native core <3907478951> background.js:80 📥 Received message <NmOfflineStatus> from native core <3907478951>. Duration: 1.7ms background.js:80 Could not complete _handleGetCredential: disconnected (anonymous) @ background.js:80 background.js:80 📤 Sending <NmLockState> message to native core <3923595490> background.js:80 📥 Received message <NmLockState> from native core <3923595490>. Duration: 4.1ms background.js:80 📤 Sending <NmLockState> message to native core <2088568031> background.js:80 📥 Received message <NmLockState> from native core <2088568031>. Duration: 4.3ms background.js:80 📤 Sending <NmLockState> message to native core <780253718> background.js:80 📥 Received message <NmLockState> from native core <780253718>. Duration: 4ms background.js:80 📤 Sending <NmLockState> message to native core <3199044829> background.js:80 📥 Received message <NmLockState> from native core <3199044829>. Duration: 3.8ms background.js:80 📤 Sending <NmOfflineStatus> message to native core <469136938> background.js:80 📥 Received message <NmOfflineStatus> from native core <469136938>. Duration: 6ms background.js:80 Loaded page details in 2 ms. background.js:80 Analyzed the page in 0.4000000059604645 ms. background.js:80 📤 Sending <NmOfflineStatus> message to native core <2269321457> background.js:80 📥 Received message <NmOfflineStatus> from native core <2269321457>. Duration: 3.3ms background.js:80 [popup] Not attempting to connect to desktop app: already connected or connecting to desktop app background.js:80 Decided not to attempt reconnection to the desktop app. background.js:80 📤 Sending <NmLockState> message to native core <2789903974> background.js:80 📥 Received message <NmLockState> from native core <2789903974>. Duration: 2.7ms background.js:80 DeviceTrust: access denied: [ missing backoffice permission, missing admin permission ] - aborting (anonymous) @ background.js:80 background.js:80 📤 Sending <NmOfflineStatus> message to native core <3819754395> background.js:80 📥 Received message <NmOfflineStatus> from native core <3819754395>. Duration: 3.6ms background.js:80 📤 Sending <NmLockState> message to native core <1861163921> background.js:80 📥 Received message <NmLockState> from native core <1861163921>. Duration: 3.1ms background.js:80 📤 Sending <NmLockState> message to native core <2199877840> background.js:80 📥 Received message <NmLockState> from native core <2199877840>. Duration: 4ms background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 background.js:80 📥 Sync started for account xxxxxxxx - syncing all background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 background.js:80 Managed Apps - Feature flag is NOT enabled background.js:80 ✅ Sync completed for account xxxxxxxx - took 969ms background.js:80 📤 Sending <NmOfflineStatus> message to native core <335039426> background.js:80 📥 Received message <NmOfflineStatus> from native core <335039426>. Duration: 8.1ms background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 background.js:80 📥 Sync started for account xxxxxxxx - syncing all background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 background.js:80 Managed Apps - Feature flag is NOT enabled ✅ Sync completed for account xxxxxxxx - took 935ms 📤 Sending <NmOfflineStatus> message to native core <228318852> 📥 Received message <NmOfflineStatus> from native core <228318852>. Duration: 1.9ms Failed to refresh keysets <redacted> (anonymous) @ background.js:80 📥 Sync started for account xxxxxxxx - syncing all Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 📤 Sending <NmLockState> message to native core <3763395867> 📥 Received message <NmLockState> from native core <3763395867>. Duration: 3.1ms Managed Apps - Feature flag is NOT enabled ✅ Sync completed for account xxxxxxxx - took 900ms 📤 Sending <NmOfflineStatus> message to native core <527828929> 📥 Received message <NmOfflineStatus> from native core <527828929>. Duration: 3.3ms Could not complete _handleGetCredential: disconnected (anonymous) @ background.js:80 DeviceTrust: access denied: [ missing backoffice permission, missing admin permission ] - aborting (anonymous) @ background.js:80 📤 Sending <NmOfflineStatus> message to native core <3893879316> 📥 Received message <NmOfflineStatus> from native core <3893879316>. Duration: 1.7ms 📤 Sending <NmLockState> message to native core <2484059834> 📥 Received message <NmLockState> from native core <2484059834>. Duration: 4.3ms 📤 Sending <NmLockState> message to native core <567699292> 📥 Received message <NmLockState> from native core <567699292>. Duration: 3.8ms 📤 Sending <NmLockState> message to native core <2496790293> 📥 Received message <NmLockState> from native core <2496790293>. Duration: 3.6ms Failed to refresh keysets <redacted> (anonymous) @ background.js:80 📥 Sync started for account xxxxxxxx - syncing all Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Managed Apps - Feature flag is NOT enabled ✅ Sync completed for account xxxxxxxx - took 1264ms 📤 Sending <NmOfflineStatus> message to native core <2459928279> 📥 Received message <NmOfflineStatus> from native core <2459928279>. Duration: 3.1ms Failed to refresh keysets <redacted> (anonymous) @ background.js:80 📥 Sync started for account xxxxxxxx - syncing all Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Managed Apps - Feature flag is NOT enabled ✅ Sync completed for account xxxxxxxx - took 891ms 📤 Sending <NmOfflineStatus> message to native core <346739443> 📥 Received message <NmOfflineStatus> from native core <346739443>. Duration: 4.3ms 📤 Sending <NmLockState> message to native core <1926301438> 📥 Received message <NmLockState> from native core <1926301438>. Duration: 3.9ms Failed to refresh keysets <redacted> (anonymous) @ background.js:80 📥 Sync started for account xxxxxxxx - syncing all Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Managed Apps - Feature flag is NOT enabled ✅ Sync completed for account xxxxxxxx - took 974ms 📤 Sending <NmOfflineStatus> message to native core <4246935782> 📥 Received message <NmOfflineStatus> from native core <4246935782>. Duration: 3.7ms Failed to refresh keysets <redacted> (anonymous) @ background.js:80 📥 Sync started for account xxxxxxxx - syncing all Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Managed Apps - Feature flag is NOT enabled ✅ Sync completed for account xxxxxxxx - took 871ms 📤 Sending <NmOfflineStatus> message to native core <969923831> 📥 Received message <NmOfflineStatus> from native core <969923831>. Duration: 3.2ms 📤 Sending <NmLockState> message to native core <2384356258> 📥 Received message <NmLockState> from native core <2384356258>. Duration: 4.1ms Failed to refresh keysets <redacted> (anonymous) @ background.js:80 📥 Sync started for account xxxxxxxx - syncing all Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Failed to refresh keysets <redacted> (anonymous) @ background.js:80 Managed Apps - Feature flag is NOT enabled ✅ Sync completed for account xxxxxxxx - took 865ms 📤 Sending <NmOfflineStatus> message to native core <1380548022> 📥 Received message <NmOfflineStatus> from native core <1380548022>. Duration: 1.7ms 📤 Sending <NmLockState> message to native core <2946571035> 📥 Received message <NmLockState> from native core <2946571035>. Duration: 3.1ms 📤 Sending <NmLockState> message to native core <2259480419> 📥 Received message <NmLockState> from native core <2259480419>. Duration: 2.4ms 📤 Sending <NmLockState> message to native core <2244117207> 📥 Received message <NmLockState> from native core <2244117207>. Duration: 4ms Could not complete _handleGetCredential: disconnected103Views0likes3Commentsarm64 1password Desktop/Browser synchronization is not working
Orange Pi 5 (RK3588) owner here running full-time desktop experience with Armbian (debian core) I believe the arm64 desktop app is misconfigured for this architecture, possibly wrong socket paths or something to do with looking in the wrong place "Grok" seemed to tell me, but I think this may be an issue for developers to fix. This has also been posted to Armbian forums and the armbianmonitor diagnostic report is there too if interested: https://forum.armbian.com/topic/54078-1password-browserdesktop-synchronization-wont-work-on-armbian/ And all of the screenshots, explainations, and photos are inline attached for easy viewing In a nutshell - no combination of things I've tried so far has been able to get the Desktop & Browser synchronization to work. Both of these components are working great, on their own, but I have done this hundreds of times across other devices and there should not be double authentication necessary when things are working right, and the integration light keeps showing yellow I have nothing sandboxed, Armbian employs no sandboxing by default, and I have avoided everything Flatpak related And this fails across multiple browsers.. Firefox, Chromium etc I'm just a novice so very likely am doing something wrong, but it's a big problem I need fixed! Thank you!Solved45Views0likes2CommentsConfirm Password Forms
We have a "sudo mode" form similar to GitHub which requires confirming your password for sensitive actions: I have several accounts. I'm trying to tell 1Password which password to use. I have followed the instructions here: https://developer.1password.com/docs/web/compatible-website-design#password-change-and-reset-forms And added a hidden username field: But this doesn't seem to help. If I un-hide the username then if I select the username field it offers to fill the right account. But if I select the password field it just displays all accounts again. How can I tell 1Password which account to use in this form? Apologies if this has already been asked and answered. I have done my best to search and came up empty.Solved71Views0likes4CommentsAdding data-1p-ignore dynamically isn't respected
Struggling with an issue in which I want to disable 1Password dynamically (after the string in the input is 3 letters or more). This seems to work with a hack (remove the item and then add it again) but stops working after. The following codepen is an example: https://codepen.io/senadir/pen/GgJBrBZ The usecase is that I want to prioritize 1Password and system autofill but after 3 letters if nothing was matched for a customer I want to go ahead and search for the field. This works the first time but once you blur and focus the field again it stops working and it stops being respected.Solved168Views0likes3Comments