Open Bug 1060766 Opened 6 years ago Updated 5 years ago

The order of values in the form history are not satisfactory


(Toolkit :: Form Manager, defect)

31 Branch
Not set





(Reporter: mail, Unassigned)


User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 (Beta/Release)
Build ID: 20140730101922

Steps to reproduce:

I used the form history feature of the browser when filling out a form.

Actual results:

The order of the values in the dropdown list of the textbox is never satisfactory.  The top items are not the most recently used ones, even when using the same value many times in a row.

Expected results:

The dropdown list of the textbox with the form history should show a list with the most recently used values at the top.
I think it would be great if the dropdown list were not too short and too long either. Also, if the order represented the most recently used values from top to bottom.

I've designed and created an "automatic top list" algorithm that I believe could easily satisfy this. It needs to have the last access time stored for every value.

The algorithm:

Wouldn't it be possible and useful to implement such thing in the Firefox browser?
Component: Untriaged → Autocomplete
Product: Firefox → Toolkit
I've just discovered that the default order of the autocomplete list is in alphabetical.

I understand that the common usage and goal with this autocomplete feature is to provide a list of matching values while typing some characters. While this list is satisfactory, my point is only that the default list is the one that is not satisfactory. The one that is shown when clicked inside a textbox without typing anything.

So my request is to let us take a look at the way the default list is shown. Whether with an extra option created, or changing the default behavior. Because the default list is also very valuable - I can pick an item without typing anything.

My approach would be to not have the default list too long for usability reasons. It's hard to pick an item from a very long list. Whilst when typing some chars and the list is reduced with only the matching values, that can be fine.

The other thing that would be great to have the items in the default list ordered by time and not frequency (the number of times they were used). Because if it's not this way, then the most recent values won't be at the top and won't be able to crawl up ever. And because only the items at the beginning are at usable positions, with a list of alphabetical order, the "a" letters will stay here always. There should be better approaches than this.

A third point:

The usability would be even better if the length of the list would not only be not long - but with an adaptive length. Why show values from very long time ago when it's not necessary and they probably won't ever be used again? So my algorithm would solve that problem too.
The results are sorted by frecency (combination of frequency and "recency" [date last used]).

Please turn on logging with the about:config preference browser.formfill.debug set to true and attach[1] the output from the Browser Console[2] and explain why you think the numbers are incorrect. You can inspect your form history database (formhistory.sqlite) with sqlite3.

Documentation on the algorithm is at [3] and you can read the code at [4].

Component: Autocomplete → Form Manager
OS: Linux → All
Hardware: x86_64 → All
I'm not saying the values are incorrect - I'm only saying that they are not satisfying. Anyway I'll check the debug option and give feedback later.
I'm not saying the values are incorrect - I'm only saying that they are not satisfying. Anyway I'll check the debug option and give feedback later. Thanks.
Here is the debug output:

My problem is, that I cleared formfill yesterday. Since then, I used "2015-07" only a couple of times as a value for the particular textbox. Now I use "2015-06" meny times, still, this value never climbs up the top list. Why is that? It's not satisfying in my opinion. If I use a value 20 times compared to another one's 3, then it should the on top.

Also, should the oldest values be also included in the list? Wouldn't it be better to have the most recent ones above only a specific time range?

Wouldn't it be possible to add more algorithm to the code base and make it optional?
I'd like to point out, that my algorithm shows values based on recency only and not frequency. But showing the values by recency only does take into account frequency too. And this is because of the following:

The most recent items always jump to the top of the list. So does the rest of the others. But the ones that are used more frequently will always stay "around" the top, because they will go there more frequently pushing the others down, especially the ones with the least frequent usage. So the list anyway reorders "naturally" by this factor too.

Showing a list in order of the most recent values seems the most optimal to me.
You need to log in before you can comment on or make changes to this bug.