A longer commentary on chromecalypse

web

I think that many people on threads related to the recent Chrome 79 bug are completely missing the important points and are instead doing the “place the blame on developers who should known better” game which is a bad approach to talking about what has happened.

LocalStorage, webSQL, IndexedDB have been rock solid solutions for hybrid apps for probably close to a decade. Data eviction seldom happens for hybrid apps. These are stable APIs and have been working reliably for many years. It is not as if the developers have flocked to a new shiny unstable thing and then got burned by it not failing to work as advertised. This bug completely breaks the way the web platform stores data. It doesn’t matter if these APIs should only be used for caching purposes, that is not how the spec puts it and not how people been developing hybrid apps for years. Google owns Android and Chrome, they know that those hybrid apps are storing data in localStorage. They’ve broken something that was stable. I wonder if people would be placing the blame on third-party developers if Apple or Microsoft made shipped an update to windows or iOS that destroyed the sandbox filesystem.

There is massive damage happening in the real world because of this. From vet hospitals losing animal vaccination data, a process that can’t be repeated. To small business losing their financial data. Users faced with an app with zero data, begun been trying to reinstall the apps in hopes to fix this, which only caused further damage as the data is now unrecoverable. Planting the blame in “developers who should known better” is a complete lack of empathy to both the users and the developers who’ve been affected by something completely out of their control. There are developers pulling their apps out of the Google Play store because the onslaught of bad reviews will kill them or because they can’t provide a solution for a bug that happens in layers beyond their control. The bug is not fixable by the app developers. If you have an app that was affected by this, there is nothing you can do.

And for the “developers should use it only as cache” people out there, this affects this use case as well. Using localStorage as a temporary location for data while you’re offline and pushing this data later has been a best practice for a long time. This bug will erase this temporary data. All those field workers, all the remote data collection, goes poof as soon as the phone goes back into mobile coverage and auto-updates chrome before the app have the chance to sync it up.

Lastly the chrome team is not, in my own personal opinion, having the correct approach here. They failed. Their automated test should have flagged this. There should have never been a release with this bug. Treating responsibility like a hot potato and saying “you developers should have tested the beta and reported back” is acting like they don’t have ownership over their own project.

Comments? Questions? Feedback?

You can reach out to me on Twitter, or Mastodon, Secure Scuttlebutt, or through WebMentions.

Mentions