mozdev.org

Table of Contents:

  1. Colour Theory
  2. Colour Configuration
  3. Hash Algorithm
  4. Salt Value

Colour Theory:

The colour for each icon is selected based on 15 colours sampled from equal intervals on the hue spectrum. The value 15 was chosen based on completeness (a multiple of 3 being the 3 primary colours) and a self perceptual test on the discrimination thresholds of hue colours at an observation distance of 2 feet.

The brightness of the colour is then modified based on 6 different brightness levels. The value 6 was calculated by first trimming the minimum and maximum brightness boundaries where hue changes are not detectable and then sampling a discreet number of colours from equal intervals along the brightness spectrum. The number of discreet colours is increased until adjacent colours can just be discriminated. Again this was calculated with a self perceptual test at an observation distance of 2 feet.

The total number of perceivable colours allowed by this arrangement is 90. However, this arrangement assumes consistent differentiability of all hue brightnesses, which is not true. Certain colours are less differentiable than others which reduces the number of uniquely perceivable colours. This has been ignored for simplicity. Colour detection skill is dependent on age, eye-sight and cultural environment.

Colour Configuration:

The configuration panel is hard-wired to use a fixed brightness interval and a fixed multiple of the minimum and maximum boundaries. However the underlying architecture allows for more minute configurations. Any changes to the settings that deviate from the hard-wired settings will not be reflected in the graphical configuration panel.

Brightness levels are determined by 3 preferences:

hashcolouredtabs.light_base
An integer between 0 and 255 that represents the lightest brightness value. (0=white, 255=black, default=42)
hashcolouredtabs.light_inc
An integer between 0 and 255 that represents the unit increment between adjacent brightness values. (default=30)
hashcolouredtabs.light_count
An integer bigger than or equal to 1 that satisfies the following formula:
light_base + light_inc*light_count <= 255
This integer is effectually used to determine the maximum brightness value (i.e., the darkest value). (default=6)
hashcolouredtabs.salt
A random integer that is added to the hash to ensure that no one can anticipate the colour of a domain. (See section on salt value below.)

Users may wish to tinker with these settings to accomodate to their perceptual preferences. For example, users with poor colour differentiation may choose to increase the brightness unit increments.

When adjusting these settings, the ultimate trade-off must be considered:
As the total number of possible colours decrease, the chances of different domain names clashing on the same colour increase.

Hash Algorithm:

A simple hash algorithm is used to determine the colour of the domain. Should the current URL not contain a domain (e.g., URLs loaded from non-Internet protocols), the hash will instead be calculated on the protocol name.

For example, the hash will be calculated on the bolded sections of these URLs: http://www.yahoo.com/directory/
file://c:/my%20documents/file.htm
about:blank

Salt Value:

A salt value is also added to the hash value to ensure that the colour of the domain cannot be guaranteed. The current implementation determines the salt value at installation and remains constant until the extension is uninstalled. The salt value is randomly selected to be either 50 or 100.

The salt system was introduced for both a political reason and a technical reason. The political reason was to deliberately introduce a little randomness so that websites cannot instruct people to rely on seeing premeditated colours for domain authentication. Colour theory simply cannot accomodate such weak forms of authentication so it is discouraged in the first place. The technical reason is to prevent spoofing sites from faking a premeditated colour since the colour cannot be predicted by the spoofing site.

The set of possible salt values in this implementation was restricted to 2 to satisfy users who may need to switch from computer to computer or who may need to install this extension over and over again. This restriction does not counter the intentions of the salt system.

For questions or comments, please send a message to the hashcolouredtabs mailing list.
Copyright © 2004. All rights reserved. Terms of Use.