Bug 1120777 - Make OpenSearch queries open in the user's default browser; r=mkmelin, ui-r=josiahone
authorJim Porter <jporter@mozilla.com>
Mon, 23 Feb 2015 00:13:29 -0600
changeset 17555 710080f9a4af5175ed353b1a4b75a06ef5186fc6
parent 17554 f5c8e7536911c6440a56cb82e6ff4dfca1ab240a
child 17556 47051fbe6edd14406a3f72501b6b6797c8aef79d
push id10803
push usersquibblyflabbetydoo@gmail.com
push dateMon, 23 Feb 2015 06:13:39 +0000
treeherdercomm-central@710080f9a4af [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmkmelin, josiahone
bugs1120777
Bug 1120777 - Make OpenSearch queries open in the user's default browser; r=mkmelin, ui-r=josiahone
mail/app/profile/all-thunderbird.js
mail/base/content/mailWindowOverlay.xul
mail/base/content/messenger.xul
mail/base/content/msgMail3PaneWindow.js
mail/base/content/utilityOverlay.js
mail/base/content/webSearchTab.js
mail/base/content/webSearchTab.xul
mail/base/jar.mn
mail/locales/en-US/chrome/messenger/messenger.properties
mail/themes/linux/jar.mn
mail/themes/linux/mail/icons/search-favorite.png
mail/themes/linux/mail/webSearch.css
mail/themes/osx/jar.mn
mail/themes/osx/mail/icons/search-favorite.png
mail/themes/osx/mail/webSearch.css
mail/themes/windows/jar.mn
mail/themes/windows/mail/icons/search-favorite.png
mail/themes/windows/mail/webSearch-aero.css
mail/themes/windows/mail/webSearch.css
--- a/mail/app/profile/all-thunderbird.js
+++ b/mail/app/profile/all-thunderbird.js
@@ -793,18 +793,16 @@ pref("mail.taskbar.lists.enabled", true)
 pref("mail.taskbar.lists.tasks.enabled", true);
 #endif
 
 // Account provisioner.
 pref("mail.provider.providerList", "https://broker-live.mozillamessaging.com/provider/list");
 pref("mail.provider.suggestFromName", "https://broker-live.mozillamessaging.com/provider/suggest");
 pref("mail.provider.enabled", true);
 
-pref("mail.websearch.open_externally", false);
-
 // Pointer to the default engine name.
 pref("browser.search.defaultenginename", "chrome://messenger-region/locale/region.properties");
 
 // Ordering of search engines in the engine list.
 pref("browser.search.order.1", "chrome://messenger-region/locale/region.properties");
 pref("browser.search.order.2", "chrome://messenger-region/locale/region.properties");
 pref("browser.search.order.3", "chrome://messenger-region/locale/region.properties");
 
--- a/mail/base/content/mailWindowOverlay.xul
+++ b/mail/base/content/mailWindowOverlay.xul
@@ -621,17 +621,17 @@
     <menuitem id="mailContext-selectall"
               label="&selectAllCmd.label;"
               accesskey="&selectAllCmd.accesskey;"
               command="cmd_selectAll"/>
     <menuseparator id="mailContext-sep-clipboard"/>
 
     <menuitem id="mailContext-searchTheWeb"
               label="[glodaComplete.webSearch1.label]"
-              oncommand="openSearchTab(event.target.value)"/>
+              oncommand="openWebSearch(event.target.value)"/>
 
     <!-- Spellchecking general menu items (enable, add dictionaries...) -->
     <menuseparator id="mailContext-spell-separator"/>
     <menuitem id="mailContext-spell-check-enabled"
               label="&spellCheckToggle.label;"
               type="checkbox"
               accesskey="&spellCheckToggle.accesskey;"
               oncommand="gSpellChecker.toggleEnabled();"/>
--- a/mail/base/content/messenger.xul
+++ b/mail/base/content/messenger.xul
@@ -14,17 +14,16 @@
 <?xul-overlay href="chrome://communicator/content/utilityOverlay.xul"?>
 <?xul-overlay href="chrome://messenger/content/msgHdrViewOverlay.xul"?>
 <?xul-overlay href="chrome://messenger/content/mailWindowOverlay.xul"?>
 <?xul-overlay href="chrome://messenger/content/extraCustomizeItems.xul"?>
 <?xul-overlay href="chrome://messenger/content/mailOverlay.xul"?>
 <?xul-overlay href="chrome://messenger/content/editContactOverlay.xul"?>
 <?xul-overlay href="chrome://messenger/content/specialTabs.xul"?>
 <?xul-overlay href="chrome://messenger/content/preferences/preferencesTab.xul"?>
-<?xul-overlay href="chrome://messenger/content/webSearchTab.xul"?>
 <?xul-overlay href="chrome://messenger/content/quickFilterBar.xul"?>
 #ifdef XP_MACOSX
 <?xul-overlay href="chrome://messenger/content/macMessengerOverlay.xul"?>
 #endif
 
 <!DOCTYPE window [
 <!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
 %brandDTD;
--- a/mail/base/content/msgMail3PaneWindow.js
+++ b/mail/base/content/msgMail3PaneWindow.js
@@ -464,16 +464,17 @@ function OnLoadMessenger()
   Services.prefs.addObserver("mail.pane_config.dynamic", MailPrefObserver, false);
   Services.prefs.addObserver("mail.showCondensedAddresses", MailPrefObserver,
                              false);
 
   MailOfflineMgr.init();
   CreateMailWindowGlobals();
   GetMessagePaneWrapper().collapsed = true;
   msgDBCacheManager.init();
+  Services.search.init();
 
   // This needs to be before we throw up the account wizard on first run.
   try {
     mailInstrumentationManager.init();
   } catch(ex) {logException(ex);}
 
   // - initialize tabmail system
   // Do this before LoadPostAccountWizard since that code selects the first
@@ -505,17 +506,16 @@ function OnLoadMessenger()
                                     LightWeightThemeWebInstaller, false, true);
   }
 
   Services.obs.addObserver(gPluginHandler.pluginCrashed, "plugin-crashed", false);
 
   // This also registers the contentTabType ("contentTab")
   specialTabs.openSpecialTabsOnStartup();
   preferencesTabType.initialize();
-  webSearchTabType.initialize();
   tabmail.registerTabType(accountProvisionerTabType);
 
   // verifyAccounts returns true if the callback won't be called
   // We also don't want the account wizard to open if any sort of account exists
   if (verifyAccounts(LoadPostAccountWizard, false, AutoConfigWizard))
     LoadPostAccountWizard();
 
   // Set up the summary frame manager to handle loading pages in the
@@ -707,18 +707,16 @@ function OnUnloadMessenger()
 
   ToolbarIconColor.uninit();
 
   LightweightThemeListener.uninit();
 
   let tabmail = document.getElementById("tabmail");
   tabmail._teardown();
 
-  webSearchTabType.shutdown();
-
   MailServices.mailSession.RemoveFolderListener(folderListener);
 
   gPhishingDetector.shutdown();
 
   Services.obs.removeObserver(gPluginHandler.pluginCrashed, "plugin-crashed");
 
   // FIX ME - later we will be able to use onload from the overlay
   OnUnloadMsgHeaderPane();
--- a/mail/base/content/utilityOverlay.js
+++ b/mail/base/content/utilityOverlay.js
@@ -1,9 +1,8 @@
-/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 Components.utils.import("resource://gre/modules/PlacesUtils.jsm");
 Components.utils.import("resource://gre/modules/Services.jsm");
 
 var gShowBiDi = false;
@@ -185,16 +184,33 @@ function openUILink(url, event)
 }
 
 function openWhatsNew()
 {
   openContentTab(Services.urlFormatter.formatURLPref("mailnews.start_page.override_url"));
 }
 
 /**
+ * Open a web search in the default browser for a given query.
+ *
+ * @param query the string to search for
+ * @param engine (optional) the search engine to use
+ */
+function openWebSearch(query, engine)
+{
+  Services.search.init({
+    onInitComplete: function() {
+      if (!engine)
+        engine = Services.search.currentEngine;
+      openLinkExternally(engine.getSubmission(query).uri.spec);
+    }
+  });
+}
+
+/**
  * Open the specified tab type (possibly in a new window)
  *
  * @param tabType the tab type to open (e.g. "contentTab")
  * @param tabParams the parameters to pass to the tab
  * @param where 'tab' to open in a new tab (default) or 'window' to open in a
  *        new window
  */
 function openTab(tabType, tabParams, where)
@@ -238,46 +254,16 @@ function openContentTab(url, where, hand
   let clickHandler = null;
   if (handlerRegExp)
     clickHandler = "specialTabs.siteClickHandler(event, new RegExp(\"" + handlerRegExp + "\"));";
 
   openTab("contentTab", {contentPage: url, clickHandler: clickHandler}, where);
 }
 
 /**
- * Open a search page for the specified query in a new tab, window, or
- * externally. If mail.websearch.open_externally is true, always open
- * externally.
- *
- * @param query the term to search for
- * @param where 'tab' to open in a new tab (default), 'window' to open in a
- *        new window, or 'external' to open in the default browser
- */
-function openSearchTab(query, where) {
-  let currentEngine = Services.search.currentEngine;
-  let submission = currentEngine.getSubmission(query);
-
-  if (where == "external" ||
-      Services.prefs.getBoolPref("mail.websearch.open_externally")) {
-    openLinkExternally(submission.uri.spec);
-    return;
-  }
-
-  let params = {
-    background: false,
-    contentPage: submission.uri.spec,
-    postData: submission.postData,
-    query: query,
-    engine: currentEngine,
-    clickHandler: "webSearchTabType.siteClickHandler(event)",
-  };
-  openTab("webSearchTab", params, where);
-}
-
-/**
  * Open the preferences page for the specified query in a new tab.
  *
  * @param paneID     ID of prefpane to select automatically.
  * @param tabID      ID of tab to select on the prefpane.
  * @param otherArgs  other prefpane specific arguments.
  */
 function openPreferencesTab(paneID, tabID, otherArgs)
 {
deleted file mode 100644
--- a/mail/base/content/webSearchTab.js
+++ /dev/null
@@ -1,355 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-Components.utils.import("resource://gre/modules/Services.jsm");
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-Components.utils.import("resource:///modules/errUtils.js");
-
-/**
- * A tab to show search results.
- */
-let webSearchTabType = {
-  __proto__: contentTabBaseType,
-  name: "webSearchTab",
-  perTabPanel: "vbox",
-  lastBrowserId: 0,
-  bundle: Services.strings.createBundle(
-    "chrome://messenger/locale/messenger.properties"),
-  protoSvc: Components.classes["@mozilla.org/uriloader/external-protocol-service;1"]
-                      .getService(Components.interfaces.nsIExternalProtocolService),
-
-  get loadingTabString() {
-    delete this.loadingTabString;
-    return this.loadingTabString = document.getElementById("bundle_messenger")
-                                           .getString("loadingTab");
-  },
-
-  modes: {
-    webSearchTab: {
-      type: "webSearchTab",
-      maxTabs: 10
-    }
-  },
-
-  initialize: function() {
-    let browser = document.getElementById("dummywebsearchbrowser");
-
-    // Manually hook up session and global history for the first browser
-    // so that we don't have to load global history before bringing up a
-    // window.
-    // Wire up session and global history before any possible
-    // progress notifications for back/forward button updating
-    browser.webNavigation.sessionHistory =
-      Components.classes["@mozilla.org/browser/shistory;1"]
-                .createInstance(Components.interfaces.nsISHistory);
-    Services.obs.addObserver(browser, "browser:purge-session-history", false);
-
-    // remove the disablehistory attribute so the browser cleans up, as
-    // though it had done this work itself
-    browser.removeAttribute("disablehistory");
-
-    let tabmail = document.getElementById("tabmail");
-    tabmail.registerTabType(this);
-    Services.obs.addObserver(this, "browser-search-engine-modified", false);
-  },
-
-  shutdown: function webSearchTabType_shutdown() {
-    try {
-      Services.obs.removeObserver(this, "browser-search-engine-modified");
-    }
-    catch (e) {
-      dump("webSearchTabType: failed to remove search-engine-modified observer: " +
-           e.toString() + "\n");
-    }
-    let browser = document.getElementById("dummywebsearchbrowser");
-    try {
-      Services.obs.removeObserver(browser, "browser:purge-session-history");
-    }
-    catch (e) {
-      dump("webSearchTabType: failed to remove browser:purge-session-history observer: " +
-           e.toString() + "\n");
-    }
-  },
-
-  openTab: function onTabOpened(aTab, aArgs) {
-    if (!"contentPane" in aArgs || !"engine" in aArgs || !"query" in aArgs)
-      throw("contentPage, engine, and query must be specified");
-
-    // First clone the page and set up the basics.
-    let clone = document.getElementById("webSearchTab").firstChild
-                        .cloneNode(true);
-
-    clone.setAttribute("id", "webSearchTab" + this.lastBrowserId);
-    clone.setAttribute("collapsed", false);
-
-    aTab.panel.appendChild(clone);
-
-    aTab.engines = clone.querySelector(".engines");
-    aTab.defaultButton = clone.querySelector(".defaultButton");
-
-    // Start setting up the browser.
-    aTab.browser = aTab.panel.querySelector("browser");
-
-    // As we're opening this tab, showTab may not get called, so set
-    // the type according to if we're opening in background or not.
-    let background = ("background" in aArgs) && aArgs.background;
-    aTab.browser.setAttribute("type", background ? "content-targetable" :
-                                                   "content-primary");
-
-    aTab.browser.setAttribute("id", "webSearchTabBrowser" + this.lastBrowserId);
-
-    aTab.clickHandler = "clickHandler" in aArgs && aArgs.clickHandler ?
-                        aArgs.clickHandler :
-                        "specialTabs.defaultClickHandler(event);";
-    aTab.browser.setAttribute("onclick", aTab.clickHandler);
-
-    aTab.browser.addEventListener("DOMLinkAdded", DOMLinkHandler, false);
-    gPluginHandler.addEventListeners(aTab.browser);
-
-    // Now initialise the find bar.
-    aTab.findbar = aTab.panel.querySelector("findbar");
-    aTab.findbar.setAttribute("browserid",
-                              "webSearchTabBrowser" + this.lastBrowserId);
-
-    // Default to reload being disabled.
-    aTab.reloadEnabled = false;
-
-    aTab.currentEngine = aArgs.engine;
-    aTab.query = aArgs.query;
-
-    this._setEngineButtons(aTab, aArgs.engine.name);
-
-    // Now set up the listeners.
-    this._setUpTitleListener(aTab);
-    this._setUpCloseWindowListener(aTab);
-    this._setUpBrowserListener(aTab);
-
-    // Now start loading the content.
-    aTab.title = this.loadingTabString;
-
-    this._setDefaultButtonState(aTab, aTab.currentEngine ==
-                                      Services.search.currentEngine);
-
-    // Set up onclick/oncommand listeners.
-    let self = this;
-    aTab.engines.addEventListener("command", function(event) {
-      if (event.target.localName != "toolbarbutton")
-        return;
-      self._doSearch(aTab, event.target.engine);
-      self._setDefaultButtonState(aTab, aTab.currentEngine ==
-                                        Services.search.currentEngine);
-    }, true);
-    aTab.defaultButton.addEventListener("click", function () {
-      Services.search.currentEngine = aTab.currentEngine;
-      self._setDefaultButtonState(aTab, true);
-    }, true);
-
-    aTab.browser.loadURIWithFlags(aArgs.contentPage, null, null, null,
-                                  (aArgs.postData || null));
-
-    goUpdateCommand("cmd_goBackSearch");
-    goUpdateCommand("cmd_goForwardSearch");
-
-    this.lastBrowserId++;
-  },
-
-  _setEngineButtons: function webSearchTab_setEngineButtons(aTab, currentEngineName) {
-    // Default to the passed-in default for current engine, will be overridden
-    // if an existing engine is checked
-    let checkedEngine = currentEngineName;
-
-    // Clear out any existing search engine buttons
-    let ch = null;
-    while ((ch = aTab.engines.lastChild)) {
-      if (ch.getAttribute("checked")) {
-        checkedEngine = ch.getAttribute("tooltiptext");
-      }
-      ch.remove();
-    }
-
-    // Register new buttons for all the search engines
-    for each (let engine in Services.search.getVisibleEngines()) {
-      let button = document.createElement("toolbarbutton");
-      button.setAttribute("type", "radio");
-      button.setAttribute("group", "engines");
-      button.setAttribute("image",
-          engine.iconURI ? engine.iconURI.spec : "resource://gre-resources/broken-image.png");
-      button.setAttribute("tooltiptext", engine.name);
-      button.engine = engine;
-      if (checkedEngine == engine.name)
-        button.setAttribute("checked", true);
-      aTab.engines.appendChild(button);
-    }
-  },
-
-  // receive updates when the list of search engines changes
-  observe: function webSearchTab_observe(aEngine, aTopic, aVerb) {
-    if (aTopic == "browser-search-engine-modified") {
-      let tabmail = document.getElementById("tabmail");
-      let searchTabs = tabmail.tabModes["webSearchTab"].tabs;
-      for (let i = 0 ; i < searchTabs.length ; i++) {
-        this._setEngineButtons(searchTabs[i], null);
-      }
-    }
-  },
-
-  persistTab: function onPersistTab(aTab) {
-    if (aTab.browser.currentURI.spec == "about:blank")
-      return null;
-
-    let onClick = aTab.clickHandler;
-
-    return { tabURI: aTab.browser.currentURI.spec,
-             query: aTab.query,
-             engine: aTab.currentEngine.name,
-             clickHandler: onClick ? onClick : null,
-           };
-  },
-
-  restoreTab: function onRestoreTab(aTabmail, aPersistedState) {
-    let engine = Services.search.getEngineByName(aPersistedState.engine);
-    aTabmail.openTab("webSearchTab",
-                     { contentPage: aPersistedState.tabURI,
-                       clickHandler: aPersistedState.clickHandler,
-                       query: aPersistedState.query,
-                       engine: engine,
-                       background: true,
-                     });
-  },
-
-  siteClickHandler: function(aEvent) {
-    // Don't handle events that: a) aren't trusted, b) have already been
-    // handled or c) aren't left-click.
-    if (!aEvent.isTrusted || aEvent.defaultPrevented || aEvent.button)
-      return true;
-
-    let href = hRefForClickEvent(aEvent, true);
-    if (href) {
-      let tab = document.getElementById("tabmail").selectedTab;
-      let preUri = tab.browser.currentURI;
-      let postUri = makeURI(href);
-
-      if (!this.protoSvc.isExposedProtocol(postUri.scheme) ||
-          postUri.schemeIs("http") || postUri.schemeIs("https")) {
-        if (!this._isInEngine(tab.currentEngine, preUri, postUri)) {
-          aEvent.preventDefault();
-          openLinkExternally(href);
-        }
-      }
-    }
-    return false;
-  },
-
-  commands: {
-    cmd_goBackSearch: {
-      isEnabled: function(aTab) {
-        return aTab.browser.canGoBack;
-      },
-      doCommand: function(aTab) {
-        aTab.browser.goBack();
-      }
-    },
-
-    cmd_goForwardSearch: {
-      isEnabled: function(aTab) {
-        return aTab.browser.canGoForward;
-      },
-      doCommand: function(aTab) {
-        aTab.browser.goForward();
-      }
-    },
-  },
-
-  supportsCommand: function supportsCommand(aCommand, aTab) {
-    return (aCommand in this.commands) ||
-           this.__proto__.supportsCommand(aCommand, aTab);
-  },
-
-  isCommandEnabled: function isCommandEnabled(aCommand, aTab) {
-    if (!this.supportsCommand(aCommand))
-      return false;
-
-    if (aCommand in this.commands)
-      return this.commands[aCommand].isEnabled(aTab);
-    else
-      return this.__proto__.isCommandEnabled(aCommand, aTab);
-  },
-
-  doCommand: function doCommand(aCommand, aTab) {
-    if (!this.supportsCommand(aCommand))
-      return;
-
-    if (aCommand in this.commands) {
-      var cmd = this.commands[aCommand];
-      if (!cmd.isEnabled(aTab))
-        return;
-      cmd.doCommand(aTab);
-    } else {
-      this.__proto__.doCommand(aCommand, aTab);
-    }
-  },
-
-  _doSearch: function(aTab, engine) {
-    aTab.currentEngine = engine;
-    let submission = aTab.currentEngine.getSubmission(aTab.query);
-
-    aTab.browser.loadURIWithFlags(submission.uri.spec, null, null, null,
-                                  submission.postData);
-  },
-
-  _isInEngine: function(aEngine, aPreUri, aPostUri) {
-    switch (aEngine.name) {
-      case "Google":
-        return aPreUri.host == aPostUri.host &&
-               aPostUri.path.startsWith("/search?");
-      case "Yahoo":
-        return aPostUri.host.endsWith("search.yahoo.com") &&
-               !aPostUri.path.startsWith("/r/");
-    }
-
-    return aPreUri.host == aPostUri.host;
-  },
-
-  _setDefaultButtonState: function setDefaultButtonState(aTab, isDefault) {
-    aTab.defaultButton.checked = isDefault;
-    let key = "websearch." + (isDefault ? "isDefault" : "setDefault");
-    aTab.defaultButton.tooltipText = this.bundle.GetStringFromName(key);
-  },
-
-  _setUpBrowserListener: function setUpBrowserListener(aTab) {
-    // Browser navigation (front/back) does not cause onDOMContentLoaded,
-    // so we have to use nsIWebProgressListener
-    this.progressListener = {
-      QueryInterface: XPCOMUtils.generateQI([
-        Components.interfaces.nsIWebProgressListener,
-        Components.interfaces.nsISupportsWeakReference,
-      ]),
-
-      onLocationChange: function(aProgress, aRequest, aURI) {
-        goUpdateCommand("cmd_goBackSearch");
-        goUpdateCommand("cmd_goForwardSearch");
-      },
-
-      onStateChange: function(aWebProgress, aRequest, aFlag, aStatus) {},
-      onProgressChange: function(aWebProgress, aRequest, curSelf, maxSelf,
-                                 curTot, maxTot) {},
-      onStatusChange: function(aWebProgress, aRequest, aStatus, aMessage) {},
-      onSecurityChange: function(aWebProgress, aRequest, aState) {},
-    };
-
-    aTab.browser.addProgressListener(this.progressListener);
-
-    // Create a filter and hook it up to our browser
-    aTab.filter = Components.classes["@mozilla.org/appshell/component/browser-status-filter;1"]
-                            .createInstance(Components.interfaces.nsIWebProgress);
-
-    // Wire up a progress listener to the filter for this browser
-    aTab.progressListener = new tabProgressListener(aTab, false);
-
-    aTab.filter.addProgressListener(aTab.progressListener,
-                                    Components.interfaces.nsIWebProgress.NOTIFY_ALL);
-    aTab.browser.webProgress.addProgressListener(aTab.filter,
-                                                 Components.interfaces.nsIWebProgress.NOTIFY_ALL);
-  },
-};
deleted file mode 100644
--- a/mail/base/content/webSearchTab.xul
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-  - License, v. 2.0. If a copy of the MPL was not distributed with this
-  - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<?xml-stylesheet href="chrome://messenger/skin/webSearch.css" type="text/css"?>
-
-<overlay id="websearch-overlay"
-         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-  <script type="application/x-javascript"
-          src="chrome://messenger/content/webSearchTab.js"/>
-
-  <commandset id="webSearchItems" commandupdater="true">
-    <command id="cmd_goBackSearch" oncommand="goDoCommand('cmd_goBackSearch')"/>
-    <command id="cmd_goForwardSearch" oncommand="goDoCommand('cmd_goForwardSearch')"/>
-  </commandset>
-
-
-  <hbox id="tabmail-container">
-    <vbox id="webSearchTab" collapsed="true">
-      <vbox flex="1">
-        <toolbox id="dummywebsearchtoolbox" class="contentTabToolbox">
-          <toolbar id="dummywebsearchtoolbar" class="contentTabToolbar"/>
-        </toolbox>
-        <hbox flex="1">
-          <vbox class="navbar">
-            <vbox class="navbuttons">
-              <toolbarbutton class="back" command="cmd_goBackSearch"/>
-              <toolbarbutton class="forward" command="cmd_goForwardSearch"/>
-            </vbox>
-            <arrowscrollbox class="engines" orient="vertical"
-                            flex="1"/>
-            <button class="defaultButton" type="checkbox"/>
-          </vbox>
-          <browser id="dummywebsearchbrowser" type="content-targetable" flex="1"
-                   disablehistory="true" autocompletepopup="PopupAutoComplete"
-                   context="mailContext"/>
-        </hbox>
-        <findbar browserid="dummywebsearchbrowser"/>
-      </vbox>
-    </vbox>
-  </hbox>
-</overlay>
--- a/mail/base/jar.mn
+++ b/mail/base/jar.mn
@@ -43,18 +43,16 @@ messenger.jar:
     content/messenger/SearchDialog.js               (content/SearchDialog.js)
     content/messenger/ABSearchDialog.xul            (content/ABSearchDialog.xul)
     content/messenger/ABSearchDialog.js             (content/ABSearchDialog.js)
     content/messenger/FilterListDialog.xul          (content/FilterListDialog.xul)
     content/messenger/FilterListDialog.js           (content/FilterListDialog.js)
 *   content/messenger/plugins.js                    (content/plugins.js)
     content/messenger/specialTabs.js                (content/specialTabs.js)
     content/messenger/specialTabs.xul               (content/specialTabs.xul)
-    content/messenger/webSearchTab.xul              (content/webSearchTab.xul)
-    content/messenger/webSearchTab.js               (content/webSearchTab.js)
     content/messenger/subscribe.xul                 (content/subscribe.xul)
     content/messenger/subscribe.js                  (content/subscribe.js)
 *   content/messenger/aboutDialog.xul               (content/aboutDialog.xul)
 *   content/messenger/aboutDialog.js                (content/aboutDialog.js)
 *   content/messenger/aboutRights.xhtml             (content/aboutRights.xhtml)
 *   content/messenger/systemIntegrationDialog.xul   (content/systemIntegrationDialog.xul)
     content/messenger/systemIntegrationDialog.js    (content/systemIntegrationDialog.js)
     content/messenger/folderPane.js                 (content/folderPane.js)
--- a/mail/locales/en-US/chrome/messenger/messenger.properties
+++ b/mail/locales/en-US/chrome/messenger/messenger.properties
@@ -735,19 +735,16 @@ safeModeRestartPromptTitle=Restart with 
 safeModeRestartPromptMessage=Are you sure you want to disable all add-ons and restart?
 safeModeRestartButton=Restart
 
 # LOCALIZATION NOTE (downloadAndInstallButton.label): %S is replaced by the
 # version of the update: "Update to 28.0".
 update.downloadAndInstallButton.label=Update to %S
 update.downloadAndInstallButton.accesskey=U
 
-websearch.setDefault=Set this search engine as the default
-websearch.isDefault=This search engine is currently the default
-
 outdatedpluginsMessage.title=Some plugins used by this page are out of date.
 outdatedpluginsMessage.updateButton.label=Update Plugins…
 outdatedpluginsMessage.updateButton.accesskey=U
 blockedpluginsMessage.title=Some plugins required by this page have been blocked for your protection.
 blockedpluginsMessage.infoButton.label=Details…
 blockedpluginsMessage.infoButton.accesskey=D
 blockedpluginsMessage.searchButton.label=Update Plugins…
 blockedpluginsMessage.searchButton.accesskey=U
--- a/mail/themes/linux/jar.mn
+++ b/mail/themes/linux/jar.mn
@@ -22,17 +22,16 @@ classic.jar:
   skin/classic/messenger/operator.png                         (../../components/im/themes/operator.png)
   skin/classic/messenger/half-operator.png                    (../../components/im/themes/half-operator.png)
   skin/classic/messenger/voice.png                            (../../components/im/themes/voice.png)
   skin/classic/messenger/browserRequest.css                   (mail/browserRequest.css)
   skin/classic/messenger/section_collapsed.png                (mail/section_collapsed.png)
   skin/classic/messenger/section_expanded.png                 (mail/section_expanded.png)
   skin/classic/messenger/messageHeader.css                    (mail/messageHeader.css)
   skin/classic/messenger/messageBody.css                      (mail/messageBody.css)
-  skin/classic/messenger/webSearch.css                        (mail/webSearch.css)
   skin/classic/messenger/messageQuotes.css                    (mail/messageQuotes.css)
   skin/classic/messenger/messenger.css                        (mail/messenger.css)
 * skin/classic/messenger/messengerLWTheme.css                 (mail/messengerLWTheme.css)
   skin/classic/messenger/attachmentList.css                   (mail/attachmentList.css)
   skin/classic/messenger/imageFilters.svg                     (mail/imageFilters.svg)
   skin/classic/messenger/mailWindow1.css                      (mail/mailWindow1.css)
   skin/classic/messenger/tagColors.css                        (mail/tagColors.css)
   skin/classic/messenger/messageWindow.css                    (mail/messageWindow.css)
@@ -247,17 +246,16 @@ classic.jar:
   skin/classic/messenger/icons/arrow/arrow-up.png             (mail/icons/arrow/arrow-up.png)
   skin/classic/messenger/icons/arrow/arrow-down.png           (mail/icons/arrow/arrow-down.png)
   skin/classic/messenger/icons/arrow/arrow-left-dim.png       (mail/icons/arrow/arrow-left-dim.png)
   skin/classic/messenger/icons/arrow/arrow-right-dim.png      (mail/icons/arrow/arrow-right-dim.png)
   skin/classic/messenger/icons/arrow/arrow-up-dim.png         (mail/icons/arrow/arrow-up-dim.png)
   skin/classic/messenger/icons/arrow/arrow-down-dim.png       (mail/icons/arrow/arrow-down-dim.png)
   skin/classic/messenger/icons/arrow/foldercycler-arrow-left.png        (mail/icons/arrow/foldercycler-arrow-left.png)
   skin/classic/messenger/icons/arrow/foldercycler-arrow-right.png       (mail/icons/arrow/foldercycler-arrow-right.png)
-  skin/classic/messenger/icons/search-favorite.png            (mail/icons/search-favorite.png)
   skin/classic/messenger/icons/connecting.png                 (mail/icons/connecting.png)
   skin/classic/messenger/icons/loading.png                    (mail/icons/loading.png)
   skin/classic/messenger/tagbg.png                            (mail/tagbg.png)
 % skin editor classic/1.0 %skin/classic/editor/
   skin/classic/editor/editor.css                              (editor/editor.css)
   skin/classic/editor/EditorDialog.css                        (editor/EditorDialog.css)
   skin/classic/editor/icons/img-align-bottom.gif              (editor/img-align-bottom.gif)
   skin/classic/editor/icons/img-align-left.gif                (editor/img-align-left.gif)
deleted file mode 100644
index 5387822a9e6ac4d9af1b9b75014acec2167d0b92..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/mail/themes/linux/mail/webSearch.css
+++ /dev/null
@@ -1,59 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-.navbar {
-  -moz-border-end: 2px solid;
-  -moz-border-left-colors: threeDShadow threeDHighlight;
-  -moz-border-right-colors: threeDShadow threeDHighlight;
-  padding: 2px 0;
-  -moz-box-align: center;
-  background-color: -moz-dialog;
-}
-
-.navbuttons {
-  border-bottom: 1px solid #bbb;
-  padding-bottom: 10px;
-  margin-bottom: 10px;
-}
-
-.navbuttons .toolbarbutton-text {
-  display: none;
-}
-
-.back {
-  list-style-image: url("moz-icon://stock/gtk-go-back?size=menu");
-}
-
-.back[disabled="true"] {
-  list-style-image: url("moz-icon://stock/gtk-go-back?size=menu&state=disabled");
-}
-
-.forward {
-  list-style-image: url("moz-icon://stock/gtk-go-forward?size=menu");
-}
-
-.forward[disabled="true"] {
-  list-style-image: url("moz-icon://stock/gtk-go-forward?size=menu&state=disabled");
-}
-
-.engines .toolbarbutton-icon {
-  width: 16px;
-  height: 16px;
-}
-
-.defaultButton {
-  -moz-appearance: none;
-  list-style-image: url("chrome://messenger/skin/icons/search-favorite.png");
-  -moz-image-region: rect(0px 16px 16px 0px);
-
-  border: none;
-  padding: 0;
-  margin: 0;
-  min-width: 0;
-  background: transparent;
-}
-
-.defaultButton[checked="true"] {
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
--- a/mail/themes/osx/jar.mn
+++ b/mail/themes/osx/jar.mn
@@ -28,17 +28,16 @@ classic.jar:
   skin/classic/messenger/voice.png                               (../../components/im/themes/voice.png)
   skin/classic/messenger/browserRequest.css                      (mail/browserRequest.css)
   skin/classic/messenger/section_collapsed.png                   (mail/section_collapsed.png)
   skin/classic/messenger/section_expanded.png                    (mail/section_expanded.png)
   skin/classic/messenger/messageHeader.css                       (mail/messageHeader.css)
   skin/classic/messenger/messageQuotes.css                       (mail/messageQuotes.css)
   skin/classic/messenger/messageWindow.css                       (mail/messageWindow.css)
   skin/classic/messenger/messageBody.css                         (mail/messageBody.css)
-  skin/classic/messenger/webSearch.css                           (mail/webSearch.css)
   skin/classic/messenger/attachmentList.css                      (mail/attachmentList.css)
   skin/classic/messenger/msgSelectOffline.css                    (mail/msgSelectOffline.css)
   skin/classic/messenger/mailWindow1.css                         (mail/mailWindow1.css)
   skin/classic/messenger/searchBox.css                           (mail/searchBox.css)
   skin/classic/messenger/tagColors.css                           (mail/tagColors.css)
   skin/classic/messenger/junkMail.css                            (mail/junkMail.css)
   skin/classic/messenger/folderMenus.css                         (mail/folderMenus.css)
   skin/classic/messenger/folderPane.css                          (mail/folderPane.css)
@@ -319,17 +318,16 @@ classic.jar:
   skin/classic/messenger/icons/arrow/arrow-left.png              (mail/icons/arrow/arrow-left.png)
   skin/classic/messenger/icons/arrow/arrow-right.png             (mail/icons/arrow/arrow-right.png)
   skin/classic/messenger/icons/arrow/arrow-up.png                (mail/icons/arrow/arrow-up.png)
   skin/classic/messenger/icons/arrow/arrow-down.png              (mail/icons/arrow/arrow-down.png)
   skin/classic/messenger/icons/arrow/arrow-left-dim.png          (mail/icons/arrow/arrow-left-dim.png)
   skin/classic/messenger/icons/arrow/arrow-right-dim.png         (mail/icons/arrow/arrow-right-dim.png)
   skin/classic/messenger/icons/arrow/arrow-up-dim.png            (mail/icons/arrow/arrow-up-dim.png)
   skin/classic/messenger/icons/arrow/arrow-down-dim.png          (mail/icons/arrow/arrow-down-dim.png)
-  skin/classic/messenger/icons/search-favorite.png               (mail/icons/search-favorite.png)
   skin/classic/messenger/tagbg.png                               (mail/tagbg.png)
   skin/classic/messenger/icons/download.png                      (mail/icons/download.png)
 % skin editor classic/1.0 %skin/classic/editor/
   skin/classic/editor/editor.css                                 (editor/editor.css)
   skin/classic/editor/EditorDialog.css                           (editor/EditorDialog.css)
   skin/classic/editor/icons/img-align-bottom.gif                 (editor/img-align-bottom.gif)
   skin/classic/editor/icons/img-align-left.gif                   (editor/img-align-left.gif)
   skin/classic/editor/icons/img-align-middle.gif                 (editor/img-align-middle.gif)
deleted file mode 100644
index 5387822a9e6ac4d9af1b9b75014acec2167d0b92..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/mail/themes/osx/mail/webSearch.css
+++ /dev/null
@@ -1,95 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-.navbar {
-  -moz-border-end: 2px solid;
-  -moz-border-left-colors: threeDShadow threeDHighlight;
-  -moz-border-right-colors: threeDShadow threeDHighlight;
-  padding: 2px 0;
-  -moz-box-align: center;
-  background-color: -moz-dialog;
-}
-
-.navbuttons {
-  border-bottom: 1px solid #bbb;
-  padding-bottom: 10px;
-  margin-bottom: 10px;
-}
-
-.navbuttons .toolbarbutton-text {
-  display: none;
-}
-
-.back {
-  list-style-image: url("chrome://messenger/skin/icons/mail-toolbar.png");
-  -moz-image-region: rect(0px 306px 18px 288px);
-}
-
-.back:hover:active {
-  -moz-image-region: rect(18px 306px 36px 288px);
-}
-
-@media (min-resolution: 2dppx) {
-  .back {
-    width: 18px;
-    height: 18px;
-    list-style-image: url("chrome://messenger/skin/icons/mail-toolbar@2x.png");
-    -moz-image-region: rect(0px 612px 36px 576px);
-  }
-
-  .back:hover:active {
-    -moz-image-region: rect(36px 612px 72px 576px);
-  }
-}
-
-.back[disabled] {
-  opacity: .5;
-}
-
-.forward {
-  list-style-image: url("chrome://messenger/skin/icons/mail-toolbar.png");
-  -moz-image-region: rect(0px 324px 18px 306px);
-}
-
-.forward:hover:active {
-  -moz-image-region: rect(18px 324px 36px 306px);
-}
-
-@media (min-resolution: 2dppx) {
-  .forward {
-    width: 18px;
-    height: 18px;
-    list-style-image: url("chrome://messenger/skin/icons/mail-toolbar@2x.png");
-    -moz-image-region: rect(0px 648px 36px 612px);
-  }
-
-  .forward:hover:active {
-    -moz-image-region: rect(36px 648px 72px 612px);
-  }
-}
-
-.forward[disabled="true"] {
-  opacity: .5;
-}
-
-.engines .toolbarbutton-icon {
-  width: 16px;
-  height: 16px;
-}
-
-.defaultButton {
-  -moz-appearance: none;
-  list-style-image: url("chrome://messenger/skin/icons/search-favorite.png");
-  -moz-image-region: rect(0px 16px 16px 0px);
-
-  border: none;
-  padding: 0;
-  margin: 0;
-  min-width: 0;
-  background: transparent;
-}
-
-.defaultButton[checked="true"] {
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
--- a/mail/themes/windows/jar.mn
+++ b/mail/themes/windows/jar.mn
@@ -56,17 +56,16 @@ classic.jar:
   skin/classic/messenger/operator.png                         (../../components/im/themes/operator.png)
   skin/classic/messenger/half-operator.png                    (../../components/im/themes/half-operator.png)
   skin/classic/messenger/voice.png                            (../../components/im/themes/voice.png)
   skin/classic/messenger/browserRequest.css                   (mail/browserRequest.css)
   skin/classic/messenger/section_collapsed.png                (mail/section_collapsed.png)
   skin/classic/messenger/section_expanded.png                 (mail/section_expanded.png)
   skin/classic/messenger/messageHeader.css                    (mail/messageHeader.css)
   skin/classic/messenger/messageBody.css                      (mail/messageBody.css)
-  skin/classic/messenger/webSearch.css                        (mail/webSearch.css)
   skin/classic/messenger/messageQuotes.css                    (mail/messageQuotes.css)
 * skin/classic/messenger/messenger.css                        (mail/messenger.css)
 * skin/classic/messenger/messengerLWTheme.css                 (mail/messengerLWTheme.css)
   skin/classic/messenger/attachmentList.css                   (mail/attachmentList.css)
   skin/classic/messenger/imageFilters.svg                     (mail/imageFilters.svg)
 * skin/classic/messenger/mailWindow1.css                      (mail/mailWindow1.css)
   skin/classic/messenger/tagColors.css                        (mail/tagColors.css)
   skin/classic/messenger/messageWindow.css                    (mail/messageWindow.css)
@@ -267,17 +266,16 @@ classic.jar:
   skin/classic/messenger/icons/arrow/arrow-right-dim.png      (mail/icons/arrow/arrow-right-dim.png)
   skin/classic/messenger/icons/arrow/arrow-up-dim.png         (mail/icons/arrow/arrow-up-dim.png)
   skin/classic/messenger/icons/arrow/arrow-down-dim.png       (mail/icons/arrow/arrow-down-dim.png)
   skin/classic/messenger/icons/timeline.png                   (mail/icons/timeline.png)
   skin/classic/messenger/icons/timeline-inverted.png          (mail/icons/timeline-inverted.png)
   skin/classic/messenger/icons/empty-search-results.png       (mail/icons/empty-search-results.png)
   skin/classic/messenger/icons/arrow/foldercycler-arrow-left.png        (mail/icons/arrow/foldercycler-arrow-left.png)
   skin/classic/messenger/icons/arrow/foldercycler-arrow-right.png       (mail/icons/arrow/foldercycler-arrow-right.png)
-  skin/classic/messenger/icons/search-favorite.png            (mail/icons/search-favorite.png)
   skin/classic/messenger/icons/xp-pin-grey.png                (mail/icons/xp-pin-grey.png)
   skin/classic/messenger/icons/xp-pin-red.png                 (mail/icons/xp-pin-red.png)
   skin/classic/messenger/tagbg.png                            (mail/tagbg.png)
 % skin messenger-newsblog classic/1.0 %skin/classic/messenger-newsblog/ os=WINNT osversion<6
 % skin messenger-newsblog classic/1.0 %skin/classic/messenger-newsblog/ os!=WINNT
   skin/classic/messenger-newsblog/feed-subscriptions.css      (mail/newsblog/feed-subscriptions.css)
   skin/classic/messenger-newsblog/icons/rss-feed.png          (mail/newsblog/rss-feed.png)
   skin/classic/messenger-newsblog/icons/server-rss.png        (mail/newsblog/server-rss.png)
@@ -337,17 +335,16 @@ classic.jar:
   skin/classic/aero/messenger/operator.png                         (../../components/im/themes/operator.png)
   skin/classic/aero/messenger/half-operator.png                    (../../components/im/themes/half-operator.png)
   skin/classic/aero/messenger/voice.png                            (../../components/im/themes/voice.png)
 * skin/classic/aero/messenger/browserRequest.css                   (mail/browserRequest-aero.css)
   skin/classic/aero/messenger/section_collapsed.png                (mail/section_collapsed.png)
   skin/classic/aero/messenger/section_expanded.png                 (mail/section_expanded.png)
   skin/classic/aero/messenger/messageHeader.css                    (mail/messageHeader-aero.css)
   skin/classic/aero/messenger/messageBody.css                      (mail/messageBody.css)
-  skin/classic/aero/messenger/webSearch.css                        (mail/webSearch-aero.css)
   skin/classic/aero/messenger/messageQuotes.css                    (mail/messageQuotes.css)
 * skin/classic/aero/messenger/messenger.css                        (mail/messenger-aero.css)
 * skin/classic/aero/messenger/messengerLWTheme.css                 (mail/messengerLWTheme.css)
 * skin/classic/aero/messenger/attachmentList.css                   (mail/attachmentList-aero.css)
   skin/classic/aero/messenger/imageFilters.svg                     (mail/imageFilters.svg)
 * skin/classic/aero/messenger/mailWindow1.css                      (mail/mailWindow1-aero.css)
 * skin/classic/aero/messenger/tagColors.css                        (mail/tagColors-aero.css)
   skin/classic/aero/messenger/messageWindow.css                    (mail/messageWindow-aero.css)
@@ -547,17 +544,16 @@ classic.jar:
   skin/classic/aero/messenger/icons/arrow/arrow-up.png             (mail/icons/arrow/arrow-up.png)
   skin/classic/aero/messenger/icons/arrow/arrow-down.png           (mail/icons/arrow/arrow-down.png)
   skin/classic/aero/messenger/icons/arrow/arrow-left-dim.png       (mail/icons/arrow/arrow-left-dim.png)
   skin/classic/aero/messenger/icons/arrow/arrow-right-dim.png      (mail/icons/arrow/arrow-right-dim.png)
   skin/classic/aero/messenger/icons/arrow/arrow-up-dim.png         (mail/icons/arrow/arrow-up-dim.png)
   skin/classic/aero/messenger/icons/arrow/arrow-down-dim.png       (mail/icons/arrow/arrow-down-dim.png)
   skin/classic/aero/messenger/icons/arrow/foldercycler-arrow-left.png        (mail/icons/arrow/foldercycler-arrow-left.png)
   skin/classic/aero/messenger/icons/arrow/foldercycler-arrow-right.png       (mail/icons/arrow/foldercycler-arrow-right.png)
-  skin/classic/aero/messenger/icons/search-favorite.png            (mail/icons/search-favorite.png)
   skin/classic/aero/messenger/icons/xp-pin-grey.png                (mail/icons/xp-pin-grey.png)
   skin/classic/aero/messenger/icons/xp-pin-red.png                 (mail/icons/xp-pin-red.png)
   skin/classic/aero/messenger/icons/connecting.png                 (mail/icons/connecting.png)
   skin/classic/aero/messenger/icons/loading.png                    (mail/icons/loading.png)
   skin/classic/aero/messenger/tagbg.png                            (mail/tagbg.png)
   skin/classic/aero/messenger/icons/download.png                   (mail/icons/download.png)
   skin/classic/aero/messenger/icons/download-inverted.png          (mail/icons/download-inverted.png)
   skin/classic/aero/messenger/icons/chat-toolbar.png               (mail/icons/chat-toolbar-aero.png)
deleted file mode 100644
index 5387822a9e6ac4d9af1b9b75014acec2167d0b92..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/mail/themes/windows/mail/webSearch-aero.css
+++ /dev/null
@@ -1,53 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-.navbar {
-  -moz-border-end: 2px solid;
-  -moz-border-left-colors: threeDShadow threeDHighlight;
-  -moz-border-right-colors: threeDShadow threeDHighlight;
-  padding: 2px 0;
-  -moz-box-align: center;
-  background-color: -moz-dialog;
-}
-
-.navbuttons {
-  border-bottom: 1px solid #bbb;
-  padding-bottom: 10px;
-  margin-bottom: 10px;
-}
-
-.navbuttons .toolbarbutton-text {
-  display: none;
-}
-
-.back {
-  list-style-image: url("chrome://messenger/skin/icons/mail-toolbar.png");
-  -moz-image-region: rect(0px, 306px, 18px, 288px);
-}
-
-.forward {
-  list-style-image: url("chrome://messenger/skin/icons/mail-toolbar.png");
-  -moz-image-region: rect(0px, 324px, 18px, 306px);
-}
-
-.engines .toolbarbutton-icon {
-  width: 16px;
-  height: 16px;
-}
-
-.defaultButton {
-  -moz-appearance: none;
-  list-style-image: url("chrome://messenger/skin/icons/search-favorite.png");
-  -moz-image-region: rect(0px 16px 16px 0px);
-
-  border: none;
-  padding: 0;
-  margin: 0;
-  min-width: 0;
-  background: transparent;
-}
-
-.defaultButton[checked="true"] {
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
deleted file mode 100644
--- a/mail/themes/windows/mail/webSearch.css
+++ /dev/null
@@ -1,69 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-.navbar {
-  -moz-border-end: 2px solid;
-  -moz-border-left-colors: threeDShadow threeDHighlight;
-  -moz-border-right-colors: threeDShadow threeDHighlight;
-  padding: 2px 0;
-  -moz-box-align: center;
-  background-color: -moz-dialog;
-}
-
-.navbuttons {
-  border-bottom: 1px solid #bbb;
-  padding-bottom: 10px;
-  margin-bottom: 10px;
-}
-
-.navbuttons .toolbarbutton-text {
-  display: none;
-}
-
-.back {
-  list-style-image: url("chrome://messenger/skin/icons/mail-toolbar-small.png");
-  -moz-image-region: rect(0px 272px 16px 256px);
-}
-
-.back:hover {
-  -moz-image-region: rect(16px 272px 32px 256px);
-}
-
-.back[disabled="true"] {
-  -moz-image-region: rect(32px 272px 48px 256px) !important;
-}
-
-.forward {
-  list-style-image: url("chrome://messenger/skin/icons/mail-toolbar-small.png");
-  -moz-image-region: rect(0px 288px 16px 272px);
-}
-
-.forward:hover {
-  -moz-image-region: rect(16px 288px 32px 272px);
-}
-
-.forward[disabled="true"] {
-  -moz-image-region: rect(32px 288px 48px 272px) !important;
-}
-
-.engines .toolbarbutton-icon {
-  width: 16px;
-  height: 16px;
-}
-
-.defaultButton {
-  -moz-appearance: none;
-  list-style-image: url("chrome://messenger/skin/icons/search-favorite.png");
-  -moz-image-region: rect(0px 16px 16px 0px);
-
-  border: none;
-  padding: 0;
-  margin: 0;
-  min-width: 0;
-  background: transparent;
-}
-
-.defaultButton[checked="true"] {
-  -moz-image-region: rect(0px 32px 16px 16px);
-}