-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Embedding KeePassXC-Browser as Safari Web Extension within KeePassXC on macOS #12002
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Embedding KeePassXC-Browser as Safari Web Extension within KeePassXC on macOS #12002
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 11 out of 23 changed files in this pull request and generated no comments.
Files not reviewed (12)
- .gitmodules: Language not supported
- CMakeLists.txt: Language not supported
- release-tool: Language not supported
- share/macosx/Info.plist.cmake: Language not supported
- share/macosx/keepassxc_entitlements.cmake: Language not supported
- src/CMakeLists.txt: Language not supported
- src/browser/BrowserSharedMac.mm: Language not supported
- src/browser/CMakeLists.txt: Language not supported
- src/proxy/CMakeLists.txt: Language not supported
- src/safariwebextension/CMakeLists.txt: Language not supported
- src/safariwebextension/Info.plist: Language not supported
- src/safariwebextension/SafariWebExtensionCheckbox.mm: Language not supported
|
||
# macOS App Bundle | ||
if(APPLE AND WITH_APP_BUNDLE) | ||
set(APPLE_TEAM_ID "G2S7P7J672" CACHE STRING "Apple Developer Team ID") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to check this ID.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
its came from share/macosx/keepassxc.entitlements
Embedding the extension in the application itself prevents any extension updates. If there's some bug, only a new KeePassXC release will fix it with Safari. |
Any news? |
When can the code be merged and released? What's the current progress? Can it be expedited? This feature is really needed. |
Read my previous comment. Plus I haven't had time to review this properly yet. I would be still in favor of keeping the extension separate, not embedded. |
As a user, I don't care which method is used. What I'm more concerned about is when it can be used and when the passwords saved in KeepassXC can be used in Safari browser. |
As a developer, I do care :) The extension is updated much more frequently than KeePassXC. If the extension is embedded to the main application, extension will not get updates unless a new version of KeePassXC is released. |
I believe the best approach is to embed the browser extension within KeePassXC. I understand the concern about needing to update KeePassXC for macOS whenever a new version of the extension is released. However, the alternative - packaging the extension as a separate app - prevents KeePassXC from being able to send messages directly to the Safari extension. By embedding the extension:
Additionally, this seems to be the approach Apple intends Safari extensions to follow, so aligning with it makes sense. |
d982682
to
5ebcb6f
Compare
8c1e059
to
361cf06
Compare
361cf06
to
56b63a9
Compare
Would it be possible to change |
Any news? |
1 similar comment
Any news? |
Read the previous comments. |
This pull request embeds the KeePassXC-Browser extension within the KeePassXC app on macOS. Safari 18.4 introduced the option to distribute Safari Web Extension outside App Store.
I've added the keepassxc-browser repository as a submodule. Currently this repository is linked to my own fork. I've submitted a pull request with required changes for the keepassxc-browser extension. The submodule must be changed to the original keepassxc-browser repository.
In order to test this, please build it with CMake option
-DWITH_XC_SAFARI_WEB_EXTENSION=ON
. Please make sure to use the release tool for signing the application. After this, the application must be opened once for the web extension to show in Safari or use the checkbox within the Browser Settings tab.Example building command within the build directory:
cmake -DWITH_TESTS=OFF -DWITH_XC_ALL=ON -DCMAKE_BUILD_TYPE=Release -DAPPLE_TEAM_ID="<your team identifier>" -DAPPLE_APP_IDENTIFIER="<your app identifier>" .. && make -j8 package && cd .. && ./release-tool appsign -I "<Your apple developer identitiy>" -f <path to the app> && cd build
Screenshots
An option for enabling the Safari Web Extension is shown in Browser-integration tab in the KeepPassXC app.




When the checkbox is clicked it opens the Safari and shows the an option to enable the extension.
Popup shown in toolbar:
Settings page:
Testing strategy
Type of change