3 ms·
That depends on the implementation, but its just a fundamental technology difference. On the web, the default way to do things is to use a bunch of HTML element
by kroltan 3y ago
That depends on the implementation, but its just a fundamental technology difference. On the web, the default way to do things is to use a bunch of HTML elements and whatnot, which are user-agent-introspectable, even if they are modified using a blob of code.
With apps, you kind of by definition only have a blob of code. As an user and with a sufficiently advanced operating system, you can block some outside-world interactions like internet connections, but the app only has to give you a render target whose pixels can be drawn to arbitrarily. Some apps even use integrity verification features from the OS vendor to check if they haven't been tampered with, that is much harder to do on the web.
Which is incidentally why there is so much interest in high performance web programming and being able to draw arbitrary pixels to a render target (hello canvas/webgl/webgpu). Expect content blockers to become way less effective in the coming years (even ignoring the big obvious attacks like Chrome's Manifest v3).
- geysersam 3y ago> Expect content blockers to become way less effective in the coming years That's s very sad and probably very accurate analysis! Wonder if the arms-race will give rise to other kinds of add blockers that use image recognition to identify ads. But that still requires rendering the ads (even if only in the background), removing much of the benefit of ad-blockers.
- kroltan 3y agoI suspect some might be able to rise up by injecting themselves at framework level, since it's very likely that the programs will still keep some sort of in-memory representation. Though I don't think that injecting code into other WebAssembly blobs is possible with the security models we have today. The surefire way would be an external application that uses OS APIs to fiddle with memory directly (bye bye mobile content blockers). But whatever form it takes, it would have to be programmed to operate on every framework available, so it's way less universal than writing a CSS selector or URL regex.