Hacker News new | past | comments | ask | show | jobs | submit login
Safari adopts the Chrome/Firefox extension model (developer.apple.com)
443 points by soheilpro 59 days ago | hide | past | favorite | 160 comments

I think this was only a matter of time. The Chrome extension model has become the de facto standard, has a large existing extension ecosystem and huge user base, and other browsers have adopted this model. While sticking to their own extension model would ensure that they remained in control, this is the right thing for users, both current and possible switchers. Here’s why:

- Current Safari users can get the goodness of Chrome extensions, specifically the ones focused on privacy such as NoScript and uBlock.

- Switchers from Chrome can feel familiar with Safari if their Chrome extensions are available to them in the new browser.

- New macOS users don’t need to select a browser based on whether extensions are available for it or not.

With extension availability out of the way, the discussion on macOS browsers is going to come back to UX, speed, and battery usage. UX is a personal choice. Based on my experience, Safari is the fastest and least battery hungry browser on macOS. Syncing using iCloud Just Works (TM) for my devices and account. YMMV.

Net-net, kudos to the team for getting past their “Not Invented Here” instincts and going with the market flow.

Adopting the extension model doesn't mean that the capabilities available to extension developers are the same.

You can take a look at Firefox, which has extensions that in Chrome are not currently possible. Or extension features that aren't possible, like the ability to block first-party analytics in uBlock Origin, as a small example.

I am, however, glad that all of them are adopting more or less the same APIs, because extension developers can now target all 3 major browsers with ease.

> the discussion on macOS browsers is going to come back to UX, speed, and battery usage

The biggest, most relevant component of a browser has always been the browser engine, because it dictates available features, and yes, speed and battery usage.

People keep talking about the UI as being an important differentiator. But I don't believe that's true, because the UI of all major browsers is decent. Of course, power users can cling on to features, like the Tree Style Tabs in Firefox, but for the most part, I don't think it's the UI that makes most people switch browsers.

> People keep talking about the UI as being an important differentiator. But I don't believe that's true, because the UI of all major browsers is decent.

UI is the differentiator of the Mac itself. Otherwise, why not just use Windows, which is "decent".

TBH, I don't know why other people use Macs, but speaking in my own name, no, I'm not using it for its UI.

I use macOS because things usually just work, because it's a Unix, and because the available apps are good. I don't have a problem with the Windows 10 UI, I have a problem with everything else.

In fairness, switching from Linux to macOS because of the UI is an acceptable viewpoint.

It depends on people to people, for instance I use Mac because it has a Unix terminal with great commercial software support and decent GPU drivers something that is missing on Linux. UI is the last thing, in fact I would say the choice of UI on linux is far and beyond any other OS can even dream to offer.

Maybe it's just familiarity, but I strongly prefer Windows over MacOS. And I don't even like Windows.

The UI is probably what got people to switch from IE to Firefox.

Because Firefox had tabs!

But I agree, browser UI is irrelevant in 2020.

Safari doesn’t have profiles yet, does it? That’s a pretty big deal for my workflow. Though I could get by with Safari’s Beta and Safari. Two sets of profiles is the bare minimum I like.


For extensions, wont it be a while before enough preferred extensions move over to Safari? A solid amount might never? Unless there’s some initiative where some consortiums publish extensions on behalf of open source extension developers. Otherwise many made with no money in mind don’t have a good reason to pay $100/year.

Now for my bit of day dreaming and fantasizing:

(1) If this began a trend to begin charging for good extensions, I wouldn’t mind that. We pay for so much stuff, but extensions are assumed to be free. There’s less oversight on the data mining they do than almost any other niche. Then unfortunate part is how much of the revenue would be eaten by Apple’s 30% cut and $99/year. Since the developer fee is yearly, if this can also lead to yearly charges for extensions, but at very low rates, that would be awesome too.

(2) if some extensions are subscriptions at $1-5 a year or $1 for 2-3 years as the main price points for good extensions. It doesn’t come close to subscription saturation issues. At those low numbers, it would take a whole ton of extensions to get to $60/year. Which is a completely average price charged for apps these days that used to cost a fraction for one time payment.

Note that Safari Technology Preview and Safari share iCloud Keychain and occasionally share history as well.

Ah. Okay Keychain isn’t so bad. I use 1Password more than keychain. Sharing history occasionally is annoying, but if just occasionally, not so bad. Thanks for the heads up and info.

I agree that's a big deal, but there are many good things in safari like it is very efficient, even with many tabs Safari ends up consuming very low processing power and thus longer battery life, chrome on the other hand is just a memory hog constantly recording every move and sending it to Google, it really feels like a spyware. Which is why I use Safari 99% of the time except when it is not supported or I need a special extension for which I use Firefox.

Yeah. Really happy I can stay on macOS 10 for at least two years with Safari 14 if macOS 11 continues the trend of new mac OSes slowing MacBooks down.

NoScript and uBlock Origin will not be happening for Safari. The API is missing and won't be implemented. Safari does not have the same full API as Chrome or Firefox. Instead, Safari relies on a more limited, Apple-specific content blocking API.

Isn't it along the lines of what Chrome's been talking about moving to, where you basically get to tell the browser what to block but not get at the requests in the way you can now?

Pretty much.

It is still open for discussion within Chromium, and unlike Safari Chromium is open source so it can be forked to implement whatever features you want.

Which incidentally sucks terribly. Ad blocking on iOS and macOS is a complete turd.

It's actually pretty good and gets you 95% of the way there with a static blocker API that doesn't give any privileges to the ad-blocker, and that's a big deal.

If you really think something like https://1blocker.com/ is a "turd", then you must be hung up on something rather inconsequential to most people.

95% probably isn’t good enough.

1blocker is fairly awful I find and rather expensive because you’re a captive audience that doesn’t have access to working uBlock.

This situation is one of several reasons I recently dumped macOS and went back to windows and am using edge and doing all my unixy stuff in VMs.

95% is good enough to the vast majority of people.

To get 100%, you use NoScript or turn Javascript off. Not many HNers even go that far.

You don't have to use 1blocker, it's just an example of a well-crafted solution that has made it so I haven't seen an ad since I started using it. There are free solutions.

The point is that you need to temper "ugh $thing is a turd!" when you're talking about fringe expectations, else you're completely disconnected from the conversation everyone else is having.

You could call uBlock Origin a "turd" for its privacy violation of having access to every website you visit and request you make, but that's not a good way to have that conversation, either.

Sounds like there was more to your decision than this situation though. Chrome + uBlock work fine on macOS.

> The point is that you need to temper "ugh $thing is a turd!" when you're talking about fringe expectations

I wouldn't call it a fringe expectation. uBlock Origin in safariextz format was quite popular for Safari, until Safari 13 removed all support for it.

As a result, many users were forced to move from something that worked very well for them to something that didn't work as well. Nobody likes to be forced to adopt something worse. Imposing the "power user" vs. "normal user" dichotomy here is not an accurate story of the history of Safari extensions.

I run Brave on Android with scripts blocked. It's such a joy. It blocks most ads and even allows allows you to read articles that otherwise would require payment. I'm not exactly saying it bypasses paywalls, though.

If I browse the same sites on Chrome for Windows my CPU goes to 100%. It's awful.

I don't understand why you'd dump an OS over limitations of its default browser. Edge even has a MacOS version if that's your browser of choice.

More than that. General direction was negative. They’re removing kernel extensions (bye bye corp vpn), terrible historical direction on browser extensions, bugs galore, crazy expensive hardware. I’m done.

If it's the same API as iOS' NetworlExtension, then I don't see why uBlock couldn't happen. uBlock doesn't "phone home" for each request/site, does it?

It doesn't phone home, but it does depend on access to the DOM for at least some of its functionality like being able to block particular elements in a page based on pattern matching. If the new API allows more or less equivalent functionality without having to give an extension access to every page I open I'm all for it though.

Accessing and modifying the DOM based on some rules, in a sandbox without leaking data, seems technically feasible.

I agree it was only a matter of time, the previous arrangement was pointlessly arcane. But make no mistake, Apple still wants to remain firmly in control.

The development of these extensions is eased, but you still need to pay Apple tax to give them to users. If your extension generates revenue maybe that's fine. If it doesn't Apple is asking you to give them money so that you can help their users, how about No?

I don’t know if it was arcane so much as it was very conservative in what it allowed.

Browser extensions can seek very wide permissions and are extremely powerful because they can automate requests from a user’s IP address.

I’d guess Apple only did this because they had to.

Even Chrome-style extensions will have limits compared to what they can do in Chrome.

This isn't really any more powerful.

I’m saying it doesn’t need to be.

You can publish free extensions, as long as you have a developer account.

Since the account costs $100 a year, this makes more sense for apps who want to offer a Safari extension, e.g. a Japanese learning aid with a website translation extension.

Yes and that is why a lot of extensions cost money on Safari, while the Chrome and Firefox counterpart are free.

Does ublock origin actually work? Saw on the github a couple of months ago that safari had some potentially problematic resource limits.

It does not. There is a handful of APIs that are blocked.


I think a more charitable interpretation is "not implemented".

From what Apple say for Content Blocker API on iOS, I suspect that they really avoid to implement those API.

> In addition to blocking unwanted content, a Content Blocker extension protects privacy. For example, the extension doesn’t have access to users’ browsing activity and it can’t report activity to your app.


I've moved away from ublock origin to Ad Nauseam on firefox and it's such a huge improvement I can't imagine going back

> it's such a huge improvement I can't imagine going back

In what way ?

It actually blocks everything and the kitchen sink but also seems to break less stuff? It's just a more seamless experience

AdNauseam is a good way to get your account banned or your whole IP banned.

It also doesn't do anything for privacy. It is based on uBO, so just use UBO.

> your account banned or your whole IP banned

Getting banned from ads sounds like an amazing thing...

Unless the ad company is also your e-mail, maps, photos and whatnot provider.

(Why would...? Ha.)

Here’s a crazy idea: don’t use that ad company.

Are you saying sites shouldn't use Google Ads, or users shouldn't use Google Products?

You get banned from recaptcha and youtube too.

They don't stop showing you ads. They just don't register your clicks as part of impressions.

Open TOR. You get ads on all sites. But do a google search, you'll get a infinite captcha.

Banned from where? What does AdNauseam do differently than uBO that would incentivize people to use it?

AdNauseam clicks on all the ads it blocks in the background, getting your IP/browser flagged for clickfraud in the ad networks

That sounds really good. Supports websites you visit without seeing ads. Dishonesty isn't really a topic if we are talking ads.

Click fraud can actually get the website banned if the ad network thinks it’s responsible, so no it’s not really good.

Did that happen to any site already? Wonder how they could detect it and if that detection can be circumvented. It is a natural visit in this case. Click fraud should be taught at school or in self defense courses to be honest.

Yes. Many sites on HN have complanied about Google 'detecting fraud on your site' and banning it.

You can get your competitor's site banned this way. Just run bots on his site.

'Pay us, or we'll get Google to ban your ads' -https://news.ycombinator.com/item?id=22348568

Supports them by getting them banned from Ad networks, taking their revenue away? Or at the very least reducing ad conversions for their advertisers, meaning they become a less valuable place to advertise on.

What is "Dishonesty isn't really a topic if we are talking ads" supposed to mean?

Advertisers have zero scrutiny in tracking me and extracting as much personal info as they can, so accusations about dishonesty about faking an incentive to buy something doesn't really reach my conscience too much.

Do we have examples were sites were banned for this behavior? I think "click fraud" doesn't actually fit, since it is not the operator of the site who is responsible. I would be more open to call that behavior fraudulent. I mean cases where users fake their activity.

edit: And if true, why wouldn't I go to google.com and let it run there for a while? Just researched the Google really put effort in banning it.

Many sites were banned from running ads.

Google.com ads are search specific. They'll ban you first, before stopping ads.

It decreases your privacy. Not using an adblocker is better than using it for privacy.

However, if your wish is to stop seeing ads, but click them, use it.

Don't be surprised when your IP is banned, or the website is banned

Again, where is my IP being banned from? Have been using it for over a year and never banned. Captchas also work just fine.

What is your click through percentage?

What do I care?

It will be in the Extension itself. Higher the percentage, higher the chances of Google thinking you are a bot.

At which point I answer a captcha and move on with my life? Seems like an OK trade

My primary issue with Safari is that I practically need an OSX device to test against it.

If you're fine with testing the engine itself try GNOME Web–it's based on WebKit.

Indeed. I keep an old MacBook Pro in a drawer for such times.

IMO they’re all pretty much the same. Firefox lets you see where a link goes without clicking it. Safari has minimalist chrome. It’s just speed.

> BlockingResponse not supported.

> Blocking requests not supported.

so uBlock Origin is not going to happen.



I really hope they will eventually come up with some arrangement to fix that (like being able to explicitly grant extra permissions to individual extensions). I've really missed uBlock Origin these last couple of years and the content blocking framework app I have instead just isn't anywhere near as good, and not being able to easily see what's being blocked is really annoying...

Im using "AdGuard For Safari". Its open source, in Mac App Store and works well enough to keep using Safari. Trick is to disable two out of 8 extensions that require full page access, leaving on only passive, content blocking ones.

Good deal here, no affiliation/affiliate link: https://stacksocial.com/sales/adguard-family-plan-lifetime-s...

Best purchase I've made in a long time.

This is different thing to one i posted above, just a note.

What are the two extensions you mentioned?

When you install it, it creates like 8-9 extensions in Safari, depending on selected filters, and two special ones, like Safari Icon and another. Click on each and check permissions

Couldn't an extension override window.fetch or window.XMLHttpRequest and kill requests, rewrite them to localhost, etc?

Won't work. Browsers don't use those APIs for when downloading page content.

Fuuuuuckkk! I got so excited for a minute there. My biggest regret moving from droid to apple was giving up ublock.

Have you tried alternative solutions? I currently use NextDNS. It's DNS-based blocking and works decent enough on iOS devices. Not as good as uBlock, but I'm hoping that this will improve once we get OS-level configurable browsers in iOS 14.

This is why I block at the router level with AdGuard/PiHole.

The issue with deeper and deeper ad blocking technology is that you're going to end up putting more and more trust into your ad blocker.

uBlock Origin requires access to the DOM, where it can do nasty things like overwrite window.fetch or window.XmlHttpRequest and intercept network traffic. PiHole, just based on the way it operates, has to route all your network traffic along a different route, and it's up to you to watch its upstream output to make sure it's not doing something bad.

I think there's some benefit to the way Apple is intentionally limiting the available surface for content blockers, but it'd be nice to expand on that surface in limited means (eg: freeze library functions so more of the DOM can be accessed, but at the risk of breaking badly-behaved websites) or at least to get a better, plain-English explanation as to _why_ those decisions are being made.

> The issue with deeper and deeper ad blocking technology is that you're going to end up putting more and more trust into your ad blocker.

To be honest, I trust my ad blocker more than I trust Apple.

This is not a joke. Remember that Apple takes literally billions of dollars per year in payoff to make Google the default search engine in Safari. Apple's interests are not exactly aligned with mine.

But it’s not about trusting Apple or the content blocker. It’s about trusting Apple AND the content blocker and all its dependencies.

To summarize a couple of points about Safari's extension functionality for those that are not familiar with it:

* Safari used to have a "legacy" (and proprietary) web extension API that was essentially a bundle of HTML/CSS/JavaScript and was (usually) distributed through the Safari Extensions Gallery. Distributing extensions this way was free. While never a huge platform due to Mac Safari's relatively low market share, it had a number of fairly decent extensions.

* In OS X El Capitan Apple rolled their extensions signing program into the Apple developer program, which costs $100/year. Extensions that were not signed would be "untrusted" and would be quite annoying to install. Many extension developers openly criticized the move–some refused to continue supporting Safari.

* Almost simultaneously, Apple introduced their content blocking API, where extensions could declare a list of what are essentially regular expressions to block content. This model is quite similar to Chrome's declarativeWebRequest API in that extensions have little flexibility at runtime to vet requests. This API works in Safari on macOS as well as 64-bit iOS devices.

* With Safari 12 Apple deprecated the old web extensions model (no longer loading these) and introduced a new extensions model, App Extensions. These are native bundles that run out-of-process and communicate with JavaScript that you can inject into the page. Again, these bundles must be signed with a (paid) developer ID certificate and be sandboxed. Distribution via the App Store is recommended but not required. Any remaining extensions that share code across browsers (i.e. not using native code) are now locked out of the platform.

* (This announcement, which is a rehash of the one at WWDC from this June) In Safari 14 Apple is supporting a conversion tool that converts your standard WebExtension into something that Safari can load, with the same signing and distribution restrictions as app extensions (costs money, sandbox). Many simple APIs are available, but there is the notable absence of the ability to block requests–so uBlock cannot be ported, for example. NoScript does not seem possible to implement either.

* Safari on iOS has never supported extensions–this hasn't changed. The only extensibility available there is still just content blockers using declarative lists.

> Many simple APIs are available, but there is the notable absence

Is there a list of WebExtension APIs that are supported / not supported? I could not find one at developer.apple.com

This is the most complete list I could find: https://developer.apple.com/documentation/safariservices/saf...

Is $100 a year that big of a deal?

It also blocks out anonymous developers.

It's the perfect storm of being very affordable for scammers as a cost of business but being attached to a fundamental lack of anonymity and a single point of control that makes it so dangerous for anyone developing tools to fight oppressive governments etc.

The $100/year pricing makes me think of the discussions about making email a paid service to fight spam (a single message would cost a fraction of a penny, so "normal" users would pay a cent or two a year while spammers would pay tens of thousands). It's both good and bad; it means there are a few roadblocks to distributing an extension (nefarious or not), but it's also not such a huge roadblock that a bad actor can't work around it.

As a road bandit I would at least try $200.

This is really exciting for me! Apple reached out earlier this year to ask if they can use my own extension to test the conversion tool (porting from the Chrome version) and to demo it during WWDC. Of course, now I have to convert it myself for Safari 14 and distribute, but it seems straightforward. I hope RecipeFilter can expand to the major mobile browsers one day as well...

Here's a clip from WWDC where they demo the ported extension: https://www.youtube.com/watch?v=Kwh2y6VkzoA

Chrome Web Store for it: https://chrome.google.com/webstore/detail/recipe-filter/ahlc...

Source code: https://github.com/sean-public/RecipeFilter

The original HN comment that caused me to create the extension almost 3 years ago! https://news.ycombinator.com/item?id=15745914

I took a quick look at the extension and the honest intro video too. It looks great. Thanks a lot for creating this extension!

Cool! Did they have you sign a bunch of NDAs; did they end up working with you at all?

I did, yes. It was maybe a month in advance of WWDC and I wasn't able to talk about the coming changes to Safari with anyone.

The couple of biz dev/relations/acquisitions people I met via email and video calls were very nice, but they didn't give me much at all in return for releasing permission for the recording and a quick-turnaround change to the extension to fix a couple things.

Thank you so much for this extension, it’s great!

It's going to be an interesting war to follow, but not to be in the middle of. Chrome is already nuking the current state of things by introducing sweeping changes in Manifest V3. The one that caught the mainstream was webRequests and breaking content blockers. What's not talked about is how moving the "background" process from a long lived hidden web page to a short lived, event based service worker, breaks the actually useful cases of extensions.

For our RSS extension it breaks a bunch of things, like polling for updates in feeds, removes any sort of complex persistent storage like IndexedDB, the ability to open a websocket connection for a realtime connection to backend infrastructure (if the user chooses to use our cloud syncing).

Now Chrome has also made a sweeping change by hiding all extensions you install by default. Hiding away the main interface element of the extension. This breaks the "unread" count or the point of the browser action. How many users will actually understand that they need to "pin" extensions to the toolbar? How many extensions will you have installed that you forgot to remove?

It's like the 90s again. All other browsers have moved to Chrome's extension system, which by no means is a standard. Firefox has explicitly said they will support content blockers in their current form, but not their stance on Manifest V3. Safari has disabled a large portion of the API's, and being just released, what's their story for MV3? Since there is no standard there is no work to keep the API's in sync. Firefox throws exceptions on parameters that Chrome supports. It's really demoralizing.

how long will it take chrome team to introduce manifest v3 and drop support for v2? I hope they give sufficient time to devs for migration.

Nobody knows. Their stated goal was release in 2020 with 1 year deprecation for MV2. Corona might have changed this. Their is no good source of information and the Chrome extension devrel team is woefully understaffed.

No uBlock, no thanks. Any battery saving improvements given by Safari is probably negated by the volume of ads getting thrown down my throat.

Just curious, what sites aren’t taken care of by a decent Safari content blocker extension? I’ve been using content blockers on both macOS and iOS for years now, and for 99% of sites I visit look barely different from FF/Chrome w/uBO. If I run into weirdness with sites loading it’s usually due to something like the site doing something funky like piping content through a web worker.

For me, Safari content blockers work very well except for a single website: mobile Reddit. Blocking the Reddit app promotion banner disables scrolling, and Safari content blockers aren't flexible enough to prevent this AFAIK.

Any homebrewed site nowadays has really aggressive ads that you need adblock to deal with since more reputable ad vendors won't deal with them.

uBlock is not the only ad blocker, and Safari supports many alternatives.

Safari supports content blockers, which are basically lists of content to block. AFAIK, there's also a limit (50K, IIRC?) to the number of rules that can be bundled within one extension. With the popular lists used with an extension like uBlock Origin, 50K is quite a small number. So multiple extensions would be required to get close to uBlock Origin, even if we dismiss element blocking rules and other features that uBlock Origin offers.

unfortunately ublock is the only one I trust right now. What alternative would you recommend that is fully open source and trustable?

Firefox Focus for iOS seems to be open source, AdGuard and Ka-Block for macOS also seem to be, there might be more.

About "trusting": Safari content blocking extensions don't access your page, they only tell the browser which elements to block and Safari handles it. Some commercial extensions have a "control panel" that has access to pages, but you can just not enable them (it's opt-in AFAIK) [1]

[1] https://i.imgur.com/jH8DFc4.png

You don't need to trust Safari content blockers because they can't access anything, they can just create static blocker rules. That's one of the key points of the system.

There's a thread regarding this on github linked from gorhill's repo:


Also Adguard for Safari is GPL v3.


I don't see any ads on Safari in macOS or iOS due to Firefox Focus and Wipr content blockers.

What you say is true to an extent. If you do not need the full power of uBlock Origin, may I suggest using NextDNS.io with added blocking filters (many popular filter lists are available there)? The other option would be a Pi-Hole. To reiterate, these are not full replacements for uBlock Origin, but they do help even when using uBlock Origin with a browser like Firefox.

If they are distributing via the App Store, I assume this means requiring the publisher to be paying the yearly $99 developer fee?

Yes, and that is actually already the case. When Apple finished deprecating .safariextz extensions in favor of Safari App Extensions, they also killed the Safari Extensions Gallery in favor of distribution through the App Store. And as you assumed, the developer does have to pay the annual fee.

See https://lapcatsoftware.com/articles/decimation.html

This is just ridiculous on the one hand it consolidates their existing tech. On the other hand it gives them too much control over web extensions as a result and they dont seem to have the nicest rep running the iOS app store.

I already published browser extension to Firefox Add-Ons Marketplace and Chrome Web Store. Publishing on Firefox is free and publishing on Chrome is 5$ (one time fee). So the difference is quite stark.

I’ve unfairly disregarded Safari on MacOS for years because it didn’t have parity with chrome/FF in terms of extensions. There’s uBlock of course, but I spend a lot of time on Reddit, and I can’t bear it without the RES extension. So now there’s hope.

> I’ve unfairly disregarded Safari on MacOS for years because it didn’t have parity with chrome/FF in terms of extensions.

That seems like a very fair reason to disregard a browser, imho.

No support to make uBlock Origin work yet, sadly.

IMHO, Safari is a restrictive browser. Even if they start using chrome models, their approval process and permission process can be a nightmare and may not be actually something that small/free extension makers should be doing.

To my knowledge, Safari already had Chrome extensions working fine (before some conversion to native programs apparently). The problem wasn't in the extension support or even in the 100 bucks fee, but in their extension store's ineptitude in publishing whatever developers were trying to ship. ‘Reddit Enhancement Suite’ (iirc) stopped supporting Safari for that reason.

Edit: not RES, they cite the move to native code as their point of divergence. But I remember reading somewhere about Safari store's unenthusiastic publishing of extensions.

Does this mean I can have them on an iPhone one day too?

A true NoScript alone would be awesome.

Looks like the announcement specifically calls out the _Mac_ App Store, so at least not initially...

I’d love ublock origin or HTTPS Everywhere on Mobile

You can get Firefox mobile with extensions

Not with iOS. I just tried it on iOS, says extensions dont work. Is this Firefox on Android that has extensions?

Yes, and no. The old Firefox for Android supported many extensions. The new one that came out just a few weeks ago only supports about 10 extensions, including uBlock Origin. They should be adding more over time, though.

Yes, it does; running uBlock Origin on mobile IceCat here without a hitch

Can you? It doesn't look like they are supported: https://support.mozilla.org/en-US/kb/add-ons-firefox-ios

No mention of iOS:

> Safari web extensions are available in macOS 11 and later, and in macOS 10.14.6 or 10.15.6 with Safari 14 installed.

I’m dying to write an iOS Safari extension that will skip over Google AMP pages to real web.

This is what drove me to switch to duck duck go

Yeah, I’ve been on DDG for a couple years now. It has not grown on me.

You can write Shortcuts that inject code into a page (really, a glorified bookmarklet) but you have to run them manually :(

Safari versions can never work on older Mac OSes, correct? I would love to stay on High Sierra or Mojave and get Safari 14. I’m assuming since it is so integrated into the OS, it uses Big Sur specific APIs and references.

Too bad. I am happy enough with any macOS from a couple of years ago, but this Safari change is the first thing I can readily recall caring about for an upgrade.

A lot of my reasoning is liking Safari being lightweight. Upgrading to Big Sur would probably far more than cancel out any gains of using Safari more.

Safari still doesn’t appear to have profiles or an easy way to hack it. Good Safari web extensions that can help toward that might not come out that quickly if the extensions need some rework and packaging and be published with the $100/year fee.

Updates of Safari are made available for the two preceding releases of macOS. For example, Safari 13 shipped with Catalina, but it's also available for Mojave and High Sierra.

Any OS features not available on those earlier OSes are disabled, of course, but Web features tend to be unaffected. For example, Safari 13 doesn't support dark mode on High Sierra.

Oh awesome. I never noticed or thought about it before. Seems like this means web extensions will be available on Mojave. Looks like that’ll be my OS until I upgrade computers.


Safari has historically been released for the two previous versions of macOS.

But not for IOS?

They want you have to have an Apple developer account, even though the extension is cross-platform. We need a separate "WebExtensions Store" that's cross-browser.

It seems feasible within a reasonable amount of time that the browser could have everything that an app would have, or at least close. But to me for reasons of profit, not user experience, companies like apple choose not to make this possible. I'm sure there's always a reasonable explanation of why I'm wrong. But I'd love to hear why.

Really hoping this means I can use uBlock Origin again, the adblocker selection for Safari is currently extremely poor.

Sadly not at the moment :(

I wonder when will webkit devs face their mediocrity and the reality of their Haiti level human resources poorness and make the not dumb move of switching to improving chromium just like microsoft do. It's only a matter of time before major webapps stops working on webkit

The most interesting thing here is, that this could bring support for WebExtensions to WebKitGtk! Therefore to Epiphany, which really need Extensions. Interestingly enough, I have the feeling leaving Gecko as foundation was a wise decision years go.

And other webbrowsers like Midoria, Otter, Qute.

my god. even for something simple you need xcode and join the apple developer program. $$$ for sure.

This is pretty useless if developers have to pay $99/year and a Mac to publish. Most extensions still won’t appear on the Safari store.

just realized i've had a mac since 2017 and only visited the safari store once

Safari still can't use uBlock, so I still can't use Safari.

The content blockers on Safari on iOS are pretty much worthless. Mobile web on iOS is easily the worst part of the iPhone experience, but at least on MacOS there are other browsers. I can't fathom why Apple cripples Safari this way on the desktop. It's at a huge disadvantage, and remains so. Literally the only advantage for Safari in my experience is that it can actually play full-HD Netflix streams, where other browsers can't.

> I can't fathom why Apple cripples Safari this way on the desktop

Privacy. For every person installing uBlock Origin, there are going to be 10 people install SuperBlock WowBlocker which is actually just harvesting all the URLs they visit and sending them to some data farm.

Saving me from myself is not the greatest strategy when all it accomplishes is to make me use a different browser that avoids this type of nanny treatment.

Try AdGuard extension on Safari

Looked into this - it looks like it's not much more than what you could do with a sufficiently advanced hosts file?

Meanwhile Firefox alienates its current users by killing extensions and publishing an unfinished product.

But only on macOS. That literally would be the one change that would make me adopt iOS, you know. I NEED userscripts.

Waiting for moderators to change the post title to the original but less descriptive "Easily create web extensions for Safari."

Hacker News does not like title editorialization, but it does not like information-light marketing titles either. I suspect it might stick around.

To develop a large extension consider using webext-redux[0] and react-extension-boilerplate [1]

[0] https://github.com/tshaddix/webext-redux


Webext redux is one of my favorite libraries. I've built some great stuff with it (and its predecessor).

One use case is to create a single page app feel on websites that aren't single page. We use it in Salesforce, specifically.

Clarifying comment: I have used this in an extension that integrates with Salesforce. I'm not affiliated with them in any way.

Can you share some solutions to pain points you encountered developing an extension?

There's a lot that goes into it. Can you help guide the question a bit more and I'll be happy to give it a go?

Regd the webext I wonder how it passes the props from client to background pages ? It is a real problem if the props are not serialisable. Note that this kind of problem would not be there in a single page client and redux store on same window context

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact