Forum Discussion
How do I disable form autosubmit?
I have done some more digging and believe the issue is that the 1Password desktop app does not attempt to communicate with the Safari extension if the user has pressed Cmd+\.
Using Chrome
When I initiate autofill by clicking on the 1Password icon in the text box, the following is logged:
==> ./BrowserHelper/1Password_rCURRENT.log <==
INFO 2022-05-12T16:51:46.457 ThreadId(55) [swift] XPCServer.swift:256 :: sendToMain(_:reply:) | Sending message to Desktop app
INFO 2022-05-12T16:51:46.458 ThreadId(55) [swift] XPCServer.swift:265 :: broadcastToExtensions(_:) | Sending message to extensions
- The Chrome extension sends a message to the browser helper
- The browser helper relays the message to the desktop app
- The desktop app identifies the login to use, and sends the credentials to the browser helper
- The browser helper relays the message to the Chrome extension
- The Chrome extension fills the login form
When I initiate autofill using Cmd+\, the following is logged:
```
==> ./1Password_rCURRENT.log <==
INFO 2022-05-12T16:53:20.841 tokio-runtime-worker(ThreadId(50)) [swift] Brain.swift:475 :: collectPageDetails(fastCollection:prettyPrint:) | @Autofill: Collecting from pid(39035)
INFO 2022-05-12T16:53:20.894 tokio-runtime-worker(ThreadId(50)) [swift] Brain.swift:369 :: collectTerminalElement(app:) | @Autofill: Active app isn't terminal, can't collect terminal element
INFO 2022-05-12T16:53:20.898 tokio-runtime-worker(ThreadId(50)) [swift] Brain.swift:475 :: collectPageDetails(fastCollection:prettyPrint:) | @Autofill: Collecting from pid(39035)
INFO 2022-05-12T16:53:20.938 tokio-runtime-worker(ThreadId(50)) [swift] Brain.swift:369 :: collectTerminalElement(app:) | @Autofill: Active app isn't terminal, can't collect terminal element
==> ./BrowserHelper/1Password_rCURRENT.log <==
INFO 2022-05-12T16:53:20.940 ThreadId(55) [swift] XPCServer.swift:265 :: broadcastToExtensions(:) | Sending message to extensions
INFO 2022-05-12T16:53:20.955 ThreadId(55) [swift] XPCServer.swift:256 :: sendToMain(:reply:) | Sending message to Desktop app
==> ./1Password_rCURRENT.log <==
INFO 2022-05-12T16:53:20.970 tokio-runtime-worker(ThreadId(12)) [1P:op-app/src/app/backend/autofill.rs:494] Filled via b5x
==> ./BrowserHelper/1Password_rCURRENT.log <==
INFO 2022-05-12T16:53:20.970 ThreadId(55) [swift] XPCServer.swift:265 :: broadcastToExtensions(_:) | Sending message to extensions
```
- The desktop app identifies the active app as a browser
- The desktop app sends a message to the browser helper requesting information on the active page
- The browser helper relays the message to the Chrome extension
- The Chrome extension provides information on the active page to the browser helper
- The browser helper relays the message to the desktop app
- The desktop app identifies the login to use, and sends the credentials to the browser helper
- The browser helper relays the message to the Chrome extension
- The Chrome extension fills the login form
Using Safari
When I initiate autofill by clicking on the 1Password icon in the text box, the following is logged:
==> ./BrowserHelper/1Password_rCURRENT.log <==
INFO 2022-05-12T16:57:32.674 ThreadId(56) [swift] XPCServer.swift:256 :: sendToMain(_:reply:) | Sending message to Desktop app
INFO 2022-05-12T16:57:32.674 ThreadId(56) [swift] XPCServer.swift:265 :: broadcastToExtensions(_:) | Sending message to extensions
- The Safari extension sends a message to the browser helper
- The browser helper relays the message to the desktop app
- The desktop app identifies the login to use, and sends the credentials to the browser helper
- The browser helper relays the message to the Safari extension
- The Safari extension fills the login form
When I initiate autofill using Cmd+\, the following is logged:
=> ./1Password_rCURRENT.log <==
INFO 2022-05-12T16:58:26.653 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:475 :: collectPageDetails(fastCollection:prettyPrint:) | @Autofill: Collecting from pid(92041)
INFO 2022-05-12T16:58:26.689 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:369 :: collectTerminalElement(app:) | @Autofill: Active app isn't terminal, can't collect terminal element
INFO 2022-05-12T16:58:26.692 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:475 :: collectPageDetails(fastCollection:prettyPrint:) | @Autofill: Collecting from pid(92041)
INFO 2022-05-12T16:58:26.701 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:369 :: collectTerminalElement(app:) | @Autofill: Active app isn't terminal, can't collect terminal element
INFO 2022-05-12T16:58:27.006 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:475 :: collectPageDetails(fastCollection:prettyPrint:) | @Autofill: Collecting from pid(92041)
INFO 2022-05-12T16:58:27.019 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:369 :: collectTerminalElement(app:) | @Autofill: Active app isn't terminal, can't collect terminal element
INFO 2022-05-12T16:58:27.020 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:475 :: collectPageDetails(fastCollection:prettyPrint:) | @Autofill: Collecting from pid(92041)
INFO 2022-05-12T16:58:27.039 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:369 :: collectTerminalElement(app:) | @Autofill: Active app isn't terminal, can't collect terminal element
INFO 2022-05-12T16:58:27.043 tokio-runtime-worker(ThreadId(14)) [1P:op-desktop-autofill/src/macos.rs:91] Filling designations: [username, current-password]
INFO 2022-05-12T16:58:27.043 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:566 :: executeFillScript(data:) | @Autofill: Executing fill script
INFO 2022-05-12T16:58:27.044 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:598 :: executeFillScript(data:) | @Autofill: Performing fill operation for frame 1 - OPID: Optional(0)
INFO 2022-05-12T16:58:27.044 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:607 :: executeFillScript(data:) | @Autofill: getting collected element for operation
INFO 2022-05-12T16:58:27.048 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:625 :: executeFillScript(data:) | @Autofill: @Focus – Element successfully focused
INFO 2022-05-12T16:58:27.049 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:739 :: poll(fn:sleepFor:maxAttempts:) | @Autofill: @poll – complete in 1 attempts
INFO 2022-05-12T16:58:27.160 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:697 :: executeFillScript(data:) | @Autofill: @Fill – element successfully filled by smart-type
INFO 2022-05-12T16:58:27.160 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:739 :: poll(fn:sleepFor:maxAttempts:) | @Autofill: @poll – complete in 5 attempts
INFO 2022-05-12T16:58:27.161 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:598 :: executeFillScript(data:) | @Autofill: Performing fill operation for frame 1 - OPID: Optional(1)
INFO 2022-05-12T16:58:27.161 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:607 :: executeFillScript(data:) | @Autofill: getting collected element for operation
INFO 2022-05-12T16:58:27.225 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:625 :: executeFillScript(data:) | @Autofill: @Focus – Element successfully focused
INFO 2022-05-12T16:58:27.225 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:739 :: poll(fn:sleepFor:maxAttempts:) | @Autofill: @poll – complete in 1 attempts
INFO 2022-05-12T16:58:27.453 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:697 :: executeFillScript(data:) | @Autofill: @Fill – element successfully filled by smart-type
INFO 2022-05-12T16:58:27.453 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:739 :: poll(fn:sleepFor:maxAttempts:) | @Autofill: @poll – complete in 21 attempts
INFO 2022-05-12T16:58:27.557 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:724 :: executeFillScript(data:) | @Autofill: typing enter
INFO 2022-05-12T16:58:27.558 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:475 :: collectPageDetails(fastCollection:prettyPrint:) | @Autofill: Collecting from pid(92041)
INFO 2022-05-12T16:58:27.604 tokio-runtime-worker(ThreadId(51)) [swift] Brain.swift:369 :: collectTerminalElement(app:) | @Autofill: Active app isn't terminal, can't collect terminal element
INFO 2022-05-12T16:58:27.607 tokio-runtime-worker(ThreadId(1)) [1P:op-desktop-autofill/src/macos.rs:117] Done filling
- The desktop app does not identify the active app as a browser
- Universal Autofill is invoked
- Using the accessibility API, the desktop app determines the active site
- The desktop app identifies the login to use
- Using the accessibility API, the desktop app injects credentials as keystroke events
Conclusion
1Password 8's detection of the active application does not appears to be correctly identifying that Safari is a browser and, as a result, is not even attempting to communicate with the Safari extension.