Since I work on the Engine part in Desktop, this blog post will be slightly more “engine-ish”:).
At first, I would like to present to you our latest Opera Developer build – 21.0.1432.5, which contains a few important fixes – Adblock is fully working again, tabs on Mac won’t do the Harlem Shake on hover anymore, and a couple of crashes are fixed. You can check full list of fixes in the changelog.
Today, we’re also giving you a sneak peek of our latest features connected with improving start-up time – especially helpful when restoring session with many tabs. There are few different approaches – they are all available as separate feature-flags at opera://flags:
- #delay-onload – This one is my favorite – after restoring session, onload JS events in background tabs aren’t fired until a tab is activated. It might not sound that important, but during tests this feature was giving the best results – both in loading times, and CPU/memory usage.
- #extended-lazy-session-loading (requires #lazy-session-loading being on) – causes that an active tab + the configured number of tabs (still working on the number, for now it’s 2) is being loaded normally when restoring the session. When any of tabs finishes loading, it triggers the next one to start loading, until all tabs are done. It takes more time to fully restore session, but the start-up itself is much quicker it and takes less CPU.
- #restore-contenteditables-state – the content of elements with contenteditable=”true” is restored on session restoration/history navigation.
- #tab-hibernation – If a background tab is inactive (does not load anything including XHRs, plays any media, plug-in is not streaming any data, or a script is not changing page’s title/favicon) for 40 seconds its process gets suspended and swapped out (causing process memory usage drops significantly). Swapping out happens instantly on Windows and is driven by OS on mac. If the process is shared between couple of tabs, all of them have to be inactive for this to kick in.
- #session-tabs-serialization – all pages from opened tabs are serialized on HDD when closing the browser and are loaded from there instead of the network when restoring the session. This feature should be especially useful for the users with low bandwidth network.
They are all still under heavy development, but, of course, you are very welcome to test on your own each one of them right now. We’re very curious about your impressions and feedback – also, if you found any issue with specific page, please report URLs and feature name.
PS. remember you have to restart browser to make flag active – so, for example #session-tabs-serialization, which makes a lot of work during browser shut down, will be applied after second restart.
- AdBlock is working again when opening pages in new tabs
- No thumbnail is created for new speed dials