'How Chrome Broke the Web' (tonsky.me)
Reader Tablizer writes (edited and condensed): The Chrome team "broke the web" to make Chrome perform better, according to Nikita Prokopov, a software engineer. So the story goes like this: there's a widely-used piece of DOM API called "addEventListener." Almost every web site or web app that does anything dynamic with JS probably depends on this method in some way. In 2016, Google came along and decided that this API was not extensible enough. But that's not the end of the story. Chrome team proposed the API change to add passive option because it allowed them to speed up scrolling on mobile websites. The gist of it: if you mark onscroll/ontouch event listener as passive, Mobile Google can scroll your page faster (let's not go into details, but that's how things are). Old websites continue to work (slow, as before), and new websites have an option to be made faster at the cost of an additional feature check and one more option. It's a win-win, right? Turned out, Google wasn't concerned about your websites at all. It was more concerned about its own product performance, Google Chrome Mobile. That's why on February 1, 2017, they made all top-level event listeners passive by default. They call it "an intervention." Now, this is a terrible thing to do. It's very, very, very bad. Basically, Chrome broke half of user websites, the ones that were relying on touch/scroll events being cancellable, at the benefit of winning some performance for websites that were not yet aware of this optional optimization. This was not backward compatible change by any means. All websites and web apps that did any sort of draggable UI (sliders, maps, reorderable lists, even slide-in panels) were affected and essentially broken by this change.
Is this why the Slashdot dragbar for hiding comments below a certain upvote doesn't work on my phone or tablet?
If so, get with the picture and fix it...Slashdot!
(-1: Post disagrees with my already-settled worldview) is not a valid mod option.
Maybe you should fuck off with your website that modifies scrolling.
"Now, this is a terrible thing to do. It's very, very, very bad, believe me, folks"
-----
Sorry, I'm only a 1336 h4x0r.
The mantra of the Chrome team was once "Don't break the web".
This hasn't been true for some time now. Why? Because power.
Take (for example) Google's newfound habit of "updating" their webfonts. How many layouts have they broken in the process? Millions.
Google needs to rediscover the value of accepted standards. But there seems to be a new management team calling the shots.
And they're mostly d*cks.
if you use Chrome.
As I'm firmly in the 'fuck Google and all of their products' camp, I hadn't noticed.
It doesn't sound like they broke the web; surely other browsers carried on working just fine? They broke their own product.
In the free world the media isn't government run; the government is media run.
...developers should provide their own initial value for every parameter defined in the standard, and those non-standard parameters available in any popular implementation?
Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
Isn't it funny how the bigger companies seem to just "know better" than the rest of the Internet engineers?
This wasn't a default, it was a standard. Google was the one that decided to add a passive option in the first place, and when they defaulted it to true, they violated the standard. Sites that were broken by this change were doing everything right when they were written; their only mistake was not religiously re-checking their site against every new Chrome Canary build to make sure their standards-compliant site hadn't been broken.
Dominant market position - check.
Starting to define its own browser-specific functionality - check.
Telling developers they should use their company's browser-specific functions to improve performance - check.
Meet the new boss, same as the old boss. Anyone who didn't see this coming the moment Google forked Webkit simply wasn't paying attention.
#DeleteChrome
Years ago, websites were designed so that they rendered properly with Internet Explorer. Microsoft didn't have to follow any standards because they had the most widely used browser and Fuck You if you don't use IE.
Now Chrome is the most widely used browser and Google has decided to become the new Microsoft.
It seems like a reasonable change to me.
Scrolling performance often sucked major.
Half of sites that didn't update for performance reasons in the last year? I'd bet that's around 1% of the web.
In exchange the other ones all work better.
Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
The web isn't a development platform, it's a more advanced version of Hypercard. It sucks, it changes to account for the constant sucking, and web "developers" want to make something amazing and be done with it, but you can't make something amazing in Hypercard 2.0, you can just make some presentation. The web isn't designed as an application layer, it's designed as a presentation layer. Stop making apps in the web, they are slower and generally garbage.
This whole thing sounds like it was written by a gisgruntled ex-employee.
-- Cheers!
You are free to browse as we tell you.
You are free to browse as we tell you.
You are free to browse as we tell you.
Mr. Hu is not a ninja.
Exactly.
Google is just adopting Microsoft's "Embrace, Extend, Extinguish" tactic against its opposition because it has the market share to do it.
That, and Google's attack on free speech, are the reasons why I canceled my Google account.
Running with Linux for over 20 years!
This post makes a good example of why redefining things in contravention of accepted standards is very often a bad thing.
There is no XUL, only WebExtensions...
- I have been using 3/4 different browsers on a daily basis since quite long time ago. I use each of them to visit different sites where I store my credentials/not. Usually, I rely on the most updated versions and, until some months ago, I rarely had problems to access relevant enough sites with any of them. But lately, I am having lots of troubles in quite a few sites every time I use any browser different than Chrome. The problems are mostly related to videos, mainly streaming them (from relatively big TV networks, not a single issue in crappy sites!); but I also see other problems like (JavaScript) functionalities not working properly. Have people completely forgotten about cross-compatibility or what? Now!! When all the browsers behave almost identically!
- After having been using Windows as my primary OS for quite long, I have recently moved my main machine to Linux; I use various distros, but mainly Ubuntu 16.04. During the last few weeks, I have been observing a curious issue in Chrome: the upper minimise-maximise-close buttons have been moved (not 100% sure if they were there all the time) from the Linux-typical LHS to the Windows-typical RHS! Why?! It is kind of weird to find those buttons in the same place when using any other other browser, folders or whatever, but not in Chrome! Any more-experienced-than-me Linux user care to comment about this issue?
Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
It's very, very, very bad
It explains:
Basically, Chrome broke half of user websites, the ones that were relying on touch/scroll events being cancellable, at the benefit of winning some performance for websites that were not yet aware of this optional optimization
OK, half the user websites? 50% of the web right? The linked article says:
We looked at the percentage of cancelable touch events that were sent to a root target (window, document, or body) and determined that about 80% of these listeners are conceptually passive but were not registered as such. Given the scale of this problem we noticed a great opportunity to improve scrolling without any developer action by making these events automatically "passive".
Looks like the chrome team did some basic profiling, figured out 80% of the listeners are actually passive. Still they should not have touched the default and educated the website developers to register conceptually passive listeners as passive, right?
Google gives some motivation for this:
We believe the web should be fast by default without developers needing to understand arcane details of browser behavior.
There are some plots and more profiling data there.
They could have done an RFC and got the standards updated in the next batch for this. But still, as evil behaviors go, this is not "dos is not done till lotus wont run" level. Does not even come to working around bugs in IIS in IE to make all other browsers crap out level of evil.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
It should, but now that Google is the new Microsoft, I guess abusing that market dominance must just be something that happens to large companies.
The world's burning. Moped Jesus spotted on I50. Details at 11.
How about you fuck off the web, and go install a "native app", and get data-mined.
It's more than you deserve.
Yes, they should avoid installing native apps. Instead, they should use a Google-branded browser. That will DEFINITELY avoid data mining!
Can someone explain why I have to restart Firefox at least once a day in order to play back video of any kind?
And why doesn't Wunderground render properly on Firefox? It seems that everything is a lot slower these days further convincing me that trying to do anything online that used to be done with a dedicated program is a bad idea.
I've noticed with Chrome for quite a while now that the slashboxes on the right don't scroll with the rest of the page, making them useless. Is this related to the change described in the article, or is this something different?
It sounds more like they broke chrome.
I came from Dos/Amiga to Windows, the very first time I used Internet Explorer I didn't want any part of it.
Not used to WWW I went to Microsoft.com found a game that looked decent and downloaded it (I thought). ActiveX kicked in and was installing something I hadn't looked at first, so pulled the computer power cord.
The second time I used IE was to download Netscape.
Google is the new Microsoft, Chrome is the new IE.
Why settle for being merely evil when you can be so much more?
I'm surprised Google hasn't found a way to use that feature to ferret out some unmined corner of privacy.
I've never used Chrome. It flows in the same vein as not just up and giving my info to Google, but Google is welcome to grab it elsewhere.
On a site running Google's analytic javascript!
It's idiocy like this why I am compelled to have at least 3 different browsers on every machine I use. Because it seems like every time there's some kind of update, stuff get horribly broken and I need to switch to a different browser for an extended period of time. It's to the point where I've purchased an xmarks premium subscription, so that all my bookmarks gets synced and I don't have to jump through hoops when the inevitable switch happens.
It's so frustrating the way companies think that they are allowed to have defacto control of the entire internet.
Fuck you Google, and fuck you Microsoft before you.
When dragging is the standard way to scroll - as it is on mobile
True, a slide usually means a scroll. But a slide beginning with a long press is also the gesture on Android to move an object, such as a shortcut on the home screen. Why should a web application designed for browsers on Android not support a gesture consistent with the rest of Android?
Well, they had good teachers, when they were younger.
On y va, qui mal y pense!
I hate endless scrolling, so if that's what this is about, I agree!.
Whenever I click a link on a products page of an endless scroll, add to cart, and hit back, I need to scroll back down with the slow loading and it makes me angry.
Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
Is that why the map on this website doesn't pan reliably on Google Chrome mobile? 7-Day Forecast for Latitude 43.66ÂN and Longitude 70.27ÂW (Elev. 7 ft) I just tried Mozilla Firefox mobile. Works much better in that app.
It's more effective than being snarky from momma's basement.
"Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
An important thing to remember about Internet Explorer is that on of the reasons why it rendered everything is because it was happy to take extremely garbage, malformed HTML and find a way to make it work. You could make a compliant site, but IE made it easy to be lazy. It was the web designers that didn't have to follow standards—IE would render standards compliant sites well too.
Don't get me wrong, IE was a blight and I'm glad that it's basically dead. The user experience was terrible and it made the web a worse place to be. But in some ways, it was the exact opposite of what we see here: a system so fault tolerant that it doesn't care what you're doing.
Any website that has draggable UI, while also being scrollable in the same direction, on mobile device - is worth being broken.
You mean "is already broken". I have a website that I use on occasion that includes a map window on the main page. The map window allows for both scrolling in all directions, and zooming with your fingers on a mobile device. It is far too easy to accidentally zoom the map to fill the window. Once you do that, it is impossible to access any other part of the page as all scrolling will only move the map, and all zooming will only zoom the map. Your only recourse at that point is to re-load the page (and lose all data you've entered so far). This site works great on a computer, but is absolutely hopeless on mobile devices. Unfortunately it's also a website related to travel planning, so my most common use case is to use it on a mobile device.
"You either die a hero, or live long enough to see yourself become the villain"
Once upon a time, Google was a tech company that used advertising as a means to an end. Now they're an advertising firm with an end to a means?? Does that actually make sense? I dunno.
I miss Google Chrome Frame. It helped me cope with the disgusting soul-rot brought about by IE. Hopefully the day won't come when there's a need for Firefox Frame, though it may already be here?
And when IE was doing this, the standards weren't well established or even broad enough to cover most website features.
HTML5 was only ratified a couple years ago. Most of what HTML5 standardized was being done adhoc by all the browsers in the form of DHTML etc.
Actually Google has innovated on this, they added an "Expoit" step.
It's more effective than being snarky from momma's basement.
Actually, it probably isn't.
Fanatically anti-fanatical
Firefox sucks. Use Pale Moon .
Although everything gets slower and slower as they cram more and more into websites. Gotta have ads, and flying banners, and things minimizing, and embedded video auto-starting, and all that shit. For some reason.
My beliefs do not require that you agree with them.
- A UI that lets you reorder a list by clicking an up/down arrow and it immediately moves without reloading the page
OPTION #3 for the WIN!
If they really cared then they would fix the Chrome bug on Android, related to soft keyboards. Essentially the keyboardEvent.key is broken there and they donâ(TM)t care to fix it. Only platform where this does not work. >:(
Jumpstart the tartan drive.
That doesn't help when new parameters are added. How am I supposed to set a value for a parameter that doesn't exist yet?
Because they can change...
Sure, in the same way any aspect of an interface can be broken by non-backwards compatible changes. I think what you meant to say was:
Never rely on any code you didn't write.
A 'standard' is only a standard until someone else comes along and decides it doesn't suit them for whatever reason, then they change it, ignore it, or otherwise adulterate it as they please. Then it's not a 'standard' anymore. Wash, rinse, repeat ad infinifum. This is the way things always go with tech.
Years ago, websites were designed so that they rendered properly with Internet Explorer. Microsoft didn't have to follow any standards because they had the most widely used browser and Fuck You if you don't use IE.
Now Chrome is the most widely used browser and Google has decided to become the new Microsoft.
But keep in mind, Microsoft no longer dominates the browser market share and there's a reason. It was so difficult for web developers to make sites IE compliant that many non-commercial sites such as might be found at universities etc., recommended Firefox and when Chrome came out, Chrome or Firefox. It turns out there are enough non-commercial sites on the Internet that people started using non-IE browsers just cause Firefox or Chrome seemed to work better with all sites, and not just big commercial ones. If Google follows Microsoft's path, and (according to the article) half the websites on the Internet break in Chrome, it will drive people to Firefox or Edge or something else. There is competition in the free browser market!
If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
At one time, people were talking about IE 5 on MacOS as being a really good browsing experience. At that time, Apple didn't have its own browser, so it was competing against Netscape and winning handily.
The problems came when they decided to stand still and not spend money on trying to keep IE the best it could be.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
An important thing to remember about Internet Explorer is that on of the reasons why it rendered everything is because it was happy to take extremely garbage, malformed HTML and find a way to make it work. You could make a compliant site, but IE made it easy to be lazy. It was the web designers that didn't have to follow standards—IE would render standards compliant sites well too.
Don't get me wrong, IE was a blight and I'm glad that it's basically dead. The user experience was terrible and it made the web a worse place to be. But in some ways, it was the exact opposite of what we see here: a system so fault tolerant that it doesn't care what you're doing.
Bahaha BS. Not attacking you but IE 6 most certainly did not render standards compliant sites. In this decade it actually started to do so. But many many organizations stuck with XP because IE 6 and IE 7 was so widespread across the enterprise that the sites would work in nothing else. I remember when Ebay also only worked in IE and not Firefox. Firefox was too small and the world ran on IE not web standards etc.
If you were a developer back then you had to increase your time 300%. You write the site for web standards. Then rewrite it for IE 6. Then rewrite it again for IE 7, BUT the client only wanted to pay you to do it once. Grrr
Which is why alot of cheap Indian shops just wrote it for IE 6 as it cost too much to make it standards compliant AND have it work in IE without formatting bugs and javascript dying. It was a terrible terrible mess that lasted for 12 freaking years.
http://saveie6.com/
... Safari on iOS
Someone overestimates how much value one random person’s Google account is to Google’s bottomline.
Are you sure? I think it's just as effective, as in "zilch" effective.
...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
No, it's not standard. addEventListener is described here: https://www.w3.org/TR/domcore/...
As you can see, there's no "passive" property to be found. It was instead described in a Mozilla- and Google-owned fork that's still not standardized by the larger body of W3C members.
They've been doing this a lot recently. Specifically, Anne van Kesteren is cancer.
Wonder what the public key field is for?
As I recall, there was a clear standard: https://www.w3.org/TR/1999/REC... and Microsoft choose to ignore it.
He didn't really do it to hurt Google... He did it benefit himself. Whether his evaluation is accurate is another matter.
... with most websites clocking in at north of 2 megabytes per pagecall these days. Every pageload more than Amigas entire operating system. Think of it. Blobs of bloated mess, delivered by droves of refferer-loaded libs and toolkits,eating away at 1gb/month mobile data quotas in no time, clicked together by clueless interns and even more clueless marketeers in the worlds most favorite web toy WordPress and it's unbelievable hodgepodge of plugins.
Google needs the web to work and if the change described is so damaging they probably regret it themselves by now.
Let's not forget:
Because of the push for the all out web, also brought on by Google, we're finally getting web components with native HTML imports, templating, CSS grid and other niceties, and even MS are finally playing ball with the community. The result being that bootstrap and many a polyfill and JS animation and bloated serverside logic can be dropped entirely.
If there's one default I have to take care of as an trade-off, I'm definitely in. This default having been changed by Google is the least of the webs problems. Trust a professional Webdev on this one.
My two eurocents.
We suffer more in our imagination than in reality. - Seneca
Google are working to make the web a better place for me, an end user. And, as an end user, I can only see this as being a good thing.
Not in any sort of stable API... like HTML / Javascript are supposed to be. Especially since javascript doesn't support named arguments (like myFunction(a=12, b=14) ), so it's not safe to just "always pass the third argument as 'false'" when different browsers, implementations, and even different versions therein may have a different third argument (since it's not part of the standard).
A "Sane" way to do this would be to create a new method, or a new call. Like, if ( object.addEventListenerEX ) { object.addEventListenerEx(...., false) } else { object.addEventListener(...) }. But they didn't do this. Just more of how internet explorer made the web so horrible, google has taken over that department.
javascript doesn't care. You can pass an infinite number of arguments in the caller, and it always works. The language was designed thus-so so be extensible.
Try it yourself, in firefox type control+shift+k.
In the console do this:
function blah(x) { return x; } blah("hello", "ALL", "OF", "THIS", "IS", "IGNORED")
And you'll get no error, just "hello" as expected. The problem is that if firefox adds a third argument which has a completely different meaning than the third argument in chrome, then you need complex version testing all over the place. This is why it's better to add a new function than to rely on optional arguments.
Chrome broke Chrome. I changed to Firefox.
Only boring people are ever bored.
At this point I can count on Wunderground to be broken more than 50% of the time. Differently on different days, at different times of day, and on different clients, but broken most of the time. (Trying to change a display preference? Scroll through times in the 10-day forecast view? Select conditions from a controlled (airport) station instead of a random PWS sitting in someone's backyard next to their dryer vent? "We'll be rolling out an update in a couple of months.")
But not to worry. They're maintaining a steady pace of innovation, and soon they'll be broken 100% of the time on all clients.
That's why Google rolled out Chrome. Otherwise what's the purpose of Chrome when we have many Open source browsers?
Casteism
Years ago, websites were designed so that they rendered properly with Internet Explorer. Microsoft didn't have to follow any standards because they had the most widely used browser and Fuck You if you don't use IE.
Now Chrome is the most widely used browser and Google has decided to become the new Microsoft.
And they fuck that up by not breaking the web for everybody else, but only for those who use Chrome to visit those sites that expect the behavior every other browser still has. New motto: too dumb to be evil.
Of course news about a fake are Fake News.