* Enable wayland where possible
* Update electron to 34.4.0
* Re-add snap libdbus fix
* Flatpak permissions for wayland
* Bump electron version to 35.5.1
* Switch to x11 socket from x11-fallback
* Fix package.json
* Applies patch to enable the autofill extension
* Fixes the zip command
* Updates the signing identity
* Fixes a typo in a github action
* Moves the security command to a previous action
* Updates workflow to work on the PR branch
* Updates the workflow to build from this branch
* Forces native module build
* Adds profile to extension building
* Enables the autofill production config
* List the profiles
* Copies the autofill provisioning profile to Xcode
* Updates the provisioning profile used for the autofill extension
* Alters how the provisioning profile is provided to xcodebuild
* Adds a mas build with the autofill extension
* Print variables
* Removes spaces from the config file
* Updates all provisioning profile installation steps
* Adds a new provisioning profiles location
* Updates the inherited entitlements
* Passes in identity and provisioning profile in after sign call
* Removes mac dev cert from keychain
* Undoes after sign changes
* Adds resign step to workflow
* Fixes the codesign call
* Adds profile argument to electron builder
* Adds resign step to mas builds
* Removes resign step
* Enable debug messages for electron builder signing
* Copies autofill profile instead of desktop
* Add autofill extension to signIgnore list in electron-builder config
* Comment out if in test flight
* Bump version
* Moves the autofill extension building to after pack
* Update version
* Fixes windows and linux builds
* Forces native build
* Removes installation of unrelated certificates
* Comments out synchronous function call
* Update autofill project configuration
* Adds ls command to debug framework
* Moves the extension build script back
* Updates mac developer id provisioning profile
* Updates build location for autofill extension release versions
* Removes unnecessary extension build call
* Updates the version number
* Debug signing
* Removes team identifier from mac entitlements
* Adds new inherited entitlements for mac
* Updates the version number
* Debug version number
* Removes check for creating fastlane secrets
* Readds check for cache before building
* Reverts workflow changes in build-desktop.yml
* Cleans up after-sign and extension build script
* Removes installation of unnecessary mac signing certs
---------
Co-authored-by: Michal Checinski <mchecinski@bitwarden.com>
* [deps] SM: Update typescript-eslint monorepo to v8
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hinton <hinton@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* feat: scaffold desktop_objc
* feat: rename fido2 to autofill
* feat: scaffold electron autofill
* feat: auto call hello world on init
* feat: scaffold call to basic objc function
* feat: simple log that checks if autofill is enabled
* feat: adding some availability guards
* feat: scaffold services and allow calls from inspector
* feat: create custom type for returning strings across rust/objc boundary
* chore: clean up comments
* feat: enable ARC
* feat: add util function `c_string_to_nsstring`
* chore: refactor and rename to `run_command`
* feat: add try-catch around command execution
* feat: properly implement command calling
Add static typing. Add proper error handling.
* feat: add autoreleasepool to avoid memory leaks
* chore: change objc names to camelCase
* fix: error returning
* feat: extract some helper functions into utils class
* feat: scaffold status command
* feat: implement status command
* feat: implement password credential mapping
* wip: implement sync command
This crashes because we are not properly handling the fact that `saveCredentialIdentities` uses callbacks, resulting in a race condition where we try to access a variable (result) that has already gotten dealloc'd.
* feat: first version of callback
* feat: make run_command async
* feat: functioning callback returns
* chore: refactor to make objc code easier to read and use
* feat: refactor everything to use new callback return method
* feat: re-implement status command with callback
* fix: warning about CommandContext not being FFI-safe
* feat: implement sync command using callbacks
* feat: implement manual password credential sync
* feat: add auto syncing
* docs: add todo
* feat: add support for passkeys
* chore: move desktop autofill service to init service
* feat: auto-add all .m files to builder
* fix: native build on unix and windows
* fix: unused compiler warnings
* fix: napi type exports
* feat: add corresponding dist command
* feat: comment signing profile until we fix signing
* fix: build breaking on non-macOS platforms
* chore: cargo lock update
* chore: revert accidental version change
* feat: put sync behind feature flag
* chore: put files in autofill folder
* fix: obj-c code not recompiling on changes
* feat: add `namespace` to commands
* fix: linting complaining about flag
* feat: add autofill as owner of their objc code
* chore: make autofill owner of run_command in core crate
* fix: re-add napi annotation
* fix: remove dev bypass
* feat: add macos xcode project
* feat: add extension to mas build
* feat: use `after-sign` to avoid issues
Electron builder modifies the .plist in the extension which causes issues with the signing process. Copying and re-signing manually avoids this because it bypasses the electron builder for the extension
* feat: always clean build and add better error handling
* chore: add some logging to after-sign
* feat: automatically cleanup xcode build to avoid duplicate extensions
* docs: add information about managing extensions
* feat: add missing safari extension logging
* lint: allow macos filenames
* chore: add macos to platform ownership
* lint: add some additional allowed files
* feat: don't build autofill extension for MAS
* chore: ignore capital letters linting for all macos files
* chore: replace gulpfile with regular node script
* chore: add lint rules to script
* lint: fix remaining lint issues in script
* chore: tweak lint rule
* feat: remove desktop target
* fix: use new provisioning profile for dev extension
* Update to unblock CI builds
* chore: remove extension from masdev pack
This way we don't include the extension in any build and can avoid the signing issues it brings
* chore: add autofill as codeowner
* chore: remove xcuserdata
* chore: ignore xcuserdata
---------
Co-authored-by: Vince Grassia <593223+vgrassia@users.noreply.github.com>
Co-authored-by: Michał Chęciński <mchecinski@bitwarden.com>
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
* Revert "Remove unnecessary plist keys in desktop_proxy (#10933)"
This reverts commit 4dbb036df1.
* Revert "Fix TestFlight errors caused by desktop_proxy (#10928)"
This reverts commit 40cb4b5353.
* Revert "[PM-5506] Enable electron fuses (#10073)"
This reverts commit 78c5e9c706.
* Revert "[PM-7846] Implement a rust based native messaging proxy and IPC system (#9894)"
This reverts commit 55874b72bf.
* [PM-7846] Implement a rust based native messaging proxy and IPC system
* Only build desktop_proxy
* Bundle the desktop_proxy file
* Make sys deps optional for the proxy
* Restore accidentally deleted after-sign
* Update native cache to contain dist folder
* Add some test logging
* Native module cache seems very aggressive
* Fix invalid directory
* Fix debug print
* Remove cache force
* Remove cache debug code
* Only log to file in debug builds
* Place the binary in the correct place for mac and make sure it's signed
* Fix platform paths
* Test unsigned appx
* Revert "Test unsigned appx"
This reverts commit e47535440a.
* Fix comment
* Remove logs
* Use debug builds in native code, and test private path on MacOS
* Add connected message
* Update IPC API comments
* Update linux to also use XDG_ dir
* Update main.rs comment
* Improve docs and split some tasks spawned into separate functions
* Update send docs and return number of elements sent
* Mark `listen` as async to ensure it runs in a tokio context, handle errors better
* Add log on client channel closed
* Move binary to MacOS folder, and sign it manually so it gets the correct entitlements
* Fix some review comments
* Run prettier
* Added missing zbus_polkit dep
* Extract magic number and increase it to match spec
* Comment fix
* Use Napi object, combine nativeBinding export, always log to file
* Missed one comment
* Remove unnecessary generics
* Correct comment
* Select only codesigning identities
* Filter certificates
* Also add local dev cert
* Remove log
* Fix package ID
* debug_assert won't run the pop() in release mode
* Better error messages
* Fix review comments
* Remove unnecessary comment
* Update napi generated TS file
* Temporary fix for DDG
This PR wires up a polyfill for window.ipc which allows us to progressively migrate the codebase to a format which supports context bridge. This avoids a big bang effort where every non sandboxed call has to be migrated before we can run the code.
Once all calls to node modules are removed from the renderer and only exists in preload.ts. We will turn on context isolation and use the context bridge for communication instead.
* Change altool to notarytool for desktop app notarizing
* Comment for testing
* Add team id
* Try to notarize with old method
* TEst vaslues
* Change after-sign notarization option
* CHange notarization in package
* Fix
* fix
* Maybe fix
* Use altool to upload
* Re enable if after testing