Seven years ago today, the Epiphany webbrowser was first released. In the mean time, the project has had three maintainers and in the past year it has been rejuvenized by switching from the Gecko to the WebKit backend.

At the WebKitGTK+ hackfest that took place last week (covered by Xan, Reinout, Alex, Gustavo, and Christian, among others) some big steps were made to make sure that Epiphany 2.30 will be a completely state-of-the-art Gnome web browser again. In the mean time, if you’re feeling adventurous, you can always test the latest development release and report bugs as you find them.

Epiphany 2.26.3 has been released. It is the last version to support a Gecko back-end. This marks the end of an era.
Also, Xan Lopez has taken over Epiphany maintainership. We wish to thank Christian Persch for all his work through the years!

Over the last few months, the Epiphany development team has been discussing the future of the Gnome web browser. We feel that we haven’t been living up to the full potential of a well-integrated Gnome application, due to both internal and external constraints.

The Epiphany user interface is built on top of an abstraction layer above the web rendering engine, enabling us to support multiple back-ends. Currently Epiphany supports the Mozilla browser engine (Gecko), and the WebKit engine.

The Epiphany dependency on Gecko creates a number of problems for us. The Gecko release cycle is very long (e.g. Gecko 1.8 was released with Firefox 1.5 in 2005; 1.8.1 with Firefox 2.0 in 2006 and 1.9 will be released sometime this year with Firefox 3.0), prone to delays and not synchronised with the unvarying 6-month Gnome release cycle. Furthermore, it and the feature work on Gecko are mostly driven by the Firefox browser, our main competitor on the Gnome desktop. Also the embedding API of Gecko (GtkMozEmbed) has been unmaintained and stagnant for a long time. Finally, the current plans for “Mozilla 2.0” bring much uncertainty to us, as well as much work to account for their proposed big API changes.

We are a small team, with only one maintainer and a hand-full of regular contributors. Maintaining the abstraction layer, and the Gecko back-end require lot of effort and time. Much time alone is spent on keeping up with Gecko API changes, and we have not had much contributions to the Gecko back-end in a long time.

Therefore we have decided to radically change the future of Epiphany in the upcoming 2.24 development cycle. We will drop the abstraction layer, making the code more maintainable, allowing faster development and enabling us to take advantage of the features of the back-end directly.

Furthermore, we will choose only one web engine back-end to support and concentrate our efforts on it instead of spreading our efforts to multiple back-ends and restricting us to the common features all back-ends support.

This single back-end will be WebKit.

We see several advantages in WebKit. These include:

The WebKit APIs. The API has been designed from the ground up, and feels like any other GObject based API. A two-way GObject bindings to the web page’s DOM, and to JavaScript is in development; this will allow us and our Extensions to access the DOM directly, which hasn’t been possible before in Epiphany in either C or Python.

WebKit uses Gnome technologies directly. Similarly to Gecko, it uses Cairo for graphics, and Pango for the rendering. On top of that, it uses libsoup for the network layer, and GStreamer for the <video> and <audio> tag support in HTML5.

Starting in time for Gnome 2.24, WebKit/GTK+ will implement a 6-month release cycle synchronised with the Gnome release schedule.

We feel that WebKit has the momentum, and can bring more developers to both Epiphany directly and the Gnome platform by extension. WebKit/GTK+ already has more people working on it than are working on either GtkMozEmbed or the Epiphany gecko back-end.

WebKit is a better match for other uses in Gnome, e.g. as a HTML widget in Yelp, in Devhelp, and as an editor in Evolution replacing GtkHTML.

We will propose WebKit as an approved external dependency for Gnome.

In case that we are unable to complete this development in time for 2.24.0, we will delay the new Epiphany to 2.26. For this end, we will maintain the gnome-2-22 branch in a state that allows us to potentially make the 2.24.0 release off of that branch.

This 2.22 release of Epiphany brings a few architectural changes as well as some user-visible ones. It blesses us with a migration from gnome-vfs to GIO. Also, thanks to a refactoring of Epiphany’s internals, cross engine support has improved a lot. If you’re feeling adventurous, feel free to try Epiphany with the WebKit backend– but be warned, several important features, such as cookies, are still missing.

Clearing privacy-sensitive data is now easier than ever. From a single dialog, you can clear your cookies, cache, history and saved passwords. Furthermore, the download manager will now show notification bubbles if the download window is hidden and a download completes. The address entry now filters history and bookmark duplicates, an image preview has been added to the filechooser, and finally, the history window can now display the date and time of the last visit.

Thanks to all contributors, and we wish to mention that, as a result of the hard labor of all translators, Epiphany has been localized into more than 70 languages!

December 17, 2007AnnouncementsComments Off on Epiphany 2.21.4 “The case of Mr. Epifanio Navegared”

The first Epiphany release in the unstable development series has hit the FTP servers!
A lot has happened on the WebKit front, get all the facts from Xan…

A lot of changes and bugfixes have accumulated before this release. Check the release announcement for details. Unfortunately, Epiphany-extensions isn’t in releaseable state yet because of the refactoring that has taken place in Epiphany.

A few highlights from the NEWS to whet your appetite:

Enable printing to PDF file on gecko 1.9

Add a preview for the FileChooser

Adds a column in the history window showing the date and the time of the visit

Add a “Remove all” button to the Personal Data Manager for both the cookies and the passwords.

The translation teams have been working hard to localize Epiphany. We currently have 60 languages that are supported (80% or more strings translated). Still there is some work to be done, especially the documentation translations are lagging behind. If you’d like to contribute but don’t know how, this could be a way to get involved! Drop by in the #i18n or #epiphany channel and we’ll get you started!

Last but not least, check out the totally wicked screenshot of Epiphany/WebKit with HTML 5 media support that Alp made:

If you haven’t had the time to check ThirdPartyExtensions page in the wiki, then you might be missing the following cool extensions.

Empowering your tabs
Two cool extensions from George Notaras:

Tab Links
This extension allows you to export that interesting tabs you have open to various formats so you can share them: Mediawiki, MoinMoin, DokuWiki, HTML. Go check it out!

Tab Session Management
This will allow you to save and restore your epiphany sessions on demand, pretty similar to session saving but with a hands-on touch.

For the people wanting to experiment with the UI, Kevin Michel has something to show:

Tabs on Treeview
Just like you read it, this extension will give you a totally different way of browsing. Check the site for a nice screenshot.

Tab Killer
Hate tabs? Want to have windows (hopefully not the OS) all over the place? Jon Dowland shares that hate for tabs that you have and guess what, he made an extension for it.

Utilities

That small things that make our life a little more compli^Wsimpler.

Michael Opitz has something to say,

GMail Notifier
Mail checking freak? This is right for you, nice screenshots on the website. Even nicer notifications when installed.

What? You didn’t like them?

Then create a new one! Hacking a new Epiphany Extension is incredibly easy, specially thanks to the Python bindings. Just check any of the already created extensions and summon everyone’s favorite python function dir() all around the place ;).

Ok, actually we have some docs… but isn’t it a lot more exciting to just dir() around? For the boring grown up inside of you, check the docs.

GUADEC
The most important change in this release is obviously that an experimental
WebKit back-end was added by Xan Lopez during the GNOME conference.
Read all about it here. Fer also blogged about it and it was even mentioned in an article on Ars Technica. Imran posted additional build instructions.