Web. It’s what’s for dinner.

GNOME 3.4 is around the corner, and with it a new version of its little web browser that could. This is for sure one of the most action packed releases in a long time, so let’s do a recap of the last 6 months of development.

New UI


The most obvious change at first glance is the refreshed UI, which was already covered in some detail in this blog post. Thanks to the hard work of the GNOME Design Team, the GNOME platform hackers and the Epiphany team we’ve got ourselves a completely new toolbar layout with elegant widgets (I particularly like the linked-style back/forward buttons), support for the new Shell application menu, the demise of our menubar and the debut of our ‘super-menu’ holding the less frequently used page specific actions. Not only the browser works better than ever, it now looks better than ever too.

New History

We have been talking about rewriting our history backend for many years now; to give just one example, as far back as 2007 we already had a Summer of Code project to try to fix some of its shortcomings, which were many. The old backend served us well for almost a decade, but it was showing its age: a difficult to understand legacy codebase, a bus factor of 1 and poorly scalable architecture that made storing more than a couple of weeks of browsing history a titanic task. Last year a crack team at Igalia was put together to fix this once and for all. Enter the new age:

  • Drop our XML based storage in favor of good ol’ SQLite. Many options were considered other than SQLite, and we could yet again change how things are done internally in the short term, but for the first step we decided to settle on a simple, trusted and performing technology.
  • Never block the UI. All actual history accesses are done in a special service thread which communicates its results when they are ready to the user interface. This way things will remain responsive and snappy, no matter how complex your queries are or how full to the brim your history is of non-stop reddit browsing.
  • Test it! User data is the most important thing the application handles, and losing your browsing history is the modern day lobotomy. Our new backend is thoroughly tested through unit tests, so your data is in good hands with us.

Thanks to the new backend we can now provide infinite history storage and instantaneous non-blocking search both in the URL entry and the history window, both long awaited features. Other than that, for 3.4 we tried to keep the UI as it was: one thing at a time. For 3.6, though, now that the we are beautiful on the inside, expect some surprises in how you interact with your history data.

New WebKit

As with every release, on time, we ship with the all new WebKitGTK+ 1.8. As usual there are way too many thing to list and they deserves their own blog post, but you can look forward to: the debut of the WebKit2 API (still experimental but with some modules already using it, like devhelp), WebGL, Accelerated Compositing, HTML5 History API, support for the last version of WebSockets, WebAudio, a rewritten favicon database class and loads and loads of bugfixes and improvements.

Less is more

A constant thought in my mind as a module maintainer is to focus our efforts in delivering the best experience we can given our available resources. I believe as a project, both GNOME and Epiphany, we are now facing the difficult choices successful software must go through at some point: stop trying to be everything for everybody, decide what you want to do and for whom, and try to do that really well.

Our new ongoing redesign is a great step in that direction, and I’m glad that we are finally focusing on what I think really matters. I believe 3.4 is our best release ever, with both cool new features and fixes for old major deficiencies, and things will only get better from here. And, a favorite pet peeve of mine, we did all that while massively cleaning up our codebase to make it cleaner and more hackable, a task without much glamour but a big payoff. Our last release, ignoring translations, icons and help files, comes with 214 modified files, 14,959 insertions and 24,341 deletions. For those keeping the score at home, that’s almost 10,000 lines less of code to maintain, read, patch and load!

Thanks!

Thanks to all the GNOME contributors that made possible this release, but a special thanks must go to Igalia for its continued support for Epiphany. We are not only the best WebKit consultancy around, but we are also putting our money where our mouth is by supporting web technologies in GNOME through its browser and beyond.

Work on 3.6 is already underway, so expect a lot more from your favorite webkittens 6 months from now. Until then, you can follow us on IRC, our mailing list, identi.ca, twitter, facebook or our new project page (wow!). Happy hacking!

This entry was posted in Blogroll, General, webkit. Bookmark the permalink.

22 Responses to Web. It’s what’s for dinner.

  1. ebassi says:

    congrats for the release! and I honestly cannot wait to start using Epiphany again in GNOME 3.4.

  2. stepo says:

    Hi. Those thin scrollbars will be common in all GNOME 3.4 applications? They look great!

  3. Negrowin says:

    I have not used Epiphany/Galeon in a long time.

    Does it have a private mode and Gopher support?

  4. Marcusklaas says:

    Looks sick slick yo! If only all GNOME apps were this clean. I think a lot of GNOME applications are on the right path though. GTK3 has been a good upgrade. I like that you’ve lost menubar in favour of jumplist. Last thing that would be really awesome is to hide titlebar when maximized. Keep up the good work! I am looking forward to 3.4 release.

  5. ebassi says:

    @stepo: yes, those are the default scrollbars when using the GNOME standard theme, Adwaita.

  6. ebassi says:

    @Markusklaas: we do hide the title bar when the window is maximized :-)

  7. jeff says:

    Congrats! If you haven’t seen this already, please make sure to not fall into the same performance traps that Firefox and Liferea fell into with SQLite… the solutions are mentioned here:

    http://liferea.blogspot.ca/2012/03/182-vacuum-only-when-needed.html
    http://liferea.blogspot.ca/2012/03/morpheus-suggested-in-comment-to-check.html

  8. Benoit says:

    Welcome to the WebGL club! Hope to see you on Khronos mailing lists (e.g. https://www.khronos.org/webgl/public-mailing-list/ )

  9. liam says:

    This looks a bit familiar… http://i-cdn.apartmenttherapy.com/uimages/unplggd/101311-omnibar.jpg

    Of course, originality isn’t all important.
    I’ve been using epiphany for roughly a week and it is a huge improvement over previous incarnations. Congrats.
    Now, if you could just add in a + button for tabs…

  10. Hongzheng Wang says:

    It looks so cute!

    One question: how about the support of flash? I know Adobe is dropping its flash for Linux. But having flash plugin is still a good thing for many web sites, even though Youtube can work well without it.

  11. bersace says:

    Amazing !

    Looks like Ephy finally ended its webkit transition.

    Do you have plans to provide a market of extensions, like GNOME Shell ?

    Can you write a post about Ephy for web developers ? Is there some killer features for web dev ?

    Regards,

  12. xan says:

    @Negrowin: private mode is not supported from the ui (you can always use a private profile with -p), but should be in the future. Gopher is not supported and unlikely to ever be, at this point.

    @Wang: for flash to work you need to use nspluginwrapper, since it links to gtk+2 and the browser links to gtk+3. When we move to WebKit2 (as early as 3.6) it will work again without wrapper thanks to the process separation.

    @bersace: we support the awesome WebKit Inspector, as other WebKit browsers (see for instance http://www.webkit.org/blog/1091/more-web-inspector-updates/). In any case the core design goal for Web/Epiphany is not to be a Web Developers tool, so we are not putting a lot of resources in that area.

  13. nona says:

    I don’t know why, but nspluginwrapper doesn’t work reliably on my system (Debian). Do you guys wrap the 32bit or the 64bit version?

  14. Pingouin_Magique says:

    Dou you need to use the webkit2 API to use Accelerated Compositing, or Epiphany 3.4 can use it right now?
    Thank you for Epiphany, it’s becoming a really good web browser!

  15. Elessar says:

    Congratulations! Without a dedicated search bar I shall personally stay with Firefox, but I am glad that Epiphany is making progress, since it can be used by many users which are satisfied by the choice of the default browser that comes with GNOME!

  16. Johnny says:

    Dude, thanks for your work. I’m glad about the nice and clean new design. Congratulation for what you guys have done!

    Johnny

  17. M. says:

    That is awesome. Thank you very much!

  18. Evandro says:

    @Negrowin: One thing worth mentioning about Flash support is that Totem in 3.4 can actually play videos embedded in Flash, so for example all the videos in Youtube now work under Epiphany, not just the ones available in HTML5.

    Anyway this has been a great new release for Epiphany and GNOME in general, with a lot of improvements everywhere. Congrats!

  19. Rock on! =)

    I also really like that the project is gaining focus on design and trying to be everything to everyone, look forward to many more years of using and hacking Ephy!

  20. Cyril says:

    The quotation is meaningful and profound. Gnome (at least Web) is worth it ! It’s exactly what I feel when I use Gnome and I hope that the project will still improve in this way.
    (you touch my patriotic french heart ! You beatify my day)

  21. xan says:

    @Pingouin_Magique: no, Accelerated Compositing also works in WebKit1.

    @Elessar: well, you the URL entry offers the same search functionality other browsers provide in a different bar, but whatever works for you.

  22. Pingback: [$] Epiphany: the minimalist GNOME browser | Linux-Support.com

Comments are closed.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>