I’m very happy about this release. Thanks to hard choices that we dared to make in the past we are now breaking new ground and giving GNOME some of the tools it needs to be the premier free software operating system. It’s been a long way since I spent an entire GUADEC porting good old epiphany to this newfangled thing called “WebKit”, and what a ride it has been.
There’s a lot to talk about, so let’s get started.
For the first time in this release, Web uses by default the all new multi-process architecture known as WebKit2. The advantages of such a design are well known by most, but here is a brief list of what this means for us:
- Stability: we now run all the WebKit code in a different process (WebProcess) than the UI code (UIProcess). Most crashes, by far, happen inside WebKit, so this will make the application a lot more stable. When crashes happen, you’ll get a message explaining how to continue browsing, just a reload away. Note that for 3.8 we run all the web pages in the same WebProcess, just like Safari for OSX did in 5.1, but we plan to move to multiple WebProcesses in the near future.
- Responsiveness: not only most crashes happen inside WebKit, but most of your CPU (and GPU!) time will generally also be spent there. By moving this processing away we allow the UI to be always ready to react to your input, so tab switching and scrolling are now super smooth. You’ll have to see it to believe it, but trust me when I say the improvement is enormous.
- Plugins: in WebKit2 plugins run in their own process (PluginProcess). In general this makes the browser more robust against the frequent crashes and hiccups of some plugins, but for GNOME in particular it means something even better. Flash, as our more loyal users know well, has not worked natively in Web since we switched to GTK+3. The Adobe plugin is stuck in GTK+2, and since using both libraries at the same time in one process is forbidden we have been forced to rely on things like nspluginwrapper for a while. Well, not anymore: we compile our PluginProcess with GTK+2 precisely for this reason, so Flash works again out of the box.
- Security: finally, by isolating all the web content from the application we reduce the possibility of malicious code having access to sensitive information. This will be greatly enhanced in the future with the sandboxing of the WebProcess, but 3.8 lays the first stone for a safer browsing.
Our WebKit2 port and Web backend have been more or less in continuous development for more than 2 years. This is the result of a lot of hard work by all the WebKit contributors, the Igalia WebKit team and the Web developers. Despite being a collective effort, like most free software, I want to thank Carlos García Campos in particular for leading the WebKit2GTK+ effort with so much energy. His hard work and perseverance were instrumental in making this happen, so the usual beverages or thank you notes are more than deserved next time you see him.
All this would be more than enough for a single release, but there is much more to see. Let’s keep going.
As advanced during the last WebKitGTK+ hackfest, Web 3.8 brings a straightforward way of launching a temporary and private browsing session, free from any data that could possibly identify you, that will leave no trace on the hard drive once you are done with it. Just go to the application menu and click “New Incognito Window”, you are all set.
Undo close tab
You closed a tab just to realize you actually needed to check one more thing in there. You pressed the wrong key. Selected the wrong menu item. Nevermind, in 3.8 Web will remember the tabs (and windows!) you have recently closed, and bringing them back to live is as easy as pressing Ctrl-Shift-T or selecting “Reopen Closed Tab” in the application menu.
You want a shiny new search bar? We have it:
A handy new tab button in the main toolbar? Got it:
Vastly improved Web App icons and titles? Yep:
Fancy HTML5 media controls perhaps? You bet:
Plus less clutter in the gear menu, improved theming, simplified Preferences dialog, and many more small UI tweaks.
3.10 and beyond
As usual we are already working on the next major release. For 3.10 and beyond you can look forward to:
- Multiple WebProcesses. This is still under development, but at the very least we think we’ll be able to provide either the current “just one” model or the “one per tab” variant. Ideally also the “one per domain instance” that Chrome uses by default, but this one will be trickier. Stay tuned.
- Deeper GNOME integration. Hooking into the new Shell search APIs or the Settings privacy controls is high in our TODO list.
- Overview improvements. Animations? Access to recent history or recently closed tabs?
We think GNOME 3.8 is the best GNOME yet, and Web 3.8 is the best Web yet. We hope you’ll enjoy both, we definitely enjoyed doing our part.
The “new tab” button location seems less than ideal. Closing tabs or dragging them to new positions takes place in the tab bar. But opening a new tab will require moving into the upper right corner?
I’m guessing the location has something to do with the question “What if the user only has one tab open — there would be no tab bar in which to place the new tab button!” I could offer some solutions, but suffice it to say that the single instance of having to open your first new tab should not have such a drastic negative impact on the user’s interfacing with the browser for the rest of the session. It would be better to say, for instance, that the first new tab requires either a keyboard shortcut or navigation to a menu (this is ONE instance of bad interface design), than to say that the user must ALWAYS move his mouse into the upper right corner — away from the tabs, and away from the other tab manipulations such as closing and dragging.
So please consider a better implementation of the “new tab” button for 3.10. The current location is poor.
Thanks a lot for all the work done! While I think it’s best if Flash dies ASAP to be replaced by HTML5, it’s good to see that we’ll be able to use it again.
However, a simple thing which I still miss badly in Web 3.6 is the ability to use search keywords. In Firefox for example, there’s a search engine bar and you can make the search engines there accessible through a keyword so that you can search Wikipedia with “w “. It significantly speeds up searching, so I wonder if something like that is possible in Web 3.8 too? Or is it planned? Even if it is possible with extensions, I really think it should be integrated in the core like other browsers do.
Did you guys solve the issue of form widgets colors with the dark theme, which would affect the incognito mode?
Great stuff! Can’t wait to upgrade
Wow, it sounds like Web 3.8 will be amazing.
I’ve tried Web 3.6 recently and i’ve discovered that middle click open tabs in background only if they are from the same site, otherwise Web switch to the new tab. Is there a way to open all tabs in background when using middle click ?
Also, i’ve tried Gmail and Netvibes as Web App and middle clicking a link had for result to replace the current page.
This is the release I’ve been waiting for. All of the features I was really looking forward to are there. And really, the UI polish improves things a lot for me, as I’m very detail-oriented, and the big eyesores are gone. With more responsiveness, privacy, and that ill-gotten plugin Flash (thank you), I won’t need to use other browsers except for testing how my sites render across them. Also, with the new icons, I’m sure I’ll be using web apps far more often.
Keep up the good work- I can’t wait to see what you people whip up, next, but all of you really deserve a huge pat on the back for this one.
I think we should drop all slogans for this GNOME release and do it under “Webkit2 – that’s all you need to know” 🙂 Seriously, THANK YOU guys. This is incredible step forward. While Firefox is still fun, I love using Web for it’s integration with GNOME desktop.
Lots of kudos for your work, Xan!
All I am missing is simple access to my favourites.
I like to have a toolbar with my favourite websites icons (just icons :)).
Maybe a plugin 😀 I have to try it !
Thanks to the Web and WebKit2GTK+ for the awesome work !!!
@Alexander, there’s an easy workaround if you want that kind of functionality. Set DuckDuckGo as your default search engine (with dconf-editor, set
https://www.duckduckgo.com/?q=%s) and you can use any bang syntax that DDG supports: https://duckduckgo.com/bang.html .