We are almost there: Web in 3.6.0

It’s that time of the year again where we have a look at what happened in the project in the last 6 months. In mere weeks it will be released with the shiny GNOME 3.6 (best.release.ever), but since release notes don’t write themselves here’s a sneak preview of all the new toys in Web-land.

The overview has landed

As Claudio already advanced the most noticeable difference in 3.6 is the first iteration of what we call “The Overview”. This is still an evolving design and implementation, but we felt that it was important to land a first version in time for this release that brought actual, solid improvements to the user experience.

What the overview currently does is easy to explain: we have changed the blank start page for a grid that holds your most visited pages. Your favorite pages are now easier to access, especially on touch devices, and we have put valuable screen real estate to work! But what about if some unwanted visitor ends up there? Fear not, if you need to you can remove them from the grid by clicking on the ‘X’ icon on the top right corner of each snapshot.

There’s more to come, but we feel this is already much better than it was, and fixes a long standing feature request for a better start page experience.

WebKit2, beta

It’s been a long time in the making, but the first bits of the WebKit2 support are already in the master branch. As we had anticipated for now it is available in beta form, which means we don’t build it by default and there’s still some functionality missing. That being said, it is really usable at this point, and doing the actual porting has helped us a lot in maturing the up and coming next generation of the WebKit framework. If you want to give it a shot, just build the browser with “–with-webkit2”, and you’ll notice:

Thanks to the OOP plugin support GTK 2.x plugins work out of the box again. That means Flash support without having to rely on nspluginwrapper.

Other things that are there, but invisible to users, like increased security or a new and improved API, built on top of all our experience with the classic WebKit.

You can look forward to having a WebKit2 powered Web by default in GNOME 3.8, but for now you are more than welcome to give us feedback about this Beta version.

Fullscreen mode, now with more full and more screen

For a long time Web’s fullscreen mode was somewhat awkward. You’d still get a toolbar, so it wasn’t really fullscreen, plus it would have a strange button embedded in it telling you how to go back to the safety of the vanilla mode. Probably this was fine for the time, but with more and more HTML5 games or presentations done inside browsers, it was about time we had way of making your browser show you the full content and nothing but the content. So we just did that:

Unit testing and code coverage

This is not sexy, but I think it’s really important. For a long time our test coverage was really poor. And when I say really poor, I mean completely non-existent. Some time ago we started to add a few tests here and there, but starting in this cycle we have taken this a lot more seriously and our test coverage has grown by leaps and bounds. We have unit tests for most major classes, they are executed automatically during distcheck (so you won’t release if you broke something), and lately we have added support for the code coverage infrastructure that is now available in gnome-common (thanks Philip!). As I write these lines our coverage is around 40%, which is not great but is a massive improvement considering where we were 6 months ago. These tests have helped us to catch a bunch of bugs (some really obscure and older than some good wines), prevented lots of regressions, and helped us to do some hairy refactorings with the confidence that we wouldn’t break absolutely everything.

lib/egg, you are an embarrassment

I think these three things (having unit tests, running them automatically before release, measuring your progress with code coverage) are very important, so I’m writing another post that just focuses on how to do this for a typical GNOME project.

Other bits and pieces

As usual there are lots of additional features and bugfixes, too numerous to mention: automatic session recovery, tab-less mode, Do Not Track, using SoupTLD to make the URL completion smarter (so it can automatically figure out that google.com is a URL, but foo.bar is a string you want to search), and many more.

Onwards GNOME 3.8

But the show must go on, and Igalians never sleep. We are already working towards the next major release: in 6 months we expect to graduate the WebKit2 version of Web out of Beta status (deprecating the classic WebKit version) and land the next iteration of the overview as major new features. But those are just the known knowns, the unknown unknowns is where it’s at. Until then, happy hacking.

26 Responses to We are almost there: Web in 3.6.0

This release is awesome indeed, congrats! Glad to see the overview made it in at the last minute. I’d be running it already if I was able to build WebKit on my system. It just fails with “argument list too long” or similar, maybe it’s because I only have 2GB of RAM? Anyway…

I have a couple of questions about WebKit2: is it just the binary that’s different? So, for example, could distributions ship both “/usr/bin/epiphany” and “/usr/bin/epiphany-webkit2” in their packages? That would be great.

Another question: with WebKit2, if a tab crashes the browser will it affect other tabs as well? That’s the one functionality I’m missing in Epiphany, I often have lots of tabs open and it’s a PITA when the browser crashes, even with session recovery.

I can’t wait to see the new version. Epiphany was my default non-text-browser for a very long time. There are just two reasons why I use firefox instead right now:

– The progress bar is almost invisible on some pages before the blue bar appears. This gives me the feeling epiphany is not responding in case the page doesn’t load instantly.
– The gui doesn’t vanish instantly when I close the browser from time to time. This breaks my gnome-shell-workflow every time it happens.

why can’t you make 2 options?
press f11 one time: you get old fullscreen
press f11 two times: you get real fullscreen
press f11 once more. return to normal
still not my first choice browser, but i always keep some love for gnome products.
thanks for your hard work!

There doesn’t seem to have been a 3.5.x release of epiphany-extensions, so I tried using the 3.4 version, but then the new Web doesn’t seem to have any UI to enable extensions. So I tried to enabled the adblock extension with Gsettings, but it didn’t work.

Is the adblock extension still supposed to work? How to enable it? Or do you guys have amazing plans for builtin ad blocking in 3.8 and I should just wait for it?

BTW: It would be supercool to have “new tab”-button that opens the overview in a new tab. This is the only feature that I miss in the new simplified design. Chrome (and old epiphany) allows me to middle click the “new tab”-button to paste an url into a new tab. That is also very useful.

@Evandro: I get the same error when building Webkit with jhbuild on Debian. It happens because there are too much characters passed on the command line, thus “argument list too long”. Bash can’t handle it. Or maybe it’s because I’m on Debian and Dash can’t handle it.

Will the links on the new start page remain static once they’ve ended up there, or will they reorder based on use? Having the links reflect usage would serious impair the start page’s usefulness, since it makes it impossible to rely on muscle memory.

If the positions are not static, would it be possible to have a pin-down function?

@Evandro: the binary is actually the same, so anyone packaging both would have to do some tweaks. They are not really meant to be parallel installable as is, the idea is that the WebKit2 version will just replace the classic one.

For the moment there’s only one Web Process, so it would affect other tabs yes. There’s already work ongoing upstream to have more than one Web Process, though (likely it will end up like Chrome, which AFAIK has roughly one per “origin”).

@bochecha: AFAIK adblock should work. You should get the Extensions menu in the Gear Menu thing. In any case we indeed have plans to integrate adblock natively in the browser: https://bugzilla.gnome.org/show_bug.cgi?id=681657 I hope it will happen for 3.8.

@Anomymous: we’ll probably add a ‘New Tab’ button to the UI, yeah, but too late for 3.6.

@David: the position is not static. Pinning-down pages in the overview is a good idea, you should file a bug about it.

I like this. Now I need 2.5 more features to switch back to it:
– SSL certificates management UI, with warnings and the ability to import certificates and so on.
– Tab searching + an exposé mode with tab grouping/group-switching (and the ability to reallocate the current tab to another group). Basically, Firefox Panorama.
– Vastly better performance when dealing with bookmarks

Bonus points: being able to set duckduckgo as the default search engine instead of Google. It might fit well with the ideals of free software/privacy nuts

@jeff: at this point I tend to by skeptical of the “If you add this and that feature from $MY_FAVORITE_BROWSER I’d switch”, because everyone has 3 or 4 of those and if we did them all Ephy would be a huge mess. In any case:

– Tab management is going to evolve in the direction of the full Overview design, probably.
– Bookmarks not sucking is not a feature, it’s just a bug we need to fix

You can already set the default search engine, there’s been a GSettings key for this for a long time now.

I used to be a fulltime Epiphany user, y’know what switched me to Chromium was the “one process per tab” model (which, as I understand, you’ll switch to with webkit2 eventually) and what partially switched me from Chromium to Firefox these days is Panorama. It’s a godsend to be able to throw groups of tab into the background and retrieve them only later when I’m switching context/projects. Having that in a browser that is “not Firefox” would already be quite a killer feature for me.

Of course it doesn’t have to look exactly the same and you folks can come up with a better design, but the actions/affordances that Panorama provides are what I’m looking for.

The overview is a great improvement over the current epiphany; does it allow reordering, pinning and manual addition? Because if the entries move around based on usage frequency then you’re missing out on the awesomeness of muscle memory

Now… If there only was a plugin to get back my beloved custom toolbar (having to open the bookmarks window, click a category, marking all in said category, right-clicking and choosing “open in new tabs” is just sooo inferior to clicking on a folder bookmark and choosing “open in new tabs”).

I’m sorry for trolling #Epiphany about the web apps; I’m trying to learn how to use them, and I’m preparing notes so I can write about how well they work for me and which ones don’t work in what ways. I would love to speak to you or another Epiphany dev about how they’re supposed to work and what I should know about them, and to turn my feedback into useful bug reports.

From what i see in the screenshot i can find an usability issue.. it’s not related to epiphany in itself. but for gnome3 in general.

The close button is too close to the preferences or refresh button. Using an eee touchpad with fat fingers or using the mouse with the wrong hand or the feets can result on clicking in the fatal button that closes the window.

On iOS the solution is to move that button to a hardware key.. On android that hardware key can be mapped into the screen. I don’t really know which would be the proper solution, maybe put the X button in the left like in OSX? .. but just felt wrong or problematic.

@Taryn: hey, no worries. Definitely try to catch us on IRC or send an email to the list with your question (actually that probably works better), we’ll be happy to explain things. Also, if you haven’t ,maybe read the blog posts I made when we first introduced the feature.

I’ve been using web for some time now and it is my default & favourite browser.
I would like to see https://bugzilla.gnome.org/show_bug.cgi?id=681657 get implemented as well.
The only reason i keep Chromium around is the Vimium extension, or before that Vimperator in Firefox. I wish there was a webkit extension like these.

I should add that I think it’s great this option is added to Epiphany, and I’m sorry if I seemed hostile when that was certainly not my intention. I just think the whole point of this option is that it’s opt-in, so it should stay that way is all. Thanks!