95

Of course.
This is definitely something very interesting that @Vlad would love to hear about.

Also, a few questions:

  • Do the safari versions seem to work better than the chrome/firefox versions?
  • Can you install certain safari-only extensions with no chrome/ff counterparts? My understanding was that they could be implemented in swift, which isn't compatible with the js-based extension api.
  • What about the extensions require money upfront/have a subscription?

    eirk @Vlad

    To share the questions already asked in the Discord:

    • What are Safari web extensions? From Apple: "A Safari web extension adds custom functionality to Safari using JavaScript APIs and common file formats from extensions for Google Chrome, Mozilla Firefox, and Microsoft Edge browsers. While Safari app extensions are useful for sharing code between your native macOS app and Safari, you build Safari web extensions primarily on JavaScript, HTML, and CSS, and can repackage them to work in other browsers."
    • Does this mean all Safari extensions work? No. Safari app extensions are still proprietary and under lock and key - but funny enough, legacy Safari extensions work the same way as these web extensions do. You can extract the .safariextz file with something like Keka, and then load that folder into Orion.
    • Doesn't Safari has a severe lack of web extension APIs? Yes. Yes. This does not change that.

    To answer the questions asked here:

    • Do the Safari versions seem to work better than the Chrome/Firefox versions? As they're web extensions, they're being interpreted in the same way that a Chrome or Firefox extension would be interpreted by Orion. No difference under the hood. It's up to you and per extension to see whether or not it would work better. (I hear Dark Reader works best in Safari!)
    • What about the extensions that require money upfront / have a subscription? Not sure what this means. Regardless of if you mean a purchase in the Mac App Store before the app is downloaded, or if you mean a purchase made in the browser after the fact, I don't see why that wouldn't work. If you mean a purchase made in the Mac App Store after the app is downloaded, that's likely dependent on the extension.
    Merged 2 posts from Safari web extensions are falsely labeled as being from other browsers.

      Ok so it loks like we can make this work somehow. How would the UX for this look like? Does this connect to "Install from Disk..." option?

      How would users know that they can point out to a safari extension app?

        Merged 9 posts from Making it easier to add Safari web extensions to Orion.
          5 days later

          I think we can just have it be like "Install Safari extension...", which defaults to ~/Applications, and then it would have some extra logic to attempt to extract the normal js extension from it, basically what the Install from Disk... does

            I'm curious how many Safari web extensions work out of the box. The big concern is the native app communication, since that happens over a privileged connection only Safari can provide. My guess is that many multi-browser extensions will be somewhat compatible. But the moment a Safari extension expects an open comms port to its native container app, πŸ€·β€β™‚οΈ . My first test so far (1password) didn't work. The extension installs and loads fine (Orion treats it like a Chrome extension as noted above), but then it can't connect to the desktop 1password app.

            3 months later
            3 months later

            JBMagination This is excellent. Thank you.

            Your process allows the often-asked-about Vinegar extension for Safari to be loaded into Orion with a small caveat: only the 'Vinegar Extract' variant works (as only it has a manifest.json), and subtitles/captions are not functional at all seemingly due to a Javascript error being thrown in the console.
            That is indeed a seperate issue, but perhaps this info will be useful for anyone searching for a way to use Vinegar in Orion as I had been, until Orion implements that feature natively (hopefully soon πŸ™‚).

              Note that for some extensions - e.g. 1password the Safari Extension does not work well on macOS - it can't deal with Safari profiles.

              This is the main reason I am using Orion so that I don't have to use Safari extensions.

                5 months later

                Well what do you know - never say never. @dino figured out a way to natively load Safari extensions and it works! Coming to OrionRC soon first.

                Orion will be the only browser in the world to support extensions from all three major browsers - Chrome, Firefox and Safari.

                6 days later
                • Edited
                • Best Answerset by Vlad

                For people trying to figure out how to add Safari extensions:

                Extensions > Add Extensions > Install From Disk > [browse to /Applications] .... and select your Safari extension.

                There’s multiple types of Safari extensions:

                • web-extensions: Made using JS, works almost identically to chrome/ff extensions
                • native code extensions: Made using Swift (or another language linked via swift), uses a custom secure connection to Safari and therefore cannot be used by Orion
                • content blocking extensions:

                "only Safari Web Extensions are currently supported."

                source

                Anybody have any luck with Stop the Madness Pro? I've tried both the Chrome and Firefox versions. It doesn't load settings, apparently due to a native messaging failure.

                • Vlad replied to this.

                  Vlad Didn't see a manifest.json file for the Safari extension in the app bundle, so I don't think it's a web extension. Is native messaging supposed to be working?

                    No one is typing