A new commit suggests that Google is working on a new ‘never-slow mode’ to offer its Chrome users a seamless browsing experience. The feature opens webpages with large scripts faster by restricting resource loading and runtime processing. However, Google warns that this process ‘may silently break content’. This feature is still under experiment, and will presumably go through a lot of testing before it sees the light of the day.
The commit was first spotted by Chrome Story, and it is described as “an experimental browsing mode that restricts resource loading and runtime processing to deliver a consistently fast experience.” The ‘never-slow mode’ comes with a warning though: may silently break content. This is because the new mode doesn’t cut down on memory usage, but its only restricts content on the page you are loading.
The commit goes back to October last year, and is labelled “PROTOTYPE – DO NOT COMMIT.” It describes blocking a wide variety of content including some scripts, fonts, images, as well as pausing page execution at times. The list of caps can be seen below:
- Per-image max size: 1MiB
- Total image budget: 2MiB
- Per-stylesheet max size: 100KiB
- Total stylesheet budget: 200KiB
- Per-script max size: 50KiB
- Total script budget: 500KiB
- Per-font max size: 100KiB
- Total font budget: 100KiB
- Total connection limit: 10
- Long-task limit: 200ms
The commit explains that the new mode, “Currently blocks large scripts, sets budgets for certain resource types (script, font, css, images), turns off document.write(), clobbers sync XHR, enables client-hints pervasively, and buffers resources without ~CHECK~Content-Length~CHECK~ set. Budgets are reset on interaction (click/tap/scroll). Long script tasks (> 200ms) pause all page execution until next interaction.”
As mentioned, Web developers don’t need to worry much just yet, as Google will probably fine-tune this feature a lot and test it vigorously internally before making it available to all users. In fact, it should be a while before we see it available for testing for end users as well.