views:

193

answers:

1

Background: Those of you who use FF3 may be familiar with an interesting new attribute of the address bar. It allows you to do sub-string auto-complete in order to filter through URLs that you have viewed previously.

Therefore, if you want to open the following URL:

 http://longservernamehere.thatyou.nevercanremember.com/support/asdf1235234/kbid?1245

You can simply type any sub-strings of that URL that are sufficient to uniquely distinguish the URL:

 long<space>never<space>support<ENTER>

This changes the way users can think about URLs, because now all they have to remember are the keywords (sub-strings) that will help narrow down the potential links

Problem: This feature is great, but there is a downside. Users have a decreased incentive to bookmark and memorize URLs. This obviously becomes a problem if a User needs to type in a URL at a remote site (for example during a sales call) and they fumble around because they cannot remember the URL of the snazzy product catalogue that they want to show during a meeting.

Obviously, there are ways around this problem: bookmark your urls and copy your bookmarks to your laptop before you go on a meeting; use a third-party solution or online bookmarking portal; social bookmarking sites and so on.

Question The question is, for those users who do not want to use any of the above workarounds, is there actually a way to directly dig into the FF3 internals so I can write a script that will extract the components necessary to replicate a users auto-complete behavior on any machine?

+4  A: 

Firefox stores all this information in SQLite databases. You can query it directly if you have SQLite installed. You can also browse it using the SQLite Manager Firefox plugin.

In summary, the url history is stored in moz_places, and the various "phrases" that you have typed in the address bar are associated with places via moz_inputhistory, which is a child table.

Their algorithm seems to be: as you type each character into the address bar, query moz_inputhistory for matching entries and display them in descending order by use_count.

Hope that helps.

EDIT: This site has a bunch of good information about the Firefox databases: firefoxforensic.com

Chris Noe
Thanks Chris, excellent answer.
dreftymac