Safari adopts the Chrome/Firefox extension model
developer.apple.com
developer.apple.com
- 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.
https://developer.apple.com/documentation/safariservices/saf...
> 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.
https://developer.apple.com/library/archive/documentation/Ge...
In what way ?
It also doesn't do anything for privacy. It is based on uBO, so just use UBO.
Getting banned from ads sounds like an amazing thing...
(Why would...? Ha.)
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.
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
What is "Dishonesty isn't really a topic if we are talking ads" supposed to mean?
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.
Google.com ads are search specific. They'll ban you first, before stopping ads.
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
—-
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.
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?
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.
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.
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.
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.
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.
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.
If I browse the same sites on Chrome for Windows my CPU goes to 100%. It's awful.
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.
UI is the differentiator of the Mac itself. Otherwise, why not just use Windows, which is "decent".
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.
Because Firefox had tabs!
But I agree, browser UI is irrelevant in 2020.
> Blocking requests not supported.
so uBlock Origin is not going to happen.
https://developer.apple.com/documentation/safariservices/saf...
https://www.reddit.com/r/uBlockOrigin/comments/hdz0bo/will_u...
Best purchase I've made in a long time.
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.
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.
* 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.
Is there a list of WebExtension APIs that are supported / not supported? I could not find one at developer.apple.com
It also blocks out anonymous developers.
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
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.
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.
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]
https://github.com/el1t/uBlock-Safari/issues/158
Also Adguard for Safari is GPL v3.
That seems like a very fair reason to disregard a browser, imho.
A true NoScript alone would be awesome.
I’d love ublock origin or HTTPS Everywhere on Mobile
> Safari web extensions are available in macOS 11 and later, and in macOS 10.14.6 or 10.15.6 with Safari 14 installed.
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.
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.
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.
Thanks.
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.
And other webbrowsers like Midoria, Otter, Qute.
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.
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.
[0] https://github.com/tshaddix/webext-redux
[1]https://github.com/kryptokinght/react-extension-boilerplate.
One use case is to create a single page app feel on websites that aren't single page. We use it in Salesforce, specifically.