I’ve been using uBlock Origin Lite on iOS for several months now, but one shortcoming I see with the newer WebExtensions implementation in Safari is that WebExtensions can’t be used with the in-app Safari views, meaning extensions such as this one don’t work with in-app Safari views. There was an older Safari content blocker API that did work with the in-app Safari views, but it seems like apps are being updated to stop using it. As a workaround, I’ve been trying to set my apps to open the Safari app for links where possible, but I would have preferred to use the in-app Safari views.
As a side note, I personally HATE apps that opens links in an in-app web view (apps like Instagram, Facebook, etc). I really wish Apple could have a system wide preference where it could force in-app web views to open in the browser.
It has frustrated me for a LONG time that we have all collectively seemingly decide to break links.
It used to be that you could click a link in an app, it opens in your web browser where you're already logged in to the relevant service, so you get to see the content the link points to.
These days, you click a link in an app, it opens in an in-app web view where you're not logged in, so you just see a login screen.
Not even the "open in Safari" button works, since by the time you have the opportunity to click it, you've already been redirected to the login page. You literally have to long-press on the link, copy it, switch to your browser, and paste it in to the omni-bar. I don't understand how this god forsaken industry's UX "experts" have all agreed that this should be the universal user experience.
It's especially bad in apps like Slack, where 99% of the links I'm ever interested in are links to our internal gitlab, some internal knowledge base article, some internal tool, or some other thing that requires being logged in to view any of the content. Links just plain do not work almost ever in Slack without the manual long-press -> copy -> switch to Safari -> paste dance.
I also love that app sizes get super bloated (several gigs per app) due to cached safari data from the in-app web view. Seems the only way to clear it is to go into settings and wipe the website data for safari entirely. I don't believe app developers can clear this themselves either, despite it appearing as their app taking up so much space when really it's just due to safari cache that seemingly doesn't clear on its own.
I get more frustrated from when they go the other direction. Google Maps, for instance. When I go to the website, it asks if I'd like to use the app instead, with the usual dark pattern of having the "no" button greyed out. But after I tell it no, as soon as I touch the search bar, it automatically opens the app anyway. I wish there was a setting in Safari that disabled websites from opening apps.
My favourite part is when it opens a form or something to fill out but if you navigate away from this in-app web view to another app and back (say to get a password) you lose the session. It’s incredibly frustrating
I find gmail to be the absolute worst offender in this category.
1. They dark pattern you into downloading their browser (they give three options, two of which are chrome)
2. In not launching iOS, I’m not logged into the session I may already have open in safari. Which is incredibly painful for any product that sends notifications via email, which id like to action.
And if I do login, and it asks for an email verification code… fail. I can’t access it in gmail without closing the browser…
3. Their in app browser (or the way they re-write links?) doesn’t seem to play nice with opening the corresponding app. Never seems to work.
Incredibly user hostile.
Is there a better alternative mail client I can use with gsuite?
I’d think it was about tracking if I didn’t know that the ios api most apps use gives no access to what the user is doing. I feel like it must be some folk wisdom among app developers about “keeping people in the app”. It’s especially bad since the implementation always seems to struggle hard with self-links, eg if you open a web link in X then follow a link in the story to a tweet you get a broken result in most apps.
This small technical annoyance is one of the biggest issues… of modern society. They do that deliberately to keep users within their apps to drive up engagement. Which in turn drives down exposure to different opinions by keeping the user within the app driven by the same algorithm uninterrupted. If they to change default opening of web links as you would expect it, their revenue numbers would drop dramatically.
The lawmakers should be competent enough to recognise this problem and have laws against keeping people within the apps for no reason. (The only reason may be to use the web sign-in).
Imagine on desktop computer os, you click a link within WhatsApp app and it opens a window within that app and load the webpage there, without your login cookies, and makes you login if you need using mouse with on-screen keyboard only…
The main point of it is to force ads and tracking links. It's just anti-privacy. Any app that does it without a permanent way to disable it doesn't respect its users.
This is heavily dependent on whether the app is using a WKWebView, in which the app developer has almost total control over the experience or SFSafariViewController, which essentially provides a mini-Safari with back/forward/reload/reader mode buttons with a button in the lower right hander corner that takes you to full Safari. In the latter case, the app developer has very little customization and cannot see or really control what is happening inside of the web view.
You mean URL filters? This isn't part of WebExtensions, so I don't think uBlock Origin Lite is going to support it any time soon. But since URL filters appear to operate independently from browser level blocking, perhaps apps providing this functionality could coexist with uBlock Origin Lite.
Also, as the name implies, this just looks at the URLs. So it's more comparable to DNS level blocking.
But then I have to upgrade to iOS 26… The cure is worse than the disease!
For now I am using wireguard+pihole on a cheap VPS for all my devices. It’s not perfect (data center IP so some places block it) but it’s good enough for now. When I’m forced to update to 26 will definitely look at Wipr since I tested that out and it was really good other than the in-app issue.
Without having any experience with the APIs to back up my claim, I believe that the WebExtensions API is more powerful in the sense that it allows more complex blocking rules. AdGuard seems to include both options simultaneously, where you have "advanced protection" (WebExtensions API) that only works in Safari and separate blocking lists (old API) that work in both Safari and WebView. This is precisely what keeps me from using uBlock Origin Lite.
> I believe that the WebExtensions API is more powerful in the sense that it allows more complex blocking rules.
This is not really accurate.
The Safari content blocking API and the WebExtensions DeclarativeNetRequest API are comparable. The difference is that WebExtensions are JavaScript and can run in the context of the web page. With WebExtensions, you get DNR plus arbitrary JS, whereas the Safari content blocker API is native code and doesn't run in the context of the web page. The arbitrary runtime JS is what allows you to do things that you can't do with declarative content blocking rules.
You could also have a Safari content blocker with an optional WebExtension for additional functionality with no usage of DeclarativeNetRequest.
I agree, and I feel it’s worth mentioning that in-app web views bypass private browsing, so they store cookies even if you run Safari in private browsing 100% of the time. PITA to clear them, buried in settings.
> There was an older Safari content blocker API that did work with the in-app Safari views, but it seems like apps are being updated to stop using it.
Which apps are being updated to stop using it?
The difference is simply that the Safari content blocker API is Apple-specific, so it can be used only on iOS and macOS, whereas uBlock Origin Lite uses the cross-platform DeclarativeNetRequest API, because uBlock Origin Lite is itself cross-platform.
Adblock Plus did so on iOS in version 3.0.0. I haven’t used ABP on other platforms in years but for awhile it was only of the few decent free options I knew of on Safari.
Yes. I used to use Wipr 1 and also found it underwhelming, eventually settling on 1Blocker. Eventually I decided to give Wipr 2 a shot and it’s much improved.
It also now allows blocking even outside of Safari. Though that requires iOS/macOS 26, which I have no intention of installing any time soon, so can’t speak for how effective that is.
I've been using Wipr for a long time. Both on iOS and macOS and it works perfectly. I don't see any ads. When I happen to use or see other people's devices I'm amazed by the amount of ads on the screen.
Brave has also been great here. It even blocks google/reddit login/gps/<insert annoyance> popups.
With brave you can uninstall the native Reddit app and just use the webapp instead, without ads and stupid-ass "It's better in the app!" or "instead of taking a screenshot, use the share button!" messages.
What about downloading videos? I think it's the only thing holding me back from switching from the app, since I don't wanna share reddits posts, but the videos themselves.
Off-topic but damn how shitty of them to add their own watermark when you download an image from a post, and then they dare to say "Better to use the share button!" if you take a screenshot of it instead.
What do you mean by “lack of proper adblocker”? I use Adguard and Ghostery and never see an ad. Ghostery also auto-dismisses cookie popups.
Regarding playing music videos (I guess you’re referring to YouTube), while the playback pauses when you switch away from Safari or lock the phone, you can unpause it via Control Center while in an other app, or on the lock screen.
I've been using Orion for the same reason. It supports chrome/firefox extensions too so you can install uBlock origin, though it's built-in ad-block is quite good but its still cool being able to install other extensions.
That was my setup until recently. The ads are YT blocked well on iOS but it kept having hiccups on iPadOS. I switched to uBlock in safari and it works well. I wish it showed what is being blocked on each page instead of the little counter in the icon.
I recently switched to trying iOS after all of Google's recent Android nonsense and tried all the options. Brave didn't make the cut as it failed to block all the embedded ads on reddit (my personal litmus test). The Orion browser, OTOH, did a great job at it.. and it also supports the full version of ublock-origin if I need even better ad-blocking. It has a few rough edges, but is working out to be a nice default web browser for the phone.
Every time I read this I ask for example of which web pages do you see ads using 1Blocker that uses th4 content blocking framework that has been around for a decade.
iOS Safari has adblock support; I've been using AdGuard for years. It's a little bit of a hack, but you can also get system-level ad-block in every app by using Lockdown. Lockdown works by registering itself as a VPN that works kinda like an on-device PiHole.
What? iOS has had "proper adblockers" for years now. It's literally why I switched to iOS. Android was forcing ads in all sorts of places, and forcing things into webviews that had no adblocking. Being able to install adblock that even works in webviews was a huge advantage of iOS to me.
I had been wishing for uBlock Origin for Safari for years, but now that it’s here (I’ve been using it since the betas), I’m disappointed. It’s really ugly to look at (even the icon in the toolbar looks out of place), configuration is awkward and resets itself unless you give it full permissions for every website from the get go, and it doesn’t seem to be more effective than other popular blockers. Additionally, pretty much every other blocker includes several extensions to overcome the well-known 150K rule limit, but uBlock Origin only includes one, meaning it can’t be blocking as much.
uBlock Origin Lite on Safari has been improving since the first release. It has more filter lists, and there is support for custom rules and an element picker to help make those rules.
I also have the same issue with the back button, where that obnoxiously large Google login prompt show up whenever I navigate back to a Stack Overflow page. But it's definitely not all ads that show up when I navigate back. Looking at GitHub issues, it's only Javascript-based blocking that's affected.
It works for me, but not as good as the ones based on content list filters. It's also brings odd problems: google.com breaks on first search request, but ipv6.google.com does not.
In all these years I haven’t found a better solution than DNS blocking with NextDNS on iOS. The only place I get ads is YT (but for that I have an Albanian VPN)
If you're in Europe, there's the newly launched DNS4EU project which is free for personal use, and also includes adblocking at the DNS level like NextDNS.
I use it in conjunction with Adguard and secure DNS, but they also publish configuration profiles for iOS.
Woah, that looks like an great effort! Never seen before, wonder why they're not making more noise about it and/or use it for more services, probably would have come across it while poking at various EU services DNS configs if so, but haven't so far.
Anyone happen to know exactly what the "Protective" option is for/does? I see there is one "Unfiltered", and lots of "Protective + Something" options, which is kind of clear what they do, but just "Protective", what does that mean in practice? Couldn't find any concrete information except "It protects you".
I read that if/when Google find out that you’re not actually Albanian they’ll immediately band your entire account. So I wouldn’t recommend doing this trick for your main Google account that has your email and Google drive stuff….etc. you likely want to create a burner account just for this.
Also do you connect to the Albanian VPN all the time? That would mean all the websites you connect to now think your in Albania
Google DGAF. And I don’t use their other services. Especially not email.
I use their WireGuard endpoint with the WireGuard app in iOS. I have the WireGuard app icon next to YT and toggle it as I start using and stop using YT. I’ve set mullvad dns to also block ads etc so if I forget to turn the VPN off it’s not a big deal.
I tried selective routing but it’s impossible to figure out the YT IPs. They overlap with GCP infra and a lot of apps block connections from Albania so they break and the VPN has to be toggled.
If someone knows of a list that only includes YT servers I’d love that because wireguard lets you do routing easily if you have CIDR blocks.
I did use to have an subscription to YouTube, but they kept increasing the pricing, and once they've 4x'd the original price, I felt like it wasn't worth it anymore, and they'll just continue raising the prices indefinitely, and that's not a business strategy I'd like to support by continue subscribing.
People always say "vote with your wallet" and that's pretty much why people go any other way than "Subscribe and pay Google money" today with YouTube.
>Then your money goes to the video makers you watch.
It does not actually, a large chunk of the money goes to Youtube.
And actually, I would happily pay for either the creator or myself to fund the content hosting. I pay for Nebula for example.
What I refuse to pay for is a company who has routinely fucked over innocent creators doing nothing wrong, and a company who has threatened to burn those people's livelihoods to the ground for triggering false positives in terribly made automated systems that Google leans on to have a higher profit margin.
What I refuse to pay for is a company who uses their absolute control of the platform to enforce a system of Clickbait thumbnails and titles, by insisting on an adversarial system of surfacing content. I am subscribed to a creator, but if I don't click on their next video one of the first times google shows it to me, google will stop showing me content from that creator that I am still subscribed to. If enough people do not click on it in the first couple impressions, google will not show that video to anyone.
Google will also punish users who make such awful and deplorable content as... War history (accurate or not), until recently swearing, videos about aircraft (somehow ended up labeled as a content mill), An end of year summary and highlights video that is exclusively crafted out of content that exists already live on your channel and is not demonitized but when you release that highlight reel it immediately gets demonitized so since you are a big ish channel you ask your account rep wtf and they tell you oh its a mistake it wont happen again. And then, next year, it happens exactly the same, with the added bonus of this time all the content on your channel that wasn't previously demonitized also gets demonitized to go with it, even though your rep once again says this is a mistake.
Remember how youtube used to have so much small time animation, and some of it was great? Notice how it's gone now? Youtube changed what they were prioritizing in the algorithm, and that killed the entire business of small time animation. An entire era of internet media that started before youtube and drove the power and influence of Newgrounds was just wiped out because it wasn't profitable enough. This was separate from the time that youtube also cut ad rates in half without warning.
I will pay for youtube when they demonstrate that they want good content on their platform. I will pay for youtube when, instead of platforming and supporting and paying big bucks for Mr Beast and his awful empty content, they support channels like Applied Science, and Breaking Taps, and NileRed, and Explosions&Fire, and Thought Emporium, and Stuff Made Here, and BPS.Space, and Jeff Geerling, and Dave from EEVBlog, and Brandon F, and Technology Connections, and Practical Engineering, and How to Cook That, and Ze Frank, and AvE, and the other Mountains of people who make great content that is high quality and well made and carefully done and not feeding into gross addiction systems.
But their hard work does not match Youtube's desire to be a constant churn 24/7 watching ad delivery platform, so google punishes them and rewards the people literally trying to scam children instead.
Safari does not respect the operating system’s DNS settings, it uses its own. I have seen several reports online that you can disable this behaviour by turning off iCloud Private Relay or disabling Advanced Tracking and Fingerprint Protection, but was never able to do so with various combinations.
It used to be that you could click a link in an app, it opens in your web browser where you're already logged in to the relevant service, so you get to see the content the link points to.
These days, you click a link in an app, it opens in an in-app web view where you're not logged in, so you just see a login screen.
Not even the "open in Safari" button works, since by the time you have the opportunity to click it, you've already been redirected to the login page. You literally have to long-press on the link, copy it, switch to your browser, and paste it in to the omni-bar. I don't understand how this god forsaken industry's UX "experts" have all agreed that this should be the universal user experience.
It's especially bad in apps like Slack, where 99% of the links I'm ever interested in are links to our internal gitlab, some internal knowledge base article, some internal tool, or some other thing that requires being logged in to view any of the content. Links just plain do not work almost ever in Slack without the manual long-press -> copy -> switch to Safari -> paste dance.
I find gmail to be the absolute worst offender in this category.
1. They dark pattern you into downloading their browser (they give three options, two of which are chrome)
2. In not launching iOS, I’m not logged into the session I may already have open in safari. Which is incredibly painful for any product that sends notifications via email, which id like to action.
And if I do login, and it asks for an email verification code… fail. I can’t access it in gmail without closing the browser…
3. Their in app browser (or the way they re-write links?) doesn’t seem to play nice with opening the corresponding app. Never seems to work.
Incredibly user hostile.
Is there a better alternative mail client I can use with gsuite?
The lawmakers should be competent enough to recognise this problem and have laws against keeping people within the apps for no reason. (The only reason may be to use the web sign-in).
Imagine on desktop computer os, you click a link within WhatsApp app and it opens a window within that app and load the webpage there, without your login cookies, and makes you login if you need using mouse with on-screen keyboard only…
Probably others doing the same. I always open pages in full safari and use NextDns to block trackers in all apps.
Also, as the name implies, this just looks at the URLs. So it's more comparable to DNS level blocking.
https://developer.apple.com/documentation/networkextension/u...
For now I am using wireguard+pihole on a cheap VPS for all my devices. It’s not perfect (data center IP so some places block it) but it’s good enough for now. When I’m forced to update to 26 will definitely look at Wipr since I tested that out and it was really good other than the in-app issue.
This is not really accurate.
The Safari content blocking API and the WebExtensions DeclarativeNetRequest API are comparable. The difference is that WebExtensions are JavaScript and can run in the context of the web page. With WebExtensions, you get DNR plus arbitrary JS, whereas the Safari content blocker API is native code and doesn't run in the context of the web page. The arbitrary runtime JS is what allows you to do things that you can't do with declarative content blocking rules.
You could also have a Safari content blocker with an optional WebExtension for additional functionality with no usage of DeclarativeNetRequest.
Which apps are being updated to stop using it?
The difference is simply that the Safari content blocker API is Apple-specific, so it can be used only on iOS and macOS, whereas uBlock Origin Lite uses the cross-platform DeclarativeNetRequest API, because uBlock Origin Lite is itself cross-platform.
https://news.ycombinator.com/item?id=44795825
https://news.ycombinator.com/item?id=44335664
https://news.ycombinator.com/item?id=43976898
Edit: at least compared to full uBlock Origin on desktop Firefox. No idea how good or bad are the other mobile solutions.
Most of the time i solve my mobile ad blocking needs by ... not browsing on mobile.
It also now allows blocking even outside of Safari. Though that requires iOS/macOS 26, which I have no intention of installing any time soon, so can’t speak for how effective that is.
https://kaylees.site/wipr-filtr.html
Deleted Comment
Deleted Comment
Dead Comment
Dead Comment
And as a bonus : possibility to keep music videos playing while changing app. (A parameter has to be switched for that though)
With brave you can uninstall the native Reddit app and just use the webapp instead, without ads and stupid-ass "It's better in the app!" or "instead of taking a screenshot, use the share button!" messages.
Off-topic but damn how shitty of them to add their own watermark when you download an image from a post, and then they dare to say "Better to use the share button!" if you take a screenshot of it instead.
Regarding playing music videos (I guess you’re referring to YouTube), while the playback pauses when you switch away from Safari or lock the phone, you can unpause it via Control Center while in an other app, or on the lock screen.
I too hoped for a ublock origin with filters lists, kind of what we have on Firefox or even the lite version for chrome but it's not nearly as good.
And we can't say it's apple fault because other adblockers like Adguard does allow customs lists and custom rules.
I also have the same issue with the back button, where that obnoxiously large Google login prompt show up whenever I navigate back to a Stack Overflow page. But it's definitely not all ads that show up when I navigate back. Looking at GitHub issues, it's only Javascript-based blocking that's affected.
https://github.com/uBlockOrigin/uBOL-home/issues/518#issueco...
Deleted Comment
I use it in conjunction with Adguard and secure DNS, but they also publish configuration profiles for iOS.
https://www.joindns4.eu/
https://www.joindns4.eu/dns-guidelines
Anyone happen to know exactly what the "Protective" option is for/does? I see there is one "Unfiltered", and lots of "Protective + Something" options, which is kind of clear what they do, but just "Protective", what does that mean in practice? Couldn't find any concrete information except "It protects you".
It works everywhere.
Also do you connect to the Albanian VPN all the time? That would mean all the websites you connect to now think your in Albania
I use their WireGuard endpoint with the WireGuard app in iOS. I have the WireGuard app icon next to YT and toggle it as I start using and stop using YT. I’ve set mullvad dns to also block ads etc so if I forget to turn the VPN off it’s not a big deal.
I tried selective routing but it’s impossible to figure out the YT IPs. They overlap with GCP infra and a lot of apps block connections from Albania so they break and the VPN has to be toggled.
If someone knows of a list that only includes YT servers I’d love that because wireguard lets you do routing easily if you have CIDR blocks.
People always say "vote with your wallet" and that's pretty much why people go any other way than "Subscribe and pay Google money" today with YouTube.
Deleted Comment
It does not actually, a large chunk of the money goes to Youtube.
And actually, I would happily pay for either the creator or myself to fund the content hosting. I pay for Nebula for example.
What I refuse to pay for is a company who has routinely fucked over innocent creators doing nothing wrong, and a company who has threatened to burn those people's livelihoods to the ground for triggering false positives in terribly made automated systems that Google leans on to have a higher profit margin.
What I refuse to pay for is a company who uses their absolute control of the platform to enforce a system of Clickbait thumbnails and titles, by insisting on an adversarial system of surfacing content. I am subscribed to a creator, but if I don't click on their next video one of the first times google shows it to me, google will stop showing me content from that creator that I am still subscribed to. If enough people do not click on it in the first couple impressions, google will not show that video to anyone.
Google will also punish users who make such awful and deplorable content as... War history (accurate or not), until recently swearing, videos about aircraft (somehow ended up labeled as a content mill), An end of year summary and highlights video that is exclusively crafted out of content that exists already live on your channel and is not demonitized but when you release that highlight reel it immediately gets demonitized so since you are a big ish channel you ask your account rep wtf and they tell you oh its a mistake it wont happen again. And then, next year, it happens exactly the same, with the added bonus of this time all the content on your channel that wasn't previously demonitized also gets demonitized to go with it, even though your rep once again says this is a mistake.
Remember how youtube used to have so much small time animation, and some of it was great? Notice how it's gone now? Youtube changed what they were prioritizing in the algorithm, and that killed the entire business of small time animation. An entire era of internet media that started before youtube and drove the power and influence of Newgrounds was just wiped out because it wasn't profitable enough. This was separate from the time that youtube also cut ad rates in half without warning.
I will pay for youtube when they demonstrate that they want good content on their platform. I will pay for youtube when, instead of platforming and supporting and paying big bucks for Mr Beast and his awful empty content, they support channels like Applied Science, and Breaking Taps, and NileRed, and Explosions&Fire, and Thought Emporium, and Stuff Made Here, and BPS.Space, and Jeff Geerling, and Dave from EEVBlog, and Brandon F, and Technology Connections, and Practical Engineering, and How to Cook That, and Ze Frank, and AvE, and the other Mountains of people who make great content that is high quality and well made and carefully done and not feeding into gross addiction systems.
But their hard work does not match Youtube's desire to be a constant churn 24/7 watching ad delivery platform, so google punishes them and rewards the people literally trying to scam children instead.
That is why not pay for Youtube Premium.
Deleted Comment
Deleted Comment
Orion is webkit and can be set as default browser.