

I'm currently trialing a switch to Bitwarden from Lastpass and just wanted to chime in and express my appreciation for at least trying to work with the community to find a way to continue supporting Bitwarden in Safari. The implementation with Electron should work similar, although maybe in the end maintaining the extension alongside the other platforms/browsers may be more extensive then this. I imagine for complex use cases though, the time spent re-building global.js to work inside a WKWebview is about the same (or more) than just rewriting it in Objective-C or Swift. The WKWebview loads the old global.html file, and shuttles calls from the injected script to the JS inside itself using evaluateJavascript, and then dispatches the evaluated results back to the content script.įor a trivial example, this approach seems to work - though I have not tested it extensively.

The idea is that we embed a WKWebview instance inside the app extension, and have that WKWebview view act as a bridge between the old global.js and the new content script. Still, how big of a thing is this extension in Electron by now? I just found which I think is the only way:ĭo I really have to port all my global.js / background.js Javascript code to Swift / Objective-C? Yeah, as far as I know Bitwarden just works fine in other browsers on Catalina so may be not worth the work. If someone who is knowledgeable with writing Safari Extension Apps, or even better, making an existing WebExtension somehow work with Apple's new API, wants to provide some consulting on how we can bring Bitwarden back to Safari, please let me know. For someone who is not well versed in the Apple development ecosystem, Apple's documentation and other community resources on writing Safari Extension Apps (the new way) is pretty sparse.Maintaining a completely different browser extension codebase for that many users isn't feasible. Safari currently accounts for Apple's new way requires re-writing the extension interface and backend using native Swift/Objective-C.

All other browsers use a standard way of writing extensions (called WebExtensions) with web technologies like HTML, JavaScript, CSS. As far as I understand, this means that we cannot use our existing browser extension code any longer. Apple has introduced a completely new way of writing extensions for Safari.At this time, I am not sure we will be able to continue supporting Safari in the near future.
