Difference between revisions of "Localized Search in Firefox Search Box"
m (→'''Downloading and applying the patch:''') |
(Added How to remove the patch and Files sub-sections.) |
||
Line 29: | Line 29: | ||
− | === '''Downloading and applying the patch | + | === '''Downloading and applying the patch''' === |
1. Download the [http://zenit.senecac.on.ca/wiki/index.php/Image:Localsearchpatch_v01.txt.zip patch file] to the root mozilla directory of your source tree and unzip the file there. I suggest renaming the file localsearchpatch_v01.txt. | 1. Download the [http://zenit.senecac.on.ca/wiki/index.php/Image:Localsearchpatch_v01.txt.zip patch file] to the root mozilla directory of your source tree and unzip the file there. I suggest renaming the file localsearchpatch_v01.txt. | ||
Line 57: | Line 57: | ||
</pre> | </pre> | ||
− | === '''How to use the patch | + | |
+ | === '''How to use the patch''' === | ||
1. Navigate to a web site that offers a search engine plugin: | 1. Navigate to a web site that offers a search engine plugin: | ||
Line 90: | Line 91: | ||
* '''Note''' the DIAGNOSTIC MESSAGES in the terminal window. | * '''Note''' the DIAGNOSTIC MESSAGES in the terminal window. | ||
+ | |||
+ | |||
+ | === '''How to remove the patch''' === | ||
+ | |||
+ | * You can back-out a patch by using the patch command with the -R or --reverse option. This swaps the new file with the old one to reverse the patch. | ||
+ | |||
+ | <pre> | ||
+ | $ cd mozilla | ||
+ | $ patch -R -p0 < localsearchpatch_v01.txt | ||
+ | </pre> | ||
Line 148: | Line 159: | ||
[https://addons.mozilla.org/nl/firefox/addon/3544 SearchLoad Options :: Firefox Add-ons] | [https://addons.mozilla.org/nl/firefox/addon/3544 SearchLoad Options :: Firefox Add-ons] | ||
+ | |||
+ | == '''Files''' == | ||
+ | |||
+ | [http://mxr.mozilla.org/firefox/source/browser/base/content/browser.js browser.js] | ||
+ | |||
+ | [http://mxr.mozilla.org/firefox/source/browser/components/search/content/engineManager.js engineManager.js] | ||
+ | |||
+ | [http://mxr.mozilla.org/firefox/source/browser/components/search/nsIBrowserSearchService.idl nsIBrowserSearchService.idl] | ||
+ | |||
+ | [http://mxr.mozilla.org/firefox/source/browser/components/search/nsSearchService.js nsSearchService.js] | ||
+ | |||
+ | [http://mxr.mozilla.org/firefox/source/browser/components/search/content/search.xml search.xml] | ||
+ | |||
Revision as of 14:27, 2 February 2008
Contents
- 1 Project Name
- 2 Project Description
- 3 Project Leader
- 4 Project Details
- 5 Resources
- 6 Project-Related Bugs
- 7 Project News
Project Name
Localized Search in Firefox Search Box
Project Description
Firefox features a search box that can be customized to work with different search engines (e.g., Google, Yahoo!, Wikipedia, etc.). Most websites have their own search facilities, but the location of the search box on the page varies considerably. This project creates a mechanism for Firefox to pick up a web site's search mechanism and make it accessible to the user through the Firefox search box so that users have a consistent place to look for site-specific search.
Project Leader
Project Details
Release v.01
This release demonstrates my understanding of how some searchbar features currently work in the Firefox browser. I've uploaded a patch file that outputs a series of dump("DIAGNOSTIC MESSAGE: function name - what the source code is doing") statements to the terminal window while running a debug build of Firefox (i.e. Minefield). Specifically, what functions/methods are called and what is happening in the source code with respect to the searchbar menu when the following events occur:
- The browser auto-detects a site that has a search plugin available.
- The user selects the button to display the search engine list when a search plugin is available.
- The user selects the option to "Add this search engine".
- The user changes the current search engine by selecting it from the search bar drop-down list (menu).
- The user moves the position of a search engine using the Search Engine Manager.
- The user removes an auto-detected search engine from the list of "installed" search engines.
Downloading and applying the patch
1. Download the patch file to the root mozilla directory of your source tree and unzip the file there. I suggest renaming the file localsearchpatch_v01.txt.
- NOTE: This patch requires that you use a DEBUG build of firefox. To see the output messages from the dump() statements in the patch, you have to enable it by setting the preference browser.dom.window.dump.enabled to true. You can set this preference in about:config or in a user.js file. This preference is not listed in about:config by default, so you may need to create it. Enter
about:config
in the browser's address bar -> right-click the empty content area -> New -> Boolean. - You can preview the patch here: Localized Search in Firefox Search Box: Release v.01
2. Apply the patch.
$ cd mozilla $ patch -p0 < localsearchpatch_v01.txt
- NOTE: Use the -p0 option to strip 0 leading directories from each filename in the patch because it is being applied in the same directory where the patch was created.
3. Build your source tree.
$ cd mozilla $ make -f client.mk build
4. Run the browser to test the patch.
$ cd objdir/dist/bin $ ./firefox --ProfileManager --no-remote
How to use the patch
1. Navigate to a web site that offers a search engine plugin:
Note the DIAGNOSTIC MESSAGE in the terminal window.
2. Click the searchbar's dropdown menu button.
- Note the DIAGNOSTIC MESSAGE in the terminal window and the "Add this engine" option on the searchbar menu.
3. Click the "Add this engine" option on the searchbar menu.
- Note the DIAGNOSTIC MESSAGE in the terminal window and the position of the newly added search engine on the searchbar menu.
4. Select "Manage Search Engines..." from the searchbar menu and select the newly installed engine from the list. Click the "Remove" button and then click "OK".
- Note the DIAGNOSTIC MESSAGES in the terminal window.
5. Select "Manage Search Engines..." from the searchbar menu and select one of the installed engines on the list. Next, click the "Move Up" and "Move Down" buttons and then click "OK".
- Note the DIAGNOSTIC MESSAGES in the terminal window.
6. Click the searchbar's dropdown menu button and select a different search engine as the current engine.
- Note the DIAGNOSTIC MESSAGES in the terminal window.
How to remove the patch
- You can back-out a patch by using the patch command with the -R or --reverse option. This swaps the new file with the old one to reverse the patch.
$ cd mozilla $ patch -R -p0 < localsearchpatch_v01.txt
Release Target for v.02
- When Firefox loads a web page with an available search engine plugin, dynamically load the search engine and propagate it to the top of the searchbar's menu as the current engine.
Release Target for v.03
- When the user navigates away from the web page with the search engine plugin, dynamically remove the search plugin.
Release Target for v.04
- TBA
Release Target for v.05
- TBA
Release Target for v.06
- TBA
Release Target for v.07
- TBA
Release Target for v.08
- TBA
Release Target for v.09
- TBA
Release Target for v1.0
- TBA
Resources
Search Service: Code Design - Automatic Detection
SearchLoad Options :: Firefox Add-ons
Files
Project-Related Bugs
Bug 236587 - Allow bookmark keyword searches from the search bar
Bug 374268 – Quicksearch/keyword should be integrated into search engine manager
Bug 261124 – Textbox context menu should have "Add to Search Bar..."
Bug 360907 – Search current site with OpenSearch
Bug 408244 – show opensearch plugin availability same as feed availability
Bug 405443 – Making search engine discovery more discoverable
Bug 356332 – Select default search engine again after searching with another
Bug 384124 – Option to reset search bar engine to default when starting Firefox
Project News
For up-to-date information about my project, visit my blog: Kerry's Open Source Blog