What's with with Safari 12 and adblockers?

Discussion in 'macOS Mojave (10.14)' started by baryon, Sep 26, 2018.

  1. baryon macrumors 68040

    baryon

    Joined:
    Oct 3, 2009
    #1
    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?
     
  2. TokMok3 macrumors 6502a

    Joined:
    Aug 22, 2015
    #3

    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.
     
  3. TrenttonY macrumors 6502a

    Joined:
    Nov 14, 2012
    #4
    Adblockers for Safari on the App Store are prevented from sending data (ex. the websites you visit) to the developer.
     
  4. baryon thread starter macrumors 68040

    baryon

    Joined:
    Oct 3, 2009
    #5
    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?
    --- Post Merged, Sep 26, 2018 ---
    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?
     
  5. Einkoro macrumors member

    Einkoro

    Joined:
    Jun 18, 2007
    Location:
    Canada
    #6
    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.
     
  6. TrenttonY macrumors 6502a

    Joined:
    Nov 14, 2012
    #7
    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.
     
  7. TokMok3 macrumors 6502a

    Joined:
    Aug 22, 2015
    #8
    Nice... All valid points. Thank you!
     
  8. posguy99 macrumors 6502a

    Joined:
    Nov 3, 2004
    #9
    https://developer.apple.com/videos/play/wwdc2018/234/
     
  9. baryon thread starter macrumors 68040

    baryon

    Joined:
    Oct 3, 2009
    #10
    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.
     
  10. maverick808 macrumors 65816

    maverick808

    Joined:
    Jun 30, 2004
    Location:
    Scotland
    #11
    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.
     
  11. Einkoro macrumors member

    Einkoro

    Joined:
    Jun 18, 2007
    Location:
    Canada
    #12
    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.
     

Share This Page

11 September 26, 2018