What's with with Safari 12 and adblockers?

baryon

macrumors 68040
Original poster
Oct 3, 2009
3,531
1,526
I was surprised that Safari 12 made Adblock Plus and uBlock useless, though I did find one that works: uBlock Origin.

Does anyone know why this is, what made Apple think this was a good idea? Are they doing it because advertisers are pressuring Apple to block adblockers?

Now it seems adblockers are releasing full blown Mac apps that somehow run parallel with Safari to block ads. I don't see how this is a better solution, as apps have far more privileges than a mere Safari extension, and could do much more harm. Also I don't like the idea of an app constantly running in the background for something that used to just be a simple extension.

Also, if uBlock origin can run as a Safari extension, why can't Adblock Plus and uBlock do the same?

If such extensions were fine for all these years, then why are they suddenly not okay anymore?
 
  • Like
Reactions: TokMok3

TokMok3

macrumors 6502a
Aug 22, 2015
623
398
I was surprised that Safari 12 made Adblock Plus and uBlock useless, though I did find one that works: uBlock Origin.

Does anyone know why this is, what made Apple think this was a good idea? Are they doing it because advertisers are pressuring Apple to block adblockers?

Now it seems adblockers are releasing full blown Mac apps that somehow run parallel with Safari to block ads. I don't see how this is a better solution, as apps have far more privileges than a mere Safari extension, and could do much more harm. Also I don't like the idea of an app constantly running in the background for something that used to just be a simple extension.

Also, if uBlock origin can run as a Safari extension, why can't Adblock Plus and uBlock do the same?

If such extensions were fine for all these years, then why are they suddenly not okay anymore?

As a solution I have been force to use Firefox, instead of Safari. This changes are becoming too protective and I don't like it.
 

TrenttonY

macrumors 6502a
Nov 14, 2012
976
847
Now it seems adblockers are releasing full blown Mac apps that somehow run parallel with Safari to block ads. I don't see how this is a better solution, as apps have far more privileges than a mere Safari extension, and could do much more harm. Also I don't like the idea of an app constantly running in the background for something that used to just be a simple extension.
Adblockers for Safari on the App Store are prevented from sending data (ex. the websites you visit) to the developer.
 
  • Like
Reactions: Rocko99991

baryon

macrumors 68040
Original poster
Oct 3, 2009
3,531
1,526
Adblockers for Safari on the App Store are prevented from sending data (ex. the websites you visit) to the developer.
But if we instead start using the adblocker apps, would they also send the same data to the developer? Aren't they effectively just achieving the same thing but through different means by releasing an app instead of the extension?

Why do adblockers need to send which websites I visit to the developer? Is this just for the developer to continue... developing... or is this needed for the adblocker to function?

Also, how come uBlock Origins continues to work, do they not need to know what websites I visit?
[doublepost=1537995082][/doublepost]
Okay wow that's... weird... So Apple believes that Safari extensions should now be full blown Mac apps, that run when the system starts, have a window in the background that is either hidden or not, and have far more privileges than an extension? I don't get it. What's the point of even running a whole app in the background non-stop, even when Safari isn't running, just so that you can block some ads? Or just so you can directly go to YouTube from the search bar? How is that not the ideal job for an extension? So if you have 5 extensions, you'll have 5 apps constantly running on your system, whether you use them or not?
 
  • Like
Reactions: TokMok3

Einkoro

macrumors member
Jun 18, 2007
36
9
Canada
Extensions that continue to work are the ones distributed in the gallery until Apple finally axes it presumably for Safari 13.

The native extensions seem to be designed to allow passing data between your app and the extension while moving all extension UI bits off to swift/cocoa for better performance and more native looking elements. That and preventing scripts from injecting code fetched externally after the extension is distributed through the App Store which is a major improvement from a security standpoint. Most of the extension malware has taken that approach in the chrome store and this should eliminate that avenue of attack.

The downside is Apple didn’t seem to give two ***** about extension developers that have no applications to integrate with so we have to slap together a useless app with a window including instructions to activate and use the extension just to pass review and be accepted on the store. In addition the API is so horrifically neutered we don’t even have events for closing a tab or suspending a page anymore so if your extension needs to manage state you are basically screwed or have to accept it will slowly leak until you relaunch Safari. But wait you could dispatch a message on pagehide/unload and then update the state, right? No pagehide has been broken since 2015 and doesn’t fire on closing a tab only on back/forward or reload and there is still zero movement on a fix in WebKit.
 
  • Like
Reactions: !!!

TrenttonY

macrumors 6502a
Nov 14, 2012
976
847
But if we instead start using the adblocker apps, would they also send the same data to the developer? Aren't they effectively just achieving the same thing but through different means by releasing an app instead of the extension?

Why do adblockers need to send which websites I visit to the developer? Is this just for the developer to continue... developing... or is this needed for the adblocker to function?

Also, how come uBlock Origins continues to work, do they not need to know what websites I visit?
iOS/Mac App Store adblockers aren’t allowed to access the internet, so they will never be able to send data back to the developer.

Safari Gallery Extensions are allowed to do just about anything they want. For an example, blocking ads and logging your passwords and sending them to their server without you knowing, (but uBlock Origin is a trusted developer so no worries about it doing malicious things).

Unfortunately right now Mac App Store adblockers aren’t very good, even when compared to iOS App Store adblockers (such as Firefox Focus, which is very good).

So you should just continue to use uBlock Origin, and when (hopefully) the Mac App Store gets better adblockers, then you can make the switch.
 

TokMok3

macrumors 6502a
Aug 22, 2015
623
398
But if we instead start using the adblocker apps, would they also send the same data to the developer? Aren't they effectively just achieving the same thing but through different means by releasing an app instead of the extension?

Why do adblockers need to send which websites I visit to the developer? Is this just for the developer to continue... developing... or is this needed for the adblocker to function?

Also, how come uBlock Origins continues to work, do they not need to know what websites I visit?
[doublepost=1537995082][/doublepost]
Okay wow that's... weird... So Apple believes that Safari extensions should now be full blown Mac apps, that run when the system starts, have a window in the background that is either hidden or not, and have far more privileges than an extension? I don't get it. What's the point of even running a whole app in the background non-stop, even when Safari isn't running, just so that you can block some ads? Or just so you can directly go to YouTube from the search bar? How is that not the ideal job for an extension? So if you have 5 extensions, you'll have 5 apps constantly running on your system, whether you use them or not?
Nice... All valid points. Thank you!
 

posguy99

macrumors 65816
Nov 3, 2004
1,168
672
Okay wow that's... weird... So Apple believes that Safari extensions should now be full blown Mac apps, that run when the system starts, have a window in the background that is either hidden or not, and have far more privileges than an extension? I don't get it. What's the point of even running a whole app in the background non-stop, even when Safari isn't running, just so that you can block some ads? Or just so you can directly go to YouTube from the search bar? How is that not the ideal job for an extension? So if you have 5 extensions, you'll have 5 apps constantly running on your system, whether you use them or not?
https://developer.apple.com/videos/play/wwdc2018/234/
 

baryon

macrumors 68040
Original poster
Oct 3, 2009
3,531
1,526
That sort of makes sense. So just so I'm on the same page: Apple has a not-so-new but pretty much unheard of feature, which is "App extensions": apps that extend other apps. And Safari Extensions for some reason are too powerful and can be used for fraud, so Apple wants to stop extensions altogether and use app extensions instead.

What I don't get, however, is why isn't there some kind of better interface for app extensions? Currently such an app runs at startup with a dock icon, a menu bar icon, and a popup window, that sits there idling, waiting for you to run Safari, and then somehow interacts with Safari — why can't these somehow hook into Safari, and launch and quit together with Safari, with no interface outside of Safari? You know, like Safari Extensions. Having an independent app seems silly when the extension app literally depends on a "mother app". It seems incredibly inelegant, and a leap back to the 90's, to have to run an app just to get another app to work how you want it to. Like when you pirated a game and you had to run a pirate app in parallel that would keep the game running, in some hacky way. Why not simply change the APIs or whatever for Safari Extensions, so that they can't see the browsing data but that they are identical to App Extensions? It's just a matter of interface really.
 

maverick808

macrumors 65816
Jun 30, 2004
1,130
135
Scotland
Currently such an app runs at startup with a dock icon, a menu bar icon, and a popup window, that sits there idling, waiting for you to run Safari.
No it doesn't. The separate app is only needed for editing settings, there is no need to launch it at start up or have it open at all. It doesn't have to appear in the dock. Once you install the app and run it once to set up the extension you never, ever have to run that app again. The extension will keep working in Safari even if the app is never launched even between restarts.
 
  • Like
Reactions: baryon

Einkoro

macrumors member
Jun 18, 2007
36
9
Canada
Apparently despite what the documentation says it doesn't need to be distributed via MAS. You can sign it and distribute it directly to customers like any other app.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.