Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.
Ubuntu should make it easy and intuitive to choose default browser, per user, while at the same time not making any surprising changes behind the users back.
Every user has its own favourite application for every task, and browsers more than most. On a multi-user system, every user may have its own favourite browser. Also, when installing a new browser it may be for testing and evaluation purposes just as likely as it is the users favourite, and therefore Ubuntu should not make any uncalled for assumptions.
An example on how it works today, which is rude and surprising, can be found at bugs such as: https://launchpad.net/distros/ubuntu/+source/epiphany-browser/+bug/72524
- Albert is happy with Firefox and wants to keep it as his default browser, at least for now. Out of curiosity, he installs Epiphany and is surprised and annoyed when it turns out Epiphany made itself the default for his desktop without asking for permission, nor informing him about the change or how to revert it. Albert find this to be very rude. (This is current behaviour).
Bonnie always wants to use Epiphany, so she installs it easily via Applications->Add/remove. When she launches Epiphany for the first time, she is greeted by a question if she wants to make it default for her desktop. She answers 'yes' and is never bothered again. (This is the suggestion).
- Ceasar is a web designer, and is happy with Firefox. However, he installs a couple of other browsers for testing purposes, and when he launches one of them for the first time, he gets the same question as Bonnie. He selects 'never ask' and is told by a helpful dialog that if he ever wants to change his mind anyways, he can go to a specific place in settings and change this. Ceasar makes a mental note of this and is happily never bothered again. (This is the suggestion).
- David works together with Ceasar, and also installs a plethora of browsers. Getting the same question, he presses 'help' and gets some simple instructions on how to change this later. He also selects 'never ask', and later, when he wants to switch, he easily finds the setting and updates it to use his new favourite browser. (This is the suggestion).
This specification is limited to deciding the default graphical browsers used in a desktop environment, on a per-user basis.
The examples and some of the text is GNOME-centric, but ideally this should span across all supported variants, as browsers from each DE can be used in the others.
On Windows, most common browsers know if they are the default and if not, asks if they should be made the default, with an extra option to never ask about this again. This is not a bad design as it is very clear to the user what is happening and the choice is made by the user. In Ubuntu this should be taken care of by the system instead of by every browser.
Graphical browsers should get a small wrapper, or modification to their start-up scripts, that calls a specific program, that in turn checks:
- Should the question be asked? Otherwise just return.
- Is this the default browser already? Just return.
- If it's not the default browser, and the question should be asked, pop up a question dialog that says "Browser X is not currently set as your default web browser. Do you want to make it your default browser? This will not affect other users on this system." with the buttons "Help" (explains what this means more in detail), "No", and "Yes", with an additional checkbox saying "Never ask this again" which if checked will disable this type of check forever, and also pop up a small information dialog about how this can be changed anyways.
- If the checkbox was checked on "No" or "Yes", checks are disabled for this user via a setting somewhere.
- If "No", nothing happens.
- If "Yes", the main script running sensible-browser or something similar is altered to use this browser for this user only.
Either each involved browser could have its start-up script wrapped or modified, or as an alternative, all menu shortcuts could call the main script with (the optional) parameter as to which browser that should start.
GNOME proper should call whatever mechanism keeps track of the users default browser.
Data preservation and migration
- What mechanism is to be used to keep track of default browser on a per-user basis?
- Is there a good mechanism that could be used across Ubuntu/Kubuntu/Xubuntu etc? Or is it possible to make one?