Galeon, A History
or, why Galeon is the way it is
Chris "Topher" DeRosia - 29 July 2003
This document is intended to provide a brief history of Galeon; where it's been, and how it got to its current status. Galeon's relation to Epiphany will be briefly described.
Once upon a time, Marco Pesenti Gritti decided to make a web browser. He liked the Mozilla project, but wanted something that integrated well with his system and that was fast enough to be usable. Marco wanted a good, solid, simple browser for The Average User, in the Gnome environment, and so around June of 2000, Galeon 0.6 was released.
Galeon was a very popular project, with heavy development. Many features were added, making it a powerful, versatile browser, used by techies and non-techies alike. Releases came as often as Mozilla releases, since the API usually changed slightly with each Mozilla release. And with each release came a few new features. And with each feature came a preference dialog for that feature. Some people considered this to be a good thing, since features provide flexibility, and control. Others felt this to be a bad thing, thinking that too many preference options caused confusion.
In November of 2001, the decision was made to release Galeon 1.0 before Mozilla 1.0 was released. This was based on the belief that while Mozilla was not 1.0 yet, the code and feature set in Galeon was 1.0 quality.
After a series of 1.1.x releases, 1.2 was released on 12 Mar 2002. 1.2 had an enormous number of new features, which pleased the gadgety crowd, but was far from Marco's vision of a simple browser for Everyman.
In March of 2002, GTK 2.0 came out, and many programs began porting to it. The Galeon developers looked at the project and decided that for a number of reasons, a complete re-write was in order. There was pretty much universal agreement on that decision, and on 26 Oct 2002, Galeon 1.3 (sometimes called galeon2) was released. This is one of the reasons that people often say that 1.3 is a "stripped" 1.2, since 1.3 has so many fewer features. While there were feature issues in 1.3, the fact is that 1.3 had NO features when it started, and features are still being built into it.
Marco felt that this was a good time try moving back to the simpler browser he had wanted from the beginning. Rather than simply porting every feature and preference from Galeon 1, he moved slowly, planning feature additions, and weighing the worth of each feature and preference. Far more features were ported than are readily apparent, mostly due to the fact that the GUI preferences interface was much more difficult to plan and construct.
As lead developer, Marco felt justified in modifying the code to create the browser he wanted. This didn't sit well with some of the developers, and a great deal of heated discussion occurred on the galeon-devel list. As Galeon 1.3 releases came out, the discussions got more heated, as people became less and less satisfied with Marco's decisions. In April of 2002, Havoc Pennington wrote a document called "Free software and good user interfaces". The Gnome project had been struggling with uniform human interface guidelines, and after much discussion, Havoc came up with his essay.
The essay got mixed reviews, with some people thinking that it was a GREAT idea to make things uniform and simple; others thought it was a terrible idea to make things so simple because it felt restrictive. The Gnome Human Interface Guidelines (HIG) were made soon after.
A Tale Of Two Opinions
Marco's decisions regarding the interface to Galeon were not universally well received. Some thought it was an excellent idea to move toward a more HIG compliant browser, but since moving in this direction involved reducing the number of available settings in the preferences, and changing the main interface that people had become accustomed to, some thought it would be the downfall of a great browser.
The issues essentially boiled down to two opinions; should Galeon be a simple browser, or should it be a power user's browser?
In November of 2002, after many months of long hard discussion, Marco made the very difficult choice to leave the Galeon development team, and created Epiphany. No longer part of the Galeon team, Marco was free to create what he wanted; a simple, HIG compliant browser. This also freed the Galeon team to mold Galeon into what they wanted; a powerful, flexible browser for people who want to be able to customize to their hearts content.
So what's next? For the users, they get choice, the glory of the Open Source world. If they want a relatively simple, HIG compliant browser, Epiphany is the way to go. If they want a power user's browser, with features galore, Galeon is the way to go.
"But what about all the features?!?" people ask. "I loved Galeon 1.2, why is Galeon 1.3 such a featureless POS?". Well, it's not a featureless POS. It's a piece of software under development. Devel was a little slow after the split, mostly due to Real Life constrains.
For the Galeon developers, the addition of functionality is a high priority. Galeon itself has much more functionality than the preferences interface would indicate. Gestures, key bindings, and smart bookmarks have all worked for some time, though access was limited to gconf-editor. They simply need to have a preference GUI added.
Some things from the TODO in the Galeon tarball are:
As you can see, Galeon has some fairly ambitious goals, as well as having quite a few things done. If you'd like to help, there are numerous things that can be done. Coding, bug reporting, documentation writing, and lucid, positive input are all welcome.
- Reorganise prefs dialog. (tko)
- Stylesheet chooser menu. (We had a volunteer?)
- eggtoolbar (? please ric
- eggmenubar (philipl)
- Feature complete tab menu (depends on eggmenubar)
- tab notebook niceties from epiphany (crispin)
- Bookmark management that doesn't suck (tko)
- Galeon 1 style bookmark editor with edit controls in main dialog
- use xbel properly
- Cookie management that doesn't suck (probably philipl)
- Galeon 1 style cookie editor with edit controls in main dialog (spot the pattern?
- Page info dialog (think mozilla)
- Clicking security icon should pop up security page in info dialog
- Native cerificate dialogs
- Sucks to implement due to strange code factoring in psm
- Do not set location entry if the user is changing it ! [done]
- Speedup window creation [some stuff done]
- Fix exernal downloader + open in new terminal [done?]
- Test and fix external protocols handling (I got some crashes) [done?]
- Extensive use of favicons (history, tabs, bookmarks ...) [not there yet]
- Need a way to get back from fullscreen if you dont know the key [done]
- Edit->Cut/Copy/Paste need to work also for gtk entries [done?]
- Fix mime handling dialog to not require to ever go through the apps choice dialog. (My dialog1 proposal on galeon-devel) [done]
- Tabs context menus [not done - tab menu should also be tab context menu. see above]
- History context menus [done?]
- Complete charsets function implementation in mozilla-embed-shell.c, see the FIXME [done?]
- Reimplement (and maybe redesign) cookie passwords ... filtering [done]
- Find a way to automagically compute colors for tabs status, that are visible on all themes or get back the color prefs [not done]
tko pointed out that everyone should read README.ExtraPrefs, stored in your docs directory. Additionally, documentation is where the team needs the most help at the moment, evidenced by the fact that you have to hunt down README.ExtraPrefs to find that stuff out. Please contact Christophe Fergeau about writing docs.