Search Service

From MozillaWiki
Jump to navigation Jump to search

Background

Firefox has several "internet search" functions, each distinct. This confuses users, adds to the QA and maintenance burden, and makes it difficult for us to focus on one single source of search for marketing and documentation purposes.

The main sources of confusion are:

  • The Search Box (Sherlock Plugins)
  • Bookmarks Keywords

There are others ("Web Search for" context menu, keyword URL, etc, but these are less important since their uses are more distinct).

We are also carrying a large amount of code around in the Internet Search Service that is no longer used.

A New Internet Search Service

A new Internet Search Service can be implemented offering:

  • a single collection of search engines (1)
  • a single update mechanism
  • an API for obtaining "sanitized search URLs" based on constraints. Constraints include "obtain a URL for engine X, given that Y is default and X is #3 in an ordered list" - this can then be connected to the URL bar and Bookmarks, as required.

I am not convinced we want to continue to use Sherlock files. Sherlock is largely a Mac thing, and it is not clear that Apple will continue to support it moving forward. I think it is worth considering using a different, XML or RDF system for storing search metadata on the web. This would allow us to reduce our code size. The customizable search function in Firefox 1.0 was obscure/not-discoverable enough to allow me to say with relative comfort that we do not need to necessarily migrate custom engines over. A new format or an extended Sherlock format may also provide us with the ability to add dynamic fields, such as a timestamp.

User Interface

The UI would remain largely as it is today but with "Add Engines..." being replaced by a "Customize..." link which would open a search engine manager. This would be a very simple UI with a list of installed engines, [maybe the ability to reorder them], and maybe a remote list of available engines from UMO.

Installation

From one of several access points including:

  • the web, via the .addEngine API
  • the remote engine list in the Customize UI
  • the "Add Keyword for Search" context menu item capturing updates.

Searching

  • From the Search Box, using Ctrl+Up/Dn to cycle (but see bug 263146)
  • From the Search Box, using Aliases to select (when user types a recognized alias, engine flips). When box contents are cleared, reverts to default.
  • From the Location Bar, using Aliases to select

Work Estimate

3 Weeks