"Internet Keywords" enhances the Navigation toolbar's "Location" field by allowing the contents to be sent to a remote server, rather than be handled by the browser. This has all the advantages of server-based services, including centralization, upgradability, personalization, etc. If the Location (URL) bar does "typed text to URL" resolution, then "server-side URL resolution" might be a more accurate name. However, Netscape hooked this feature into their "Internet Keyword" site in Communicator 4.x and the name has remained in the Seamonkey (Mozilla) Preferences UI.
How does this work in Firefox 2.0?
In Firefox 2.0, this feature is on by default, and will send the request to Google's normal search.
Firefox uses a product-specific override of the GRE defaults (see Seamonkey section below).http://lxr.mozilla.org/seamonkey/source/browser/app/profile/firefox.js#160
160 pref("keyword.enabled", true); 161 pref("keyword.URL", "chrome://browser-region/locale/region.properties");
The implementation has also been localized, although there is currently only one configuration:http://lxr.mozilla.org/seamonkey/source/browser/locales/en-US/chrome/browser-region/region.properties#18
In earlier versions (Phoenix -> Firefox 1.5(?)), requests were sent to Google's "I'm Feeling Lucky" service (bug 172389).
There is no Preference UI for this feature, so normal users cannot turn this feature off, nor can they change the "keyword" server.
Why is this turned off by default in Seamonkey (Mozilla)?
This feature is turned off by default because it takes precedence over other parsers and DNS behaviors that needed more testing. The feature has been on by default in the past, and maybe turned on in the future, depending on testing needs (see bug 100412).
Users can turn this feature on in the Preferences (Navigation > Smart Browsing > Internet Keywords). There is no Preference UI for changing the "keyword" server. Experienced users can modify the values via "about:config".
What about other products?
The trunk preference is set off, by default, in greprefs/all.js.
The overall design goals of a product often affect the choice. Perhaps not surprisingly:Off by default in Camino (bug 155321) and Thunderbird. On by default in Minimo and Netscape (6|7).
What Keyword server am I using?
Google is default the keyword server.
NOTE: Previous to Mozilla 1.6f, "keyword.netscape.com" was used.
How does it work?
The Location bar (Bugzilla component Browser:Location Bar) takes user input and converts it into a URL. If the user provides an absolute URL, the browser will get that URL. In practice, this is very rare, so the URL bar uses a series of parsers to convert the user-typed string to a complete URL and retrieve the guessed page. Examples include, but are not limited to: typing hostnames, domain names, file paths, etc.
Internet Keywords supplements the URL bar parsers as the handler of last resort. If all else fails, rather than receive a "The URL is invalid and cannot be loaded" error, the typed text is sent to the keyword server.
Internet Keywords is also used in several special cases, earlier in the typed input -> URL resolution process. For example, words with spaces will go directly to Internet Keywords. Also, Domain Guessing is replaced by Internet Keywords. For example, "mozilla" is not be expanded to "http://www.mozilla.com" when Internet Keywords are on.
Internet Keywords is turned by: pref("keyword.enabled", true).
When keywords are enabled the URL bar sends the text to the keyword: protocol handler, which sends the text to the Internet Keyword server, by URL encoding the string at the end of the keyword URL set in: (pref("keyword.URL", <URL>)
The server response is displayed as the page, which could be anything, but usually are one of two things:
- A re-direct to the "correct" page that the server thinks you wanted
- A page. The URL bar will say: "keyword:typed string>
NOTE: If the server gives you search results via an HTTP redirect, this causes your URL bar to replace the keyword: URL, so you never see it.
Problems with proxy servers:Internet Keywords was not designed to accommodate proxy servers, which alter the general event-model of of the URL bar. Some proxy servers will send responses that short circuit the events that lead to Internet Keywords being used. For example, Netscape Proxy Server will send a redirect to "http://www.mozilla.com" in response to "http://mozilla" (because it quietly implements proxy-side domain guessing). This causes the URL bar to get the absolute URL, and error if that fails. Also, common network errors that trigger Internet Keywords come back from proxy servers differently, and cause URL bar to give up and not use Internet Keywords (see bug 2875).
Alternate uses:Anyone familiar with editing preference files could:
- Develop their own keyword service on a web site
- Configure their profile to use that service by setting keyword.url in about:config
- Configure all profiles on a system to use that service by editing the contents of "default/prefs/"
Moreover, contributors familiar with building the code into a browser could:
- Create installers that distribute their keyword service as the default preference
- Modify the "More Information" button to provide documentation for their specific keyword service (the way Netscape 6 points to the Netscape page).
Limitations:Internet Keywords cannot be used as the first parser in the order of precedence. This may not be suitable for products designed for non-technical or consumer users. (See bug 127872)
Internet Keywords does not work with all string combinations. Please check Bugzilla for bugs and file bugs if you find new problems.
Resources:About Netscape Internet Keywords
Netscape Internet Keywords FAQ
A Brief Guide to Mozilla Preferences
Feedback and comments to bug 63317