Frugal Web Browser: A Design Experiment
frugalweb.xyz
frugalweb.xyz
I only wish it could detect when asshole newspapers do that last minute mutation of the DOM to put bullshit divs in front of the article. It makes me play a button-click race to beat the rendering of the bullshit div to reader mode.
Btw-- why do asshole newspapers actually send the article content before adding the bullshit divs? If you're gonna be evil, just send the first paragraph over the wire and make it appear as if the rest of the article is just one email sign-up away.
More often than not, going into reader mode, then hitting refresh will fix this! (works for NYT)
Wouldn't the reader still work if they just put a div over the content? And couldn't you just delete the offending div in the DOM instead of racing against the Javascript? Or just disable the Javascript entirely and re-load?
1. Something renders that appears to be the entire article. Winning the FF Reader Mode race confirms it is indeed the entire article.
2. Bullshit Div appears blocking my access to content. First paragraph of said article is greyed and now ends with an ellipsis, or "To read the rest", or some such bullshit text.
3. If I lose the race, FF Reader only shows me that first paragraph.
To ignore one of the pillars of the modern web seems silly to me. I understand that a lot of sites have become bloated and resort to chunking in JS, but I disagree that JS is used as just seasoning on top of a website.
A lot of people think that "web browser" has some fundamental identity with "hypertext document viewer", but that's not what "the Web" is — the web is the set of resources you can request over HTTP; not the subset of those resources that are formatted in HTML. A "web browser" is fundamentally "a tool for letting you navigate to the resources at HTTP URLs" — essentially an address-bar with a "meta-renderer sandbox" attached.
(Remember RealPlayer, QuickTime, and other plugins you could install that would enable your web browser to "natively" render new content types? Those things are all also "the web"!)
And to put an even finer point on it: if you put a PDF, or an SVG image, at a URL; and that PDF or SVG image contains clickable links — then that document is a web hyperdocument. A web of PDFs is just as much a web as a web of HTML documents is! So not even "publishing hyperdocuments on the web" is necessarily coupled to HTML. (Tangent: remember VRML? It allowed clickable links, too. VRML was a hyperdocument format!)
(Are plaintext files that happen to include textual URLs, hyperdocuments? If so, then a gopher or FTP client would also technically be a "web browser." That's going a bit too far, I think.)
How will users view these documents in a timely manner (i.e. not on the W3C's glacial schedule)? Whatever your answer, it's going to necessarily involve some kind of arbitrary code execution at some point. Whether that means Javascript; Java/ActiveX applets, or PPAPI (NaCl); Chrome Apps or other in-browser centrally-managed-lifecycle apps; installable NPAPI plugins like Flash; or COM component servers (as seen when e.g. IE/Edge is navigated to an .xlsx file URL.)
Presuming the user discovers they can't view document X, and therefore goes and hunts down tech Y and installs it to make X viewable, all such "tech Y" are equivalent in the sense that they're someone's arbitrary proprietary code, that the user is rolling the dice on hopefully allowing them to view X, while not doing anything other than allowing them to view X.
It's not. The majority is just textual content I want to read. Possibly with a few images.
I don't need Javascript for that. And being forced to use Javascript for it is the exact problem.
For the minority (something clever that requires user interaction beyond reading text and looking at pictures, this "non-standarized", maybe even "proprietary" stuff) Javascript is just fine.
But don't force me to use Javascript for the rest.
The majority of web developers think the semantic web is a waste of time. (I don’t)
Pushing your point further, you’re saying that every new development that could be shareable over the web gets published as a standard and that browser developers build implementations of those standards, before the content is released. By the time that’s happened, your mind map will be out of date.
When anyone creates a novel representation someone will need to develop new code that renders it. Whether that goes into a native browser or a Java applet or a JS script, it’s still arbitrary code downloaded from a source you need to establish trust with.
You’re taking this too far. (And I admit my illustration smudges both your and my point).
The problem we really have is that advertising and SEO have corrupted the web to the point of unusability. If we (google mostly) hadn’t monetised individual tracking, we wouldn’t need the worst bits of what people do with javascript. Publishers are fighting for your attention because that creates surface for advertising. And advertising creates revenue. If they could sell content directly rather consumers wouldn’t get caught in an attention war and websites would be less intrusive and demanding.
Javascript itself isn’t the problem. I’m not convinced that scripted documents are the problem. The problem is surveillance capitalism and the attention ecconomy.
That mechanism doesn't necessarily need to involve code being delivered directly from the same server the document is coming from, mind you. It could instead involve an out-of-band app store, where accessing a URL zero-installs a heavily-sandboxed plugin required to view it, and loads it into the browser. (Implementations of this: iOS App Clips; Sandstorm grains.) But those apps are usually still created by the same developer as the document anyway, so there's little difference between this out-of-band zero-install app approach, and having Turing-complete web documents. Either way, the developer of Boogle Maps can still mine bitcoin in the background while you have the map loaded.
The B2B productivity/collaboration app space — where you can expect that all your users are mainly using full PCs — is firmly all-in on in-browser web-apps, with their mobile experiences being second-class afterthoughts.
It’s also a side effect of the demands of the attention economy fighting against Apple’s refusal to allow web notifications on iOS.
Basically, I don't see consistent patterns of good or bad between web and native apps to justify your comment that "apps are better at being apps than a web browser".
Most GUI apps, native or otherwise, get associated with a brand. Especially the good ones. I'd buy Ableton swag, I love the brand that much.
The VAST bulk of web apps are NOT browser version specific. It's largely only bespoke, internal corporate apps that are tied to one version of a browser.
Most of the problematic javascript that exists isn’t “content”, or even “apps”, it’s surveillance capitalism, attention capital and advertising.
You'd obviously want to use a different browser to run sophisticated webapps.
I would say that if you are using a webapp, you are not really "browsing the web" anymore, but simply interacting with an application in much the same way as if it was a local one.
Also, this kind of a browser is not really for the general populace.
I mostly browse with Javascript disabled. If a site doesn't work without Javascript, I have a shortcut key to enable it.
* Google (which uses JS for autocomplete and faster results)
* Gmail (uses a lot of JS)
* Media: YouTube/Twitch.tv (they use JS)
* Chess (chess.com, uses JS)
Yes, I sometimes read News or HackerNews and Reddit but they also use JS (comments, upvotes, inline media playing infinite scroll).
As much as I would like for this to be true, it is unfortunately wrong. I routinely browse with the NoScript Security Suite add-on, and more than half of the sites I visit require JavaScript. In some cases the page will not even load. In many cases the page will load, but none of the links will function.
I wish that web design standards required non-JavaScript enabled browsers to function, but I just don't see it ever happening.
The fact that you see things that look like links, but don't actually function without JS, strongly suggests "webapp" --- I bet those are "links" that you can't copy nor open in a new tab either.
Note that I am speaking of content sites; apps I am excluding from this reckoning. Among things that could rightly be called apps, yeah, it would be more than half that require JavaScript, but not for documents.
I should correct that. Many web developers likely do their best to build to whatever standards/ best practices they can. Management, design specs, clients, etc... rarely if ever care about those standards and don't pay/ allocate time for conforming to them.
There are a fair number of web developers who are lazy too, but I suspect web developers care about best practices more than most other stakeholders.
Sure, you can make a non-JS fallback version of your interactive elements, but that often takes twice as long, and since 99.99% of web users have JavaScript enabled, it’s simply not worth the time to build separate versions for those 0.01% of users who don’t.
This is largely just not true and the results are often no-entirely-legal. The majority of interactive controls can be supported by extending and styling bone stock html and using progressive enhancement. The only way it takes less time to roll your own solution for most of these components is when you don't bother implementing accessibility for your controls.
That isn't just a few esoteric users at this point, you are now brushing up against the ADA and have just exposed your site to potential legal action, lawsuits, and a big honking fine. (Not to mention the fact that you being an ass to a bunch of people who need that functionality.)
As for the ADA, there’s nothing in there that demands your site works without JavaScript, it just has to be accessible to screen readers and the like, which all support JavaScript.
I read a lot of web dev subreddits where many/most members are newer developers. Virtually all of the sites they post render nothing at all with JS disabled. I point this out and suggest some ways to fix it. A few have appreciated the tips but most just don't care at all. I'm not sure how to effectively reverse this trend.
But the issue with it is all the compression happens on their servers before reaching you, which is troublesome from a privacy standpoint. I wish there was a browser(or a selfhosted instance) similar to Opera Mini which can compress pages before it reaches the client
Hell, Text-only mode sounds like the way I already consume a lot of news articles via my browser's reader mode.
A) Leak privacy by first having to check urls against a centralzied db?
B) Add slowness to every site due to having to request metadata from the centralized service first?
Good luck putting your thumb up in a try to eliminate the sun. Absolutely never gonna happen.
Either this project is someone's wishful thinking of what a perfect world looks like to them (in which case I'm not interested), or this is actually a serious attempt to enforce arbitrary rules on web sites, and the authors are trying to do it at the expense of the users, in which case I don't care either.
Just a info. The 2d canvas of Chrome at least render to a texture layer only by appending commands to a display list that is only executed on the final stage (merged with all other commands) on the final stage in the gpu process.
So it is as fast as it can get.. for instance its basically the same for the Chrome painted by C++ and you actually have to use canvas primitives to paint widgets.
Once (if) WASM have access to something like this, it will be a canvas, the same one you have bindings for javascript.
So i would not call it a hack, as you basically have raw access to paint primitives that are very optimized.
What we need instead is more control on what can be accessed with javascript. Things like screen and window size, locale etc. should all be spoofable and configurable by default. We also need a sophisticated firewall and control matrix right in the browser.
I can already do a similar thing for mobile apps on android. I spoof what permissions they can use and what data they actually get. That can include sophisticated things, such as stripping EXIF data from any image before an application gets access to it. Or a simple popup that asks whether an application can access the clipboard once.
I can't even fathom how most people live without such finegrained control. The only hope is a new browser that respects the user from the beginning.
As soon as you want this kind of extensions you probably need a browser based on Chromium or Firefox to have any shot at having an addon ecosystem at all.
Frugal yes, but it has to work.
I mostly browse with Javascript disabled and have a shortcut key for enabling it when a site refuses to render.
Like it or not, most sites use JavaScript these days, and blocking it will often give you pages that are subtly and strangely broken, and if the end user is not a web expert, they might not realise they need to turn on JavaScript to fix it.
I’m not unsympathetic, I ran Firefox with the NoScript extension for years, but I eventually had to give it up, because I’d have to spend time figuring out what to unblock on most new sites I’d visit, just to make the them render properly.
In my spare time I develop Haiku open source apps, my latest research/experiment/playground (as of 1st Jan 2021) is writing a new browser from scratch (that is not WebKit based), C++20 features, Actor model for multi-processing.
*I know that's not possible currently