Posted by: felipe | April 22, 2013

Summer of Code project – Silverfox

This entry is part of a series of posts about some of our proposed GSoC projects. See here the introduction blog post.

Silverfox

What is it: Silverfox is the codename of a feature that we would like to have in Firefox. This feature changes the browser configuration options to focus on beginner users, in an attempt to prevent these users from mis-configuring the browser by accident, either by accidentally clicking on things, changing settings without understanding them, or by being directed by websites to change prefs or to install add-ons.

Example use case: Tech-savvy family member configures a new computer for relatives, installs Firefox and sets appropriate settings and add-ons to their liking, and installs Silverfox after to prevent less tech-savvy family member from breaking their browser.

What does it involve:

  • changing the preferences window by hiding or disabling advanced or dangerous features, and displaying an explanation to the user on why those are disabled,
  • disallowing changes in about:config
  • preventing changes to the homepage url and preventing other add-ons to be installed
  • preventing toolbars from being hidden or broken through customization
  • provide an API for new features to be supported by Silverfox without the need for changes in Silverfox itself
  • should be done as an add-on using the Add-on SDK

Non-goals: It is important to understand that Silverfox is *not* a security feature, and it should not try to prevent itself from being disabled or uninstalled. Quite the opposite, it should educate users on why it’s activated and why changing prefs is problematic. It should not try to disable existing add-ons or resetting prefs that have already been changed. It should also not prevent Lightweight themes from being changed, or blocking add-ons from being updated.

Where to start: Your main first step will definitely be to learn how to use the Add-on SDK and to generate add-ons using it. After that, you should familiarize yourself with the preferences.xul file and the other files from the same folder referenced inside it, and understand the XUL structure there (using the DOM Inspector add-on will also help you a lot). You’ll also need to see the about:config file, and others that can be learned as the project advances.

Skills needed: Great JavaScript and good CSS skills. Also having created add-ons and worked with the add-ons SDK will be very helpful.

What is expected in your project proposal: A great understanding of the project, its goals and non-goals, and a good idea on how to approach each of the features involved and how to time slice them. A proposal for good and non-intrusive UI that will be displayed for users of Silverfox, and how to handle the main interactions that will be created (but do not spend most of your proposal describing UI instead of the technical aspects of the project). Links to open-source code (e.g. a github profile) and/or add-ons that you have produced.


Responses

  1. […] Silverfox […]

  2. Why isn’t this something of a “features” or an option baked inside Firefox but instead a Addon ?

    • This feature doesn’t exist yet, so it needs to be implemented in some way. We chose to start with an add-on as it will be faster to prototype and test the real impact of the feature. Lots of features in Firefox start first as an add-on that someone wrote and then are later converted to a built-in feature available to every user. This could be another example of that in the future.

  3. should my gsoc project deliver all the goals or is it fine if I could get the major requirements running?


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: