1
edit
Changes
no edit summary
* [http://en.wikipedia.org/wiki/Main_Page Wikipedia]
= '''Project Details''' =
== '''Release v.01''' ==
This release demonstrates my understanding of how some searchbar features currently work in the Firefox browser. I've uploaded created a [http://zenit.senecac.on.ca/wiki/index.php/Image:Localsearchpatch_v01.txt.zip 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 removes an auto-detected search engine from the list of "installed" search engines.
=== '''Release Details''' ===
=== '''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. * '''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 [http://kb.mozillazine.org/About:config about:config] or in a [http://kb.mozillazine.org/User.js_file user.js file]. This preference is not listed in about:config by default, so you may need to create it. Enter <code>about:config</code> 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.<pre> $ cd mozilla $ patch -p0 < localsearchpatch_v01.txt</pre>* '''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.<pre> $ cd mozilla $ make -f client.mk build</pre> 4. Run the browser to test the patch.<pre> $ cd objdir/dist/bin $ ./firefox --ProfileManager --no-remote</pre> === '''How to Use the Patch''' === 1. Navigate to a web site that offers a search engine plugin: * [https://bugzilla.mozilla.org/ Bugzilla@Mozilla]* [http://developer.mozilla.org/en/docs/Main_Page Mozilla Developer Center]* [http://www.theglobeandmail.com/ The Globe and Mail] '''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. <pre> $ cd mozilla $ patch -R -p0 < localsearchpatch_v01.txt</pre>
The target for this release was to dynamically "Add" a search engine plugin when Firefox loads a web page with an available search plugin, and then propagate the search engine to the top of the searchbar's menu as the current engine. The propagation of a newly added search engine as the current engine in the searchbar's menu was already a behavioral feature of Firefox 3 so there were no changes required for this part of my release target. Determining how to dynamically "Add" an available search engine plugin was challenging to achieve, but in the end, it only required a few modifications to the code in the [http://lxr.mozilla.org/seamonkey/source/browser/base/content/browser.js browser.js file].
=== '''Release Details ''' ===
==== [[Localized Search in Firefox Search Box: Release v.02]] ====
The target for this release was to build upon Release v.02 by dynamically "Removing" the dynamically "Added" search engine when the user navigates away from the web site offering the search plugin. I arrived at two solutions for this release and they are discussed in the next two sub-sections.
=== '''Release Details ''' ===
==== [[Localized Search in Firefox Search Box: Release v.03.1]] ====