Welcome to the official homepage of the Autocomplete Manager extension for Mozilla Firefox. The extension provides advanced features for the address Autocomplete component in Firefox, and also includes fixes for various bugs, as well as a rudimentary history manager. Please see the list of available features for more details, and this page for snapshots.
User discussion on this extension takes place on this MozillaZine forum. Please report any bugs or suggestions for new features there.
|You can also email me directly at|
March 14, 2008: Version 2.3 is released with some bug fixes.
January 8, 2008: The download counter on Mozilla-Addons reaches 100,000. What a milestone!
December 20, 2007: The German computer magazine CHIP will be distributing Autocomplete Manager as part of their cover DVD. The corresponding page is here.
December 13, 2007: Autocomplete Manager is added to the online software directory download.com.
December 9, 2007: The download counter on Mozilla-Addons has reached 85,000, which means that the new version was downloaded 10,000 times in 10 days. Not bad :)
December 6, 2007: Version 2.2 is released with some bug fixes.
December 2, 2007: The Autocomplete Manager is featured on UptoDown, an online software directory. The original article (in Spanish) is here, while a rough translation, courtesy of Google, can be found here.
November 30, 2007: Version 2.1 is released with startup time improvements, many bug fixes, and a couple of new features.
November 29, 2007: The 75,000 download barrier on the official Mozilla Add-ons site is broken. Yay!
October 23, 2007: Autocomplete Manager is featured extension on Lifehacker.
July 4, 2007: The Autocomplete Manager is featured on Windows Forest, a Japanese online software directory. The original article (in Japanese) is here, while a rough translation, courtesy of Google, can be found here.
June 12, 2007: The Autocomplete Manager reaches 50,000 downloads on the official Mozilla add-ons site.
June 8, 2007: Version 2.0 is released with significant startup time improvements, a couple of new options, and some extension conflict resolutions.
May 16, 2007: The Softpedia software directory grants the Autocomplete Manager the "100% FREE" award.
May 5, 2007: Version 1.6 is released with major performance improvements and some bug fixes.
March 3, 2007: Version 1.5 is released, adding compatibility with Firefox 2, as well as numerous bug fixes and a few new features.
March 17, 2006: Version 1.1 is released with fixes for some extension conflicts and minor bugs.
March 3, 2006: The first version is released to the public.
You can download Autocomplete Manager version 2.3 here. You can also view some snapshots here. This latest version is compatible with the Firefox 2 series on all platforms. Open the extension package with Firefox, install it, and restart the browser. You will see no difference in the user interface. Just type something in the location bar to see the suggestions.
Extension versions and Changelogs
- added matches for Baidu and Naver search engines
- removed menu item from the Tools menu
- sorting alphabetically by title is now case-insensitive
- resolved conflict with the LiveClick extension, where opening a new window would cause Firefox to hang for a while
- fixed popup background conflict with the NASA Night Launch theme
- fixed minor issue where switching active components would cause a switch to another options tab
- removed the bookmarks separator when no history entries match
- address is no longer inlined when pressing Ctrl+X on the location bar
- fixed an issue with Enter not working on the location bar when the bookmarks-first option is selected
- added a preference to show in bold the column on the popup where each match was found
- when matching against the page title or bookmark name, only the beginning of words is now considered (fixing bug 393678)
- the bookmarks separator is not shown when no bookmarks have matched
- swapping the address and title columns on the popup now preserves their width proportions
- the extension now remembers the previously selected tab in the enhanced component options
- implemented some startup time improvements
- added more matches for search engine results
- added new sorting criterion to sort alphabetically by title (fixing bug 360113)
- pressing Del now deletes an entry from the popup (as does Shift+Del)
- full-screen Open Web Location dialog now also features the enhanced popup
- added separator between bookmarks and history when bookmarks are sorted first
- changed "show data source" column to "show last visited date"
- made matching any part of the domain the default, and removed the corresponding option
- duplicate addresses due to a trailing '/' are now eliminated
- added icon to the Tools menu item
- middle-clicking an entry on the popup now opens it in a foreground/background tab depending on the corresponding option in the Tabs preference pane
- fixed issue with the popup being disabled after customizing the toolbar
- fixed issue with the options dialog not having a close button (Mac OS X only)
- fixed conflicts with the DeviantLink and Options Menu extensions
- fixed minor conflict with the MR Tech Local Install extension that caused the opening of a blank dialog when clicking on the extension Options in the Add-ons Manager (Firefox >= 22.214.171.124)
- fixed minor conflict with the clickngo extension that caused the popup to appear after middle-clicking on the location bar to load an address in a newly opened tab
- fixed issue in Ice Weasel that caused the enhanced popup to be disabled for all windows but the one that was opened first
- fixed bugs 228355 and 391175
- greatly improved startup time, but had to remove compatibility with Firefox 1.5 as a result (due to the use of generators; see the technical section for more details)
- added new option to match anywhere in the address (fixing bug 129687)
- added new option to swap the address and title columns on the suggestion popup (fixing bug 312201)
- changed the Shift+L shortcut to Alt+L after popular request; however, this feature no longer works on Mac OS X
- when the "only show popup on down arrow" option is selected, the popup suggestions are now updated when the user keeps typing
- fixed cosmetic conflicts with the GrApple, Looks Familiar, Macfox II, and Noia Extreme themes
- fixed minor conflicts with the Tabbrowser Preferences and WellRounded extensions
- fixed minor bugs when Autocomplete is turned off
- fixed a bug that caused the popup to re-appear after pressing Enter to select a suggestion
- fixed an issue where, when the address of a tab is selected and the user presses Ctrl+PgUp/Down to switch to another tab, a popup with suggestions for the original tab appears
- fixed highlighting when removing entries from the popup
- fixed a bug that caused weird behavior when attempting to select a radio button in the options dialog (Windows only)
- implemented major performance improvements when building the popup and in the history manager
- added new option to only show the popup when pressing the down arrow
- augmented inline Autocomplete to fill the title of the best match, instead of the address, if that title triggered the match
- the popup can be temporarily disabled even when the focus is on the location bar; pressing the down arrow re-enables it
- one-letter and 'www.'/'ftp.' searches are now properly sorted, just like the rest
- fixed a bug that caused problems when the options dialog was launched from the Extension Manager
- fixed a conflict with the McAfee SiteAdvisor extension
- added a workaround for a Firefox bug that prevented the display of the popup the first time a match was attempted (Mac OS X only)
Version 1.5 (compatible with Firefox 1.5 - 2) - March 3, 2007
- added compatibility with Firefox 2, dropped compatibility with Firefox 1
- added a keyboard shortcut to temporarily disable the popup
- favicons for bookmarks and their corresponding history items are now displayed on the popup
- added a new option for excluding local pages
- addresses are now URL-decoded before being displayed on the popup
- re-designed the extension architecture to make it friendlier to other extensions and themes; in the process, fixed conflicts with the Tab Mix Plus, Fission, and Paste and Go extensions, as well as the Plastikfox theme
- re-designed the options dialog to use selector icons and tabs, and made it resizable
- fixed all known inline Autocomplete bugs
- slightly modified the alphabetical sorting criterion to give more intuitive results
- removed the custom sorting criterion; users did not seem to use it much
- history dropdown now shows all addresses, not only 'http' ones
- changed logo image
Version 1.1 (compatible with Firefox 1 - 1.5) - March 17, 2006
- fixed a conflict with the Tab Mix Plus extension
- fixed a bug that prevented enabling or disabling the bookmark matching in the options dialog (Firefox 1 only)
- fixed an issue when deleting an entry from the suggestion popup (Windows only)
- fixed an issue when re-sorting the suggestion list on the fly (Windows only)
- fixed a bug that prevented the appearance of the logo in the About tab (Firefox 1.5 only)
Version 1.0 (compatible with Firefox 1 - 1.5) - March 3, 2006
- initial public release; basic functionality and core options
Heiwad Osman (typing timer)
James Ravn (initial implementation of the suggestion popup)
Adam Vartanian (some code for the aggregator and filterer components)
Feedback / bug reports
Jeffrey W. Baker
Arnaud Berger de Gallardo
Autocomplete Manager provides a three-way choice for the address Autocomplete behavior in Firefox. You can use an enhanced Autocomplete popup, switch to the default one, or turn Autocomplete off altogether. The primary goal of the address Autocomplete component is arguably to facilitate the discovery of pages the user has visited in the past. Thus, all the options of the enhanced component implemented by this extension are, in one way or another, built with this in mind. In general, the enhanced component strives to preserve the look and feel, keyboard shortcuts and default behavior as the default component in Firefox. For example, common protocols ('http://', 'https://', 'ftp://') and prefixes ('www.', 'ftp.') are ignored when matching, just like Firefox does. The extension includes an automatic update feature that enables Firefox to notify the user when a new extension version is released. Available features include:
- matching against bookmark addresses (bookmark entries are shown in italics on the Autocomplete popup, so that they are easily distinguishable from regular history matches), and matching against page titles and bookmark names (which will also be available in Firefox 3, per bug 389491). These two features have been repeatedly requested by users (see bugs 117967 and 101642, and this MozillaZine thread). When both a history entry and a bookmark with the same address match, preference is given to the bookmark, and the history entry is removed from the suggestion popup in order to avoid duplicates. In addition, when matching against page titles, any part of the title is considered, not only the beginning, as is the case for page addresses.
- matching any part of the domain (fixing bug 294116). For example, when typing 'ucla', an entry 'www.cs.ucla.edu' will match. This is very helpful in case the user remembers visiting an entity's website, which resides in a subdomain. For example, 'semiconductor.philips.com' would normally not show up when typing 'philips'; it will, however, for the enhanced Autocomplete component. Using this feature, one can also quickly see all visited addresses for a top-level domain. For instance, you can type 'edu' to see all the academic institution pages you have ever visited.
- matching anywhere in the address (fixing bug 129687). The string that the user types is normally matched only against the beginning of an address. This option allows for extending the match to anywhere in the address, which, by the way, is also what happens by default when matching against page titles.
- changing the sorting criterion. The sorting criterion is of the utmost importance, since it determines the location of an entry on the suggestion popup. Users typically do not bother looking further than the first entries, and resort to other methods for discovering previously visited pages, so it is critical to place the page the user is looking for as close to the top as possible. Firefox sorts matching entries in decreasing visit count order, also incorporating heuristics to boost the score of Web paths (addresses ending in '/') and addresses that were manually typed (as opposed to clicked on). You can get some information about the reasoning that went into the design of the sorting algorithm in the Firefox Autocomplete component from the discussion around bug 78270. The Autocomplete Manager, on the other hand, provides six alternatives: the default Firefox ordering, alphabetically by address or title, most frequently or most recently visited first, and top-level pages first. This last option causes addresses representing top-level domains, such as 'www.google.com', to appear at the top of the popup, before any contained addresses, such as 'www.google.com/scholar' (see bug 240397 for some more thoughts on this issue). This might be useful when trying to quickly load the main address of a website. For instance, I often want to visit 'www.slashdot.org', while I don't particularly care about any individual pages under that domain. A related useful feature is the ability to re-sort the list of matching entries on the fly, according to any of the six criteria. This is done by pressing Ctrl+<criterion number> when the popup is already open. For example, after typing a string and the popup appears, you can sort the list alphabetically by address by pressing Ctrl+5.
- specifying the position of bookmarks. Bookmarks can be either sorted regularly, according to the criterion in use, or they can be placed at the top of the suggestion list. This would be useful for someone who uses the extension to recall her bookmarks without having to go looking through all the folders in the Bookmark Manager.
- temporarily disabling the popup, by pressing Alt+L to focus on the location bar and type in an address without a popup showing up. Autocomplete is re-enabled after pressing Enter, Esc, or the down arrow. For instance, you would use that when you know the exact address you want to type, and you do not want to be distracted by the popup. This feature does not currently work on Mac OS X. You can also select to only show the popup on demand, by pressing the down arrow after having typed a string on the location bar.
- opening a suggestion in a new tab by middle-clicking on it (fix for this bug).
- popup appearance fine-tuning. In addition to the extra functionality features, several appearance knobs for the suggestion popup are provided. One can show/hide page titles or bookmark names, show/hide the source (history or bookmarks) and the visit count of an entry on a separate column on the popup, and customize the size of the popup by defining the number of visible suggestions. One can also choose to have the best match completed inline (fixing the broken inline autocomplete in Firefox 2), filling the location bar with the address of the best match, or even its title, if that was what triggered the match, just like Internet Explorer does for top-level favorites. talk about giving preference to titles. One can also swap the order of the address and title columns on the popup, in order to display the titles first. Lastly, one can define the truncation method for the page address and page title columns. This last feature is an interesting one. By default, Firefox truncates a long address on the right. The Autocomplete Manager enables you to have a long entry truncated at the center, so that you can see both its domain name at the beginning and the specific page address at the end. Simple, but extremely useful! You also have the option of truncating entries on the left, although the reason someone would want to do that is beyond me :) This research paper has a good discussion of the different truncation methods and their effectiveness in helping users recognize previously-visited Web pages.
- exposing hidden options for the default component, not all of which can be set in about:config. These include showing/hiding the page titles, matching only manually-typed (as opposed to clicked-on) addresses, completing the best match inline, and setting the number of visible suggestions on the popup.
- a rudimentary history manager, where one can view detailed information for all history entries, and sort them by address or title. One can also add new entries manually, or select multiple entries and remove them (fixing this bug).
- other Autocomplete bug fixes:
Question. Are there any conflicts with other extensions or themes? What are the known issues?
Answer. I am aware of a conflict with the Options Menu extension, which is due to a hack I am utilizing to enable the preferences dialog to be resizable on Windows. I am doing this due to a Firefox bug in the first place. I am not sure when this Firefox bug will be fixed; in the meantime, I have contacted the Options Menu author and hope that he can resolve this from his side.
In addition, there are some other minor issues:
- The candidates array is not refreshed when removing bookmarks or when clearing the browsing history completely. This is done for performance reasons; I might revisit this decision in the future though.
- The Alt+L shortcut does not work on Mac OS X. This is because the Alt/Option key is used to input special characters on the platform.
- The 'Firefox default' sorting option does not yield the exact same order as the default component. There is currently no way for an extension to find out whether an address has been manually typed, a fact taken into account by the default component when sorting entries. As a result, the suggestion order proposed by the enhanced component may sometimes be a bit different, but typically this difference is negligible. This might change when SQLite-based storage for history and bookmarks comes around.
- The history dropdown shows non-typed (third-party) and clicked-on addresses, in addition to regular manually typed addresses. This is due to the same reason as above, namely that this information is not exposed by Firefox, so there is no way for an extension to differentiate.
- When pressing Page Down on the popup, the end of a long URL is sometimes displayed, instead of the beginning. I have no idea why that is; if you have any clue, please contact me.
Question. This extension slows down Firefox somewhat when it first starts up. Why is that and what can I do about it?
Question. Is this extension compatible with SeaMonkey, Flock, or Netscape Navigator?
Answer. No, not at this time, but I intend to look into that.
Question. Completing best match inline for the enhanced component does not always work!
Answer. This is not a bug, it's a feature :) Think about it, when the typed string does not match the address, or at least the beginning of the title of the top suggestion, but rather some other part of the title or another part of the domain, inlining the best match does not make sense any more. For instance, if the string was 'cs' and the top suggestion was 'acm.cs.ucla.edu', it would not be desirable to fill that in, since the user-entered string would have to be changed to 'acm.cs'. Thus, inlining the best match only happens when the typed string matches the beginning of the address or the title of the top suggestion.
Question. I want to specify my own custom sorting criterion. Is this possible?
Answer. No, not at this time. Adding this capability is on my to-do list though.
Question. I want to change the widths/order of the columns on the popup or display some other information about each entry on the third popup column, apart from / in addition to the last visit date. Is this possible?
Answer. No, I'm afraid not. I gave this issue a lot of thought to this and decided it would clutter the available options too much. I opted for setting the width ratios to 12:6:5 after extensive experimentation with different displays. If the current ratios and displayed information do not work for you, please let me know and I will accommodate reasonable requests.
Question. Is this extension localized?
Answer. No, not yet. If you speak a foreign language and you would be willing to help out, please let me know.
Question. What sorting order do you use for the history dropdown?
Answer. Most-recently-visited first. The same order is used for searches against the empty string, i.e. when the location bar is blank and the down arrow is pressed. This is useful when trying to quickly recall one of your recent visits. Compare this to the default Firefox behavior, which sorts the history dropdown according to the order the entries were added to the history file. The problem with that is that if you recently revisited an old address, it does not appear near the top of the popup.
The code for setting options and manipulating history entries lives in 'options.js', while the corresponding XUL interface is defined in 'options.xul'. This includes retrieving and saving user preferences, graying out non-applicable options, and adding, removing, and re-sorting entries in the history manager. While preferences for the enhanced component are implemented by code that manipulates the candidate entries, the default component's preferences are simply set by either defining an option found in about:config, or by directly setting a property of the location bar textbox, such as 'maxrows' for the number of visible entries. The code for doing that lives in 'acmanager.js'. File 'treeUtils.js' contains auxiliary functions for manipulating the XUL tree element that holds the history entries, while 'addEntry.xul' contains the XUL definition of the dialog box for manually adding new entries.
If the enhanced component is selected, certain properties and event listeners are added to the default location bar to enable the advanced functionality. This is done in 'aggregator.js'. The default location bar can always be re-activated, by simply removing these additional properties and event handlers. The default popup is disabled and replaced by a custom one containing a tree XUL element with three columns that will hold the suggestions; this is defined in 'acmanager-overlay.xul'. The tree is styled to display favicons next to addresses, show bookmark matches in italics, display the title and datasource columns in gray, and implement the desired order and truncation for the address and title columns. The custom popup also implements features such as middle-clicking on an entry to open it in a new tab, and highlighting entries when navigating using the keyboard or mouse. When the user types something in the location bar, the entire 'candidates' array is first searched to exclude local and search result pages, if applicable, and the remaining entries are then matched against address, title, and all parts of the domain if required. The entries that match are then sorted according to the selected criterion, possibly placing the bookmarks first, and the tree in the popup is populated with the suggestions. The code that performs the matching of entries lives in 'filterer.js', while the code that handles user actions on the popup and performs the sorting lives in 'acpopup.js'. The custom popup inherits all its behavior from the default XUL popup element, except for replacing the tree that holds the entries, and is defined in 'acpopup.xml'.
Techniques that are employed to improve performance include a timer that is started when the user starts typing, and fires 200ms after the user has stopped typing. Only when the timer fires does the filtering and sorting take place. This avoids unnecessary overhead when a user is typing rapidly on the location bar. In addition, caching is used when the previously typed string is a substring of the new string the user typed. For example, if the location bar reads 'foo' and the user types the letter 'b', the saved list of previous matches is used for determining the suggestions for the new string 'foob'. In such a case, sorting is not necessary, since the cached list is already sorted. Of course, when the user changes any of the matching options, such match against title, the cache is cleared.
To keep track of history entries and bookmarks being added or removed while the browser is running, a number of observers is put in place. For example, if a new bookmark is added, a new 'AutocompleteCandidate' object is created and added to the 'candidates' array. Duplicate (same address) entries are eliminated by giving preference to bookmarks. Should the user chooses to exclude bookmarks from the suggested entries, the removed duplicate history entries are then added to the candidates array. The code that implements the observers lives in 'aggregator.js'. Removing a bookmark, however, currently does not update the 'candidates' array for performance reasons.
There has been a fair amount of work in the Mozilla community on the behavior of the address Autocomplete component. The main ideas behind the current design are contained here. There was even an effort to utilize machine learning algorithms for Autocomplete, but the results did not show any significant imporovements over the current algorithm. The related bug report can be found here, while the project page is here, and the final report here.
There have also been some academic research efforts that looked into the design of history and bookmark lists. See the Web Page Revisitation and Web Navigation project pages for more details and published papers. In particular, this paper explores mechanisms for effective revisitation of Web pages, while this one contains a description of a novel tool that integrates history, bookmarks and the Back button. In addition, the Integrated Systems group at Microsoft Research has done some research on revisitation of Web pages.
Some other Firefox extensions have attempted to address issues related to features available in the Autocomplete Manager.
- myurlbar_a [2006.04.20] permanently replaces the location bar with a custom one, alas without the option of switching back to the default. The extension enables matching bookmark names and page titles. The suggestion popup is populated with bookmark names, history names, and history addresses, in that order. Within each category, the returned entries are limited to 10 by default, and they are sorted in the order they are returned by the corresponding RDF datasource. One can change the number of entries per category by modifying preferences extensions.mromarkhan.myurlbar.*. Favicons, for bookmarks only, are displayed on the suggestion popup, which is implemented by an 'arrowscrollbox' XUL element, as opposed to a 'tree' element used by Autocomplete Manager. The use of an 'arrowscrollbox' results in misalignment of columns, possible overflow beyond the browser window, and the absence of a scrollbar. In addition, mouse and keyboard navigation are not coordinated, up/down buttons do not change the location bar's text, and the Tab key does not work for scrolling through the entries. The highlighter for entries appears to have a fixed length and does not span the entire length of the popup. The history dropdown menu is also disabled. A search in myurlbar_a matches any part of an address, not just the beginning, which might produce irrelevant suggestions. However, there is an undocumented feature that enforces matching only the beginning of an address or title by prepending a '^' character to the search string.
- Inline Autocomplete [1.0] provides a convenient interface for setting three existing browser preferences: completing the best match inline, matching only manually-typed addresses, and selecting the entire address on the location bar with a single click, just like in Internet Explorer. However, all these preferences are already exposed in about:config.
- Enhanced History Manager [0.5.8.05.1] is an excellent extension for managing and searching through your history entries. Entries can be filtered based on address or title, grouped by last date visited or domain, and sorted in ascending or descending order by address, title, first or last date visited, domain, referrer, and visit count. Multiple entries can also be selected and deleted, a feature also provided by the Autocomplete Manager, but not by Firefox itself (see this bug).
- support Web-based bookmark services, such as Foxmarks or del.icio.us
- enable matching against history / bookmarks / tags only
- do not suggest invalid URLs, such as those that result in 404 errors
- resize the popup using the mouse (ala Internet Explorer)
- sort entries based on where a match occurred (address /title /tags)
- sort entries based on user's past selections on the popup
- tooltips for suggestions on the popup
- popup context menu
- bold the exact substring that caused the match
- press Tab to complete as far as the next ambiguity (ala Unix shell)
- include livemarks and microsummaries
- support user-specified sorting criteria
- support rules for excluding entries that contain a given string or belong to a given domain
|If you have any more ideas for new features, please contact me at|