The Firefox trunk has recently acquired a thing called the Effective TLD service, which I have blogged about before. It allows the browser to work out where the registry-controlled portion of a domain name ends and the end-entity-controlled portion begins. For example, in “fred.com”, “com” is the responsibility of the registry, and “fred” is the responsibility of the registrant. However, in “fred.valer.hedmark.no”, “valer.hedmark.no” is the registry’s part. The rules for where to make the split differ between the 250+ top-level domains in existence, and so there’s no programmatic way of telling. You just need a very big list of all the rules.
Example uses for this data include setting cookies in a safe and privacy-maintaining manner (e.g. no cookies for “.co.uk”), sorting sites by domain in Places, and highlighting the domain name in the URL bar to cut down on spoofing attacks.
Other browsers such as Opera also need this data for the same or similar reasons, so we plan to share it with them. Yngve Pettersen of Opera has come up with several proposed solutions in the past.
Unfortunately Jo Hermans, who has done a lot of the heavy lifting in getting the list off the ground, is currently unable to carry on looking after it due to other commitments. So I’m looking for someone to maintain the list. That would involve:
- Set up a small website explaining the purpose of and format of the list
- Send an initial email to all 250+ registries, telling them about the project and asking for their rules (don’t worry, there are mailing lists for this)
- Receive update emails from registries and incorporating them into the list
The more accurate the list is, the better a job things like Places will do.
This might be a good job for someone who is reasonably technical, but not to the level where they feel like diving into the Mozilla code. I certainly fitted that description when I started helping out on the project (I did QA), so I’m sure there must be more of you out there. :-)
Please send a link to this blog post to anyone who you think might be interested.