Slashdot Mirror


'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.

3 of 283 comments (clear)

  1. Absolute power corrupts absolutely by Anonymous Coward · · Score: 5, Interesting

    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.

  2. So, you're saying... by TuringTest · · Score: 3, Interesting

    ...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.
  3. TL;DR: Tard Tears From Web "Devs" by NicknameUnavailable · · Score: 2, Interesting

    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.