Backed out 5 changesets (bug 326743) for m-oth failures
authorWes Kocher <wkocher@mozilla.com>
Thu, 20 Feb 2014 16:30:26 -0800
changeset 170198 29273bf136ee745edb00eff3fb3737f1afbbdb42
parent 170197 d498b3fa8908203245ca92dea0e06664e63e6145
child 170199 0106724dcbfd0f75610dc6d56ac3da56c80ba49f
push id270
push userpvanderbeken@mozilla.com
push dateThu, 06 Mar 2014 09:24:21 +0000
bugs326743
milestone30.0a1
backs outd498b3fa8908203245ca92dea0e06664e63e6145
820d24250606121010a9886959f070ea46df3ee4
334ddf5ad1fb4ed49d64b430eec3d983ab67f8c0
becbe15a0b5d69bc7253ec851efa2bc237b30ee5
dbc693bc48c5795f03ebbd57887da0516f0ea255
Backed out 5 changesets (bug 326743) for m-oth failures Backed out changeset d498b3fa8908 (bug 326743) Backed out changeset 820d24250606 (bug 326743) Backed out changeset 334ddf5ad1fb (bug 326743) Backed out changeset becbe15a0b5d (bug 326743) Backed out changeset dbc693bc48c5 (bug 326743)
browser/base/content/browser-sets.inc
browser/base/content/test/general/browser_bug537013.js
browser/base/content/test/general/browser_bug567306.js
browser/locales/en-US/chrome/browser/browser.dtd
toolkit/components/viewsource/content/viewSource.xul
toolkit/content/tests/chrome/bug409624_window.xul
toolkit/content/tests/chrome/findbar_window.xul
toolkit/content/widgets/findbar.xml
toolkit/locales/en-US/chrome/global/viewSource.dtd
toolkit/modules/Finder.jsm
widget/android/nsClipboard.cpp
widget/cocoa/nsClipboard.h
widget/cocoa/nsClipboard.mm
widget/gtk/nsClipboard.cpp
widget/nsIClipboard.idl
widget/qt/nsClipboard.cpp
widget/xpwidgets/nsBaseClipboard.cpp
widget/xpwidgets/nsClipboardHelper.cpp
widget/xpwidgets/nsClipboardProxy.cpp
--- a/browser/base/content/browser-sets.inc
+++ b/browser/base/content/browser-sets.inc
@@ -45,19 +45,16 @@
              oncommand="gFindBar.onFindCommand();"
              observes="isImage"/>
     <command id="cmd_findAgain"
              oncommand="gFindBar.onFindAgainCommand(false);"
              observes="isImage"/>
     <command id="cmd_findPrevious"
              oncommand="gFindBar.onFindAgainCommand(true);"
              observes="isImage"/>
-#ifdef XP_MACOSX
-    <command id="cmd_findSelection" oncommand="gFindBar.onFindSelectionCommand();"/>
-#endif
     <!-- work-around bug 392512 -->
     <command id="Browser:AddBookmarkAs"
              oncommand="PlacesCommandHook.bookmarkCurrentPage(true, PlacesUtils.bookmarksMenuFolderId);"/>
     <!-- The command disabled state must be manually updated through
          PlacesCommandHook.updateBookmarkAllTabsCommand() -->
     <command id="Browser:BookmarkAllTabs"
              oncommand="PlacesCommandHook.bookmarkCurrentPages();"/>
     <command id="Browser:Home"    oncommand="BrowserHome();"/>
@@ -348,19 +345,16 @@
     <key key="&reloadCmd.commandkey;" command="Browser:ReloadSkipCache" modifiers="accel,shift"/>
     <key id="key_viewSource" key="&pageSourceCmd.commandkey;" command="View:PageSource" modifiers="accel"/>
 #ifndef XP_WIN
     <key id="key_viewInfo"   key="&pageInfoCmd.commandkey;"   command="View:PageInfo"   modifiers="accel"/>
 #endif
     <key id="key_find" key="&findOnCmd.commandkey;" command="cmd_find" modifiers="accel"/>
     <key id="key_findAgain" key="&findAgainCmd.commandkey;" command="cmd_findAgain" modifiers="accel"/>
     <key id="key_findPrevious" key="&findAgainCmd.commandkey;" command="cmd_findPrevious" modifiers="accel,shift"/>
-#ifdef XP_MACOSX
-    <key id="key_findSelection" key="&findSelectionCmd.commandkey;" command="cmd_findSelection" modifiers="accel"/>
-#endif
     <key keycode="&findAgainCmd.commandkey2;" command="cmd_findAgain"/>
     <key keycode="&findAgainCmd.commandkey2;"  command="cmd_findPrevious" modifiers="shift"/>
 
     <key id="addBookmarkAsKb" key="&bookmarkThisPageCmd.commandkey;" command="Browser:AddBookmarkAs" modifiers="accel"/>
 # Accel+Shift+A-F are reserved on GTK
 #ifndef MOZ_WIDGET_GTK
     <key id="bookmarkAllTabsKb" key="&bookmarkThisPageCmd.commandkey;" oncommand="PlacesCommandHook.bookmarkCurrentPages();" modifiers="accel,shift"/>
     <key id="manBookmarkKb" key="&bookmarksCmd.commandkey;" command="Browser:ShowAllBookmarks" modifiers="accel,shift"/>
--- a/browser/base/content/test/general/browser_bug537013.js
+++ b/browser/base/content/test/general/browser_bug537013.js
@@ -6,28 +6,24 @@
 let tabs = [];
 let texts = [
   "This side up.",
   "The world is coming to an end. Please log off.",
   "Klein bottle for sale. Inquire within.",
   "To err is human; to forgive is not company policy."
 ];
 
-let Clipboard = Cc["@mozilla.org/widget/clipboard;1"].getService(Ci.nsIClipboard);
-let HasFindClipboard = Clipboard.supportsFindClipboard();
-
 function addTabWithText(aText, aCallback) {
   let newTab = gBrowser.addTab("data:text/html,<h1 id='h1'>" + aText + "</h1>");
   tabs.push(newTab);
   gBrowser.selectedTab = newTab;
 }
 
 function setFindString(aString) {
   gFindBar.open();
-  gFindBar._findField.focus();
   gFindBar._findField.select();
   EventUtils.sendString(aString);
   is(gFindBar._findField.value, aString, "Set the field correctly!");
 }
 
 let newWindow;
 
 function test() {
@@ -60,19 +56,17 @@ function continueTests1() {
   gFindBar.open();
   is(gFindBar._findField.value, texts[0],
      "Second tab kept old find value for new initialization!");
   setFindString(texts[1]);
 
   // Confirm the first tab is still correct, ensure re-hiding works as expected
   gBrowser.selectedTab = tabs[0];
   ok(!gFindBar.hidden, "First tab shows find bar!");
-  // When the Find Clipboard is supported, this test not relevant.
-  if (!HasFindClipboard)
-    is(gFindBar._findField.value, texts[0], "First tab persists find value!");
+  is(gFindBar._findField.value, texts[0], "First tab persists find value!");
   ok(gFindBar.getElement("highlight").checked,
      "Highlight button state persists!");
 
   // While we're here, let's test bug 253793
   gBrowser.reload();
   gBrowser.addEventListener("DOMContentLoaded", continueTests2, true);
 }
 
@@ -95,31 +89,25 @@ function continueTests2() {
 
   // Now we jump to the second, then first, and then fourth
   gBrowser.selectedTab = tabs[1];
   gBrowser.selectedTab = tabs[0];
   gBrowser.selectedTab = tabs[3];
   ok(gFindBar.hidden, "Fourth tab doesn't show find bar!");
   is(gFindBar, gBrowser.getFindBar(), "Find bar is right one!");
   gFindBar.open();
-  // Disabled the following assertion due to intermittent failure on OSX 10.6 Debug.
-  if (!HasFindClipboard) {
-    is(gFindBar._findField.value, toTest,
-       "Fourth tab has second tab's find value!");
-  }
+  is(gFindBar._findField.value, texts[1],
+     "Fourth tab has second tab's find value!");
 
   newWindow = gBrowser.replaceTabWithWindow(tabs.pop());
   whenDelayedStartupFinished(newWindow, checkNewWindow);
 }
 
 // Test that findbar gets restored when a tab is moved to a new window.
 function checkNewWindow() {
   ok(!newWindow.gFindBar.hidden, "New window shows find bar!");
-  // Disabled the following assertion due to intermittent failure on OSX 10.6 Debug.
-  if (!HasFindClipboard) {
-    is(newWindow.gFindBar._findField.value, toTest,
-       "New window find bar has correct find value!");
-  }
+  is(newWindow.gFindBar._findField.value, texts[1],
+     "New window find bar has correct find value!");
   ok(!newWindow.gFindBar.getElement("find-next").disabled,
      "New window findbar has enabled buttons!");
   newWindow.close();
   finish();
 }
--- a/browser/base/content/test/general/browser_bug567306.js
+++ b/browser/base/content/test/general/browser_bug567306.js
@@ -1,16 +1,13 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-const {Ci: interfaces, Cc: classes} = Components;
-
-let Clipboard = Cc["@mozilla.org/widget/clipboard;1"].getService(Ci.nsIClipboard);
-let HasFindClipboard = Clipboard.supportsFindClipboard();
+let Ci = Components.interfaces;
 
 function test() {
   waitForExplicitFinish();
 
   whenNewWindowLoaded(undefined, function (win) {
     whenDelayedStartupFinished(win, function () {
       let selectedBrowser = win.gBrowser.selectedBrowser;
       selectedBrowser.addEventListener("pageshow", function() {
@@ -35,16 +32,13 @@ function selectText(win) {
   selection.addRange(range);
 }
 
 function onFocus(win) {
   ok(!win.gFindBarInitialized, "find bar is not yet initialized");
   let findBar = win.gFindBar;
   selectText(win.content);
   findBar.onFindCommand();
-  // When the OS supports the Find Clipboard (OSX), the find field value is
-  // persisted across Fx sessions, thus not useful to test.
-  if (!HasFindClipboard)
-    is(findBar._findField.value, "Select Me", "Findbar is initialized with selection");
+  is(findBar._findField.value, "Select Me", "Findbar is initialized with selection");
   findBar.close();
   win.close();
   finish();
 }
--- a/browser/locales/en-US/chrome/browser/browser.dtd
+++ b/browser/locales/en-US/chrome/browser/browser.dtd
@@ -609,17 +609,16 @@ you can use these alternative items. Oth
 
 <!ENTITY findOnCmd.label     "Find in This Page…">
 <!ENTITY findOnCmd.accesskey "F">
 <!ENTITY findOnCmd.commandkey "f">
 <!ENTITY findAgainCmd.label  "Find Again">
 <!ENTITY findAgainCmd.accesskey "g">
 <!ENTITY findAgainCmd.commandkey "g">
 <!ENTITY findAgainCmd.commandkey2 "VK_F3">
-<!ENTITY findSelectionCmd.commandkey "e">
 
 <!ENTITY spellAddDictionaries.label "Add Dictionaries…">
 <!ENTITY spellAddDictionaries.accesskey "A">
 
 <!ENTITY editBookmark.done.label                     "Done">
 <!ENTITY editBookmark.cancel.label                   "Cancel">
 <!ENTITY editBookmark.removeBookmark.accessKey       "R">
 
--- a/toolkit/components/viewsource/content/viewSource.xul
+++ b/toolkit/components/viewsource/content/viewSource.xul
@@ -46,20 +46,16 @@
   <command id="cmd_close" oncommand="window.close();"/>
   <commandset id="editMenuCommands"/>
   <command id="cmd_find"
            oncommand="document.getElementById('FindToolbar').onFindCommand();"/>
   <command id="cmd_findAgain"
            oncommand="document.getElementById('FindToolbar').onFindAgainCommand(false);"/>
   <command id="cmd_findPrevious"
            oncommand="document.getElementById('FindToolbar').onFindAgainCommand(true);"/>
-#ifdef XP_MACOSX
-  <command id="cmd_findSelection"
-           oncommand="document.getElementById('FindToolbar').onFindSelectionCommand();"/>
-#endif
   <command id="cmd_reload" oncommand="ViewSourceReload();"/>
   <command id="cmd_goToLine" oncommand="ViewSourceGoToLine();" disabled="true"/>
   <command id="cmd_highlightSyntax" oncommand="highlightSyntax();"/>
   <command id="cmd_wrapLongLines" oncommand="wrapLongLines()"/>
   <command id="cmd_textZoomReduce" oncommand="ZoomManager.reduce();"/>
   <command id="cmd_textZoomEnlarge" oncommand="ZoomManager.enlarge();"/>
   <command id="cmd_textZoomReset" oncommand="ZoomManager.reset();"/>
 
@@ -85,19 +81,16 @@
 
     <key id="key_reload" key="&reloadCmd.commandkey;" command="cmd_reload" modifiers="accel"/>
     <key key="&reloadCmd.commandkey;" command="cmd_reload" modifiers="accel,shift"/>
     <key keycode="VK_F5" command="cmd_reload"/>
     <key keycode="VK_F5" command="cmd_reload" modifiers="accel"/>
     <key id="key_find" key="&findOnCmd.commandkey;" command="cmd_find" modifiers="accel"/>
     <key id="key_findAgain" key="&findAgainCmd.commandkey;" command="cmd_findAgain" modifiers="accel"/>
     <key id="key_findPrevious" key="&findAgainCmd.commandkey;" command="cmd_findPrevious" modifiers="accel,shift"/>
-#ifdef XP_MACOSX
-    <key id="key_findSelection" key="&findSelectionCmd.commandkey;" command="cmd_findSelection" modifiers="accel"/>
-#endif
     <key keycode="&findAgainCmd.commandkey2;" command="cmd_findAgain"/>
     <key keycode="&findAgainCmd.commandkey2;"  command="cmd_findPrevious" modifiers="shift"/>
 
     <key keycode="VK_BACK" command="Browser:Back"/>
     <key keycode="VK_BACK" command="Browser:Forward" modifiers="shift"/>
 #ifndef XP_MACOSX
     <key id="goBackKb" keycode="VK_LEFT" command="Browser:Back" modifiers="alt"/>
     <key id="goForwardKb" keycode="VK_RIGHT" command="Browser:Forward" modifiers="alt"/>
--- a/toolkit/content/tests/chrome/bug409624_window.xul
+++ b/toolkit/content/tests/chrome/bug409624_window.xul
@@ -53,17 +53,16 @@
       gFindBar.open();
       let matchCaseCheckbox = gFindBar.getElement("find-case-sensitive");
       if (!matchCaseCheckbox.hidden && matchCaseCheckbox.checked)
         matchCaseCheckbox.click();
       ok(!matchCaseCheckbox.checked, "case-insensitivity correctly set");
 
       // Simulate typical input
       textbox.focus();
-      gFindBar.clear();
       sendChar("m");
       ok(gFindBar.canClear, "canClear property true after input");
       let preSelection = gBrowser.contentWindow.getSelection();
       ok(!preSelection.isCollapsed, "Found item and selected range");
       gFindBar.clear();
       is(textbox.value, '', "findbar input value cleared after clear() call");
       let postSelection = gBrowser.contentWindow.getSelection();
       ok(postSelection.isCollapsed, "item found deselected after clear() call");
--- a/toolkit/content/tests/chrome/findbar_window.xul
+++ b/toolkit/content/tests/chrome/findbar_window.xul
@@ -25,19 +25,16 @@
 
     const SAMPLE_URL = "http://www.mozilla.org/";
     const SAMPLE_TEXT = "Some text in a text field.";
     const SEARCH_TEXT = "Text Test";
 
     var gFindBar = null;
     var gBrowser;
 
-    var gClipboard = Cc["@mozilla.org/widget/clipboard;1"].getService(Ci.nsIClipboard);
-    var gHasFindClipboard = gClipboard.supportsFindClipboard();
-
     var gStatusText;
     var gXULBrowserWindow = {
       QueryInterface: function(aIID) {
         if (aIID.Equals(Ci.nsIXULBrowserWindow) ||
             aIID.Equals(Ci.nsISupports))
          return this;
 
         throw Cr.NS_NOINTERFACE;
@@ -95,32 +92,28 @@
       gFindBar.close();
       ok(gFindBar.hidden, "Failed to close findbar after testQuickFindText");
       testFindWithHighlight();
       gFindBar.close();
       ok(gFindBar.hidden, "Failed to close findbar after testFindWithHighlight");
       testFindbarSelection();
       testDrop();
       testQuickFindLink();
-      if (gHasFindClipboard)
-        testStatusText();
+      testStatusText();
       testQuickFindClose();
     }
 
     function testFindbarSelection() {
       function checkFindbarState(aTestName, aExpSelection) {
         document.getElementById("cmd_find").doCommand();
         ok(!gFindBar.hidden, "testFindbarSelection: failed to open findbar: " + aTestName);
         ok(document.commandDispatcher.focusedElement == gFindBar._findField.inputField,
            "testFindbarSelection: find field is not focused: " + aTestName);
-        if (!gHasFindClipboard) {
-          ok(gFindBar._findField.value == aExpSelection,
-             "Incorrect selection in testFindbarSelection: "  + aTestName +
-             ". Selection: " + gFindBar._findField.value);
-        }
+        ok(gFindBar._findField.value == aExpSelection,
+           "Incorrect selection in testFindbarSelection: "  + aTestName + ". Selection: " + gFindBar._findField.value);
 
         // Clear the value, close the findbar
         gFindBar._findField.value = "";
         gFindBar.close();
       }
 
       // test normal selected text
       var cH2 = gBrowser.contentDocument.getElementById("h2");
@@ -190,17 +183,16 @@
       var matchCaseCheckbox = gFindBar.getElement("find-case-sensitive");
       if (!matchCaseCheckbox.hidden & matchCaseCheckbox.checked)
         matchCaseCheckbox.click();
 
       var searchStr = "text tes";
       enterStringIntoFindField(searchStr);
       ok(gBrowser.contentWindow.getSelection().toString().toLowerCase() == searchStr,
          "testNormalFind: failed to find '" + searchStr + "'");
-      testClipboardSearchString(gBrowser.contentWindow.getSelection().toString());
 
       if (!matchCaseCheckbox.hidden) {
         matchCaseCheckbox.click();
         enterStringIntoFindField("t");
         ok(gBrowser.contentWindow.getSelection() != searchStr,
            "testNormalFind: Case-sensitivy is broken '" + searchStr + "'");
         matchCaseCheckbox.click();
       }
@@ -249,17 +241,16 @@
             ]
           },
           "caret": { "start": searchStr.length, "length": 0 }
         });
       synthesizeComposition({ type: "compositionend", data: searchStr });
 
       ok(gBrowser.contentWindow.getSelection().toString().toLowerCase() == searchStr,
          "testNormalFindWithComposition: text should be found after committing composition");
-      testClipboardSearchString(gBrowser.contentWindow.getSelection().toString());
 
       if (clicked) {
         matchCaseCheckbox.click();
       }
     }
 
     function testAutoCaseSensitivityUI() {
       var matchCaseCheckbox = gFindBar.getElement("find-case-sensitive");
@@ -309,62 +300,59 @@
       ok(!gFindBar.hidden, "testQuickFindLink: failed to open findbar");
       ok(document.commandDispatcher.focusedElement == gFindBar._findField.inputField,
          "testQuickFindLink: find field is not focused");
 
       var searchStr = "Link Test";
       enterStringIntoFindField(searchStr);
       ok(gBrowser.contentWindow.getSelection() == searchStr,
           "testQuickFindLink: failed to find sample link");
-      testClipboardSearchString(searchStr);
     }
 
     // See bug 963925 for more details on this test.
     function testFindWithHighlight() {
       //clearFocus();
       gFindBar._findField.value = "";
 
       let findCommand = document.getElementById("cmd_find");
       findCommand.doCommand();
 
       let searchStr = "e";
       enterStringIntoFindField(searchStr);
 
       let a = gFindBar._findField.value;
       let b = gFindBar._browser.finder._fastFind.searchString;
       let c = gFindBar._browser.finder.searchString;
-      ok(a == b && b == c, "testFindWithHighlight 1: " + a + ", " + b + ", " + c + ".");
+      ok(a == b && b == c, "testFindWithHighlight: " + a + ", " + b + ", " + c + ".");
 
       let oldGetInitialSelection = gFindBar._getInitialSelection;
       let searchStr = "t";
       gFindBar._getInitialSelection = () => searchStr;
       findCommand.doCommand();
       gFindBar._getInitialSelection = oldGetInitialSelection;
 
       a = gFindBar._findField.value;
       b = gFindBar._browser.finder._fastFind.searchString;
       c = gFindBar._browser.finder.searchString;
-      ok(a == searchStr && b == c, "testFindWithHighlight 2: " + a + ", " + b + ", " + c + ".");
+      ok(a == searchStr && b == c, "testFindWithHighlight: " + a + ", " + b + ", " + c + ".");
 
       let highlightButton = gFindBar.getElement("highlight");
       highlightButton.click();
-      ok(highlightButton.checked, "testFindWithHighlight 3: Highlight All should be checked.");
+      ok(highlightButton.checked, "testFindWithHighlight: Highlight All should be checked.");
 
-      if (!gHasFindClipboard) {
-        a = gFindBar._findField.value;
-        b = gFindBar._browser.finder._fastFind.searchString;
-        c = gFindBar._browser.finder.searchString;
-        ok(a == searchStr && b == c, "testFindWithHighlight 4: " + a + ", " + b + ", " + c + ".");
-      }
+      a = gFindBar._findField.value;
+      b = gFindBar._browser.finder._fastFind.searchString;
+      c = gFindBar._browser.finder.searchString;
+      ok(a == searchStr && b == c, "testFindWithHighlight: " + a + ", " + b + ", " + c + ".");
 
       gFindBar.onFindAgainCommand();
       a = gFindBar._findField.value;
       b = gFindBar._browser.finder._fastFind.searchString;
       c = gFindBar._browser.finder.searchString;
-      ok(a == b && b == c, "testFindWithHighlight 5: " + a + ", " + b + ", " + c + ".");
+      ok(a == b && b == c, "testFindWithHighlight: " + a + ", " + b + ", " + c + ".");
 
       highlightButton.click();
       ok(!highlightButton.checked, "testFindWithHighlight: Highlight All should be unchecked.");
     }
 
     function testQuickFindText() {
       clearFocus();
 
@@ -375,29 +363,16 @@
 
       ok(!gFindBar.hidden, "testQuickFindText: failed to open findbar");
       ok(document.commandDispatcher.focusedElement == gFindBar._findField.inputField,
          "testQuickFindText: find field is not focused");
 
       enterStringIntoFindField(SEARCH_TEXT);
       ok(gBrowser.contentWindow.getSelection() == SEARCH_TEXT,
          "testQuickFindText: failed to find '" + SEARCH_TEXT + "'");
-      testClipboardSearchString(SEARCH_TEXT);
-    }
-
-    function testClipboardSearchString(aExpected) {
-      if (!gHasFindClipboard)
-        return;
-
-      if (!aExpected)
-        aExpected = "";
-      var searchStr = gFindBar.browser.finder.clipboardSearchString;
-      ok(searchStr.toLowerCase() == aExpected.toLowerCase(),
-        "testClipboardSearchString: search string not set to '" + aExpected +
-        "', instead found '" + searchStr + "'");
     }
   ]]></script>
 
   <commandset>
     <command id="cmd_find" oncommand="document.getElementById('FindToolbar').onFindCommand();"/>
   </commandset>
   <browser type="content-primary" flex="1" id="content" src="about:blank"/>
   <findbar id="FindToolbar" browserid="content"/>
--- a/toolkit/content/widgets/findbar.xml
+++ b/toolkit/content/widgets/findbar.xml
@@ -105,23 +105,16 @@
 
       <handler event="blur"><![CDATA[
         let findbar = this.findbar;
         // Note: This code used to remove the selection
         // if it matched an editable.
         findbar.browser.finder.enableSelection();
       ]]></handler>
 
-#ifdef XP_MACOSX
-      <handler event="focus"><![CDATA[
-        let findbar = this.findbar;
-        findbar._onFindFieldFocus();
-      ]]></handler>
-#endif
-
       <handler event="compositionstart"><![CDATA[
         // Don't close the find toolbar while IME is composing.
         let findbar = this.findbar;
         findbar._isIMEComposing = true;
         if (findbar._quickFindTimeout) {
           clearTimeout(findbar._quickFindTimeout);
           findbar._quickFindTimeout = null;
         }
@@ -1047,27 +1040,18 @@
             prefsvc.setIntPref("accessibility.typeaheadfind.flashBar",
                                --this._flashFindBar);
           }
 
           if (this.prefillWithSelection)
             userWantsPrefill =
               prefsvc.getBoolPref("accessibility.typeaheadfind.prefillwithselection");
 
-          let initialString = null;
-          if (this.prefillWithSelection && userWantsPrefill)
-            initialString = this._getInitialSelection();
-#ifdef XP_MACOSX
-          if (!initialString) {
-            let clipboardSearchString = this.browser.finder.clipboardSearchString;
-            if (clipboardSearchString)
-              initialString = clipboardSearchString;
-          }
-#endif
-
+          let initialString = (this.prefillWithSelection && userWantsPrefill) ?
+                              this._getInitialSelection() : null;
           if (initialString)
             this._findField.value = initialString;
 
           this._enableFindButtons(!!this._findField.value);
 
           this._findField.select();
           this._findField.focus();
         ]]></body>
@@ -1113,42 +1097,16 @@
           if (this._findField.value != this._browser.finder.searchString)
             this._find(this._findField.value);
           else
             this._findAgain(aFindPrevious);
 
         ]]></body>
       </method>
 
-#ifdef XP_MACOSX
-      <!--
-        - Fetches the currently selected text and sets that as the text to search
-        - next. This is a MacOS specific feature.
-      -->
-      <method name="onFindSelectionCommand">
-        <body><![CDATA[
-          let searchString = this.browser.finder.setSearchStringToSelection();
-          if (searchString)
-            this._findField.value = searchString;
-        ]]></body>
-      </method>
-
-      <method name="_onFindFieldFocus">
-        <body><![CDATA[
-          let clipboardSearchString = this._browser.finder.clipboardSearchString;
-          if (clipboardSearchString && this._findField.value != clipboardSearchString) {
-            this._findField.value = clipboardSearchString;
-            // Changing the search string makes the previous status invalid, so
-            // we better clear it here.
-            this._updateStatusUI();
-          }
-        ]]></body>
-      </method>
-#endif
-
       <!--
         - This handles all the result changes for both
         - type-ahead-find and highlighting.
         - @param aResult
         -   One of the nsITypeAheadFind.FIND_* constants
         -   indicating the result of a search operation.
         - @param aFindBackwards
         -   If the search was done from the bottom to
@@ -1156,18 +1114,16 @@
         -   when reaching "the end of the page".
         - @param aLinkURL
         -   When a link matched then its URK. Always null
         -   when not in FIND_LINKS mode.
         -->
       <method name="onFindResult">
         <parameter name="aData"/>
         <body><![CDATA[
-          if (this._findField.value != this.browser.finder.searchString)
-            this._findField.value = this.browser.finder.searchString;
           this._updateStatusUI(aData.result, aData.findBackwards);
           this._updateStatusUIBar(aData.linkURL);
 
           if (aData.result == this.nsITypeAheadFind.FIND_NOTFOUND)
             this._findFailedString = aData.searchString;
           else
             this._findFailedString = null;
 
--- a/toolkit/locales/en-US/chrome/global/viewSource.dtd
+++ b/toolkit/locales/en-US/chrome/global/viewSource.dtd
@@ -66,17 +66,16 @@ you can use these alternative items. Oth
 
 <!ENTITY findOnCmd.label     "Find in This Page…">
 <!ENTITY findOnCmd.accesskey "F">
 <!ENTITY findOnCmd.commandkey "f">
 <!ENTITY findAgainCmd.label  "Find Again">
 <!ENTITY findAgainCmd.accesskey "g">
 <!ENTITY findAgainCmd.commandkey "g">
 <!ENTITY findAgainCmd.commandkey2 "VK_F3">
-<!ENTITY findSelectionCmd.commandkey "e">
 
 <!ENTITY backCmd.label "Back">
 <!ENTITY backCmd.accesskey "B">
 <!ENTITY forwardCmd.label "Forward">
 <!ENTITY forwardCmd.accesskey "F">
 <!ENTITY goBackCmd.commandKey "[">
 <!ENTITY goForwardCmd.commandKey "]">
 
--- a/toolkit/modules/Finder.jsm
+++ b/toolkit/modules/Finder.jsm
@@ -7,26 +7,16 @@ this.EXPORTED_SYMBOLS = ["Finder"];
 const Ci = Components.interfaces;
 const Cc = Components.classes;
 const Cu = Components.utils;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Geometry.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 
-XPCOMUtils.defineLazyServiceGetter(this, "TextToSubURIService",
-                                         "@mozilla.org/intl/texttosuburi;1",
-                                         "nsITextToSubURI");
-XPCOMUtils.defineLazyServiceGetter(this, "Clipboard",
-                                         "@mozilla.org/widget/clipboard;1",
-                                         "nsIClipboard");
-XPCOMUtils.defineLazyServiceGetter(this, "ClipboardHelper",
-                                         "@mozilla.org/widget/clipboardhelper;1",
-                                         "nsIClipboardHelper");
-
 function Finder(docShell) {
   this._fastFind = Cc["@mozilla.org/typeaheadfind;1"].createInstance(Ci.nsITypeAheadFind);
   this._fastFind.init(docShell);
 
   this._docShell = docShell;
   this._listeners = [];
   this._previousLink = null;
   this._searchString = null;
@@ -42,31 +32,34 @@ Finder.prototype = {
       this._listeners.push(aListener);
   },
 
   removeResultListener: function (aListener) {
     this._listeners = this._listeners.filter(l => l != aListener);
   },
 
   _notify: function (aSearchString, aResult, aFindBackwards, aDrawOutline, aStoreResult = true) {
-    if (aStoreResult) {
+    if (aStoreResult)
       this._searchString = aSearchString;
-      this.clipboardSearchString = aSearchString
-    }
     this._outlineLink(aDrawOutline);
 
     let foundLink = this._fastFind.foundLink;
     let linkURL = null;
     if (foundLink) {
       let docCharset = null;
       let ownerDoc = foundLink.ownerDocument;
       if (ownerDoc)
         docCharset = ownerDoc.characterSet;
 
-      linkURL = TextToSubURIService.unEscapeURIForUI(docCharset, foundLink.href);
+      if (!this._textToSubURIService) {
+        this._textToSubURIService = Cc["@mozilla.org/intl/texttosuburi;1"]
+                                      .getService(Ci.nsITextToSubURI);
+      }
+
+      linkURL = this._textToSubURIService.unEscapeURIForUI(docCharset, foundLink.href);
     }
 
     let data = {
       result: aResult,
       findBackwards: aFindBackwards,
       linkURL: linkURL,
       rect: this._getResultRect(),
       searchString: this._searchString,
@@ -74,58 +67,19 @@ Finder.prototype = {
     };
 
     for (let l of this._listeners) {
       l.onFindResult(data);
     }
   },
 
   get searchString() {
-    if (!this._searchString && this._fastFind.searchString)
-      this._searchString = this._fastFind.searchString;
     return this._searchString;
   },
 
-  get clipboardSearchString() {
-    let searchString = "";
-    if (!Clipboard.supportsFindClipboard())
-      return searchString;
-
-    try {
-      let trans = Cc["@mozilla.org/widget/transferable;1"]
-                    .createInstance(Ci.nsITransferable);
-      trans.init(this._getWindow()
-                     .QueryInterface(Ci.nsIInterfaceRequestor)
-                     .getInterface(Ci.nsIWebNavigation)
-                     .QueryInterface(Ci.nsILoadContext));
-      trans.addDataFlavor("text/unicode");
-
-      Clipboard.getData(trans, Ci.nsIClipboard.kFindClipboard);
-
-      let data = {};
-      let dataLen = {};
-      trans.getTransferData("text/unicode", data, dataLen);
-      if (data.value) {
-        data = data.value.QueryInterface(Ci.nsISupportsString);
-        searchString = data.toString();
-      }
-    } catch (ex) {}
-
-    return searchString;
-  },
-
-  set clipboardSearchString(aSearchString) {
-    if (!aSearchString || !Clipboard.supportsFindClipboard())
-      return;
-
-    ClipboardHelper.copyStringToClipboard(aSearchString,
-                                          Ci.nsIClipboard.kFindClipboard,
-                                          this._getWindow().document);
-  },
-
   set caseSensitive(aSensitive) {
     this._fastFind.caseSensitive = aSensitive;
   },
 
   /**
    * Used for normal search operations, highlights the first match.
    *
    * @param aSearchString String to search for.
@@ -148,35 +102,16 @@ Finder.prototype = {
    * @param aDrawOutline Puts an outline around matched links.
    */
   findAgain: function (aFindBackwards, aLinksOnly, aDrawOutline) {
     let result = this._fastFind.findAgain(aFindBackwards, aLinksOnly);
     let searchString = this._fastFind.searchString;
     this._notify(searchString, result, aFindBackwards, aDrawOutline);
   },
 
-  /**
-   * Forcibly set the search string of the find clipboard to the currently
-   * selected text in the window, on supported platforms (i.e. OSX).
-   */
-  setSearchStringToSelection: function() {
-    // Find the selected text.
-    let selection = this._getWindow().getSelection();
-    // Don't go for empty selections.
-    if (!selection.rangeCount)
-      return null;
-    let searchString = (selection.toString() || "").trim();
-    // Empty strings are rather useless to search for.
-    if (!searchString.length)
-      return null;
-
-    this.clipboardSearchString = searchString;
-    return searchString;
-  },
-
   highlight: function (aHighlight, aWord) {
     let found = this._highlight(aHighlight, aWord, null);
     if (aHighlight) {
       let result = found ? Ci.nsITypeAheadFind.FIND_FOUND
                          : Ci.nsITypeAheadFind.FIND_NOTFOUND;
       this._notify(aWord, result, false, false, false);
     }
   },
--- a/widget/android/nsClipboard.cpp
+++ b/widget/android/nsClipboard.cpp
@@ -104,14 +104,8 @@ nsClipboard::HasDataMatchingFlavors(cons
 
 NS_IMETHODIMP
 nsClipboard::SupportsSelectionClipboard(bool *aIsSupported)
 {
   *aIsSupported = false;
   return NS_OK;
 }
 
-NS_IMETHODIMP
-nsClipboard::SupportsFindClipboard(bool* _retval)
-{
-  *_retval = false;
-  return NS_OK;
-}
--- a/widget/cocoa/nsClipboard.h
+++ b/widget/cocoa/nsClipboard.h
@@ -18,33 +18,27 @@ class nsClipboard : public nsBaseClipboa
 
 public:
   nsClipboard();
   virtual ~nsClipboard();
 
   // nsIClipboard  
   NS_IMETHOD HasDataMatchingFlavors(const char** aFlavorList, uint32_t aLength,
                                     int32_t aWhichClipboard, bool *_retval);
-  NS_IMETHOD SupportsFindClipboard(bool *_retval);
 
   // Helper methods, used also by nsDragService
   static NSDictionary* PasteboardDictFromTransferable(nsITransferable *aTransferable);
   static bool IsStringType(const nsCString& aMIMEType, NSString** aPasteboardType);
   static NSString* WrapHtmlForSystemPasteboard(NSString* aString);
   static nsresult TransferableFromPasteboard(nsITransferable *aTransferable, NSPasteboard *pboard);
 
 protected:
 
   // impelement the native clipboard behavior
   NS_IMETHOD SetNativeClipboardData(int32_t aWhichClipboard);
   NS_IMETHOD GetNativeClipboardData(nsITransferable * aTransferable, int32_t aWhichClipboard);
   
 private:
-  // This is always set to the native change count after any modification of the
-  // general clipboard.
-  int mChangeCountGeneral;
-  // This is always set to the native change count after any modification of the
-  // find clipboard.
-  int mChangeCountFind;
+  int mChangeCount; // this is always set to the native change count after any clipboard modifications
 
 };
 
 #endif // nsClipboard_h_
--- a/widget/cocoa/nsClipboard.mm
+++ b/widget/cocoa/nsClipboard.mm
@@ -30,18 +30,17 @@
 #ifdef PR_LOGGING
 extern PRLogModuleInfo* sCocoaLog;
 #endif
 
 extern void EnsureLogInitialized();
 
 nsClipboard::nsClipboard() : nsBaseClipboard()
 {
-  mChangeCountGeneral = 0;
-  mChangeCountFind = 0;
+  mChangeCount = 0;
 
   EnsureLogInitialized();
 }
 
 nsClipboard::~nsClipboard()
 {
 }
 
@@ -61,63 +60,47 @@ GetDataFromPasteboard(NSPasteboard* aPas
   return data;
 }
 
 NS_IMETHODIMP
 nsClipboard::SetNativeClipboardData(int32_t aWhichClipboard)
 {
   NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT;
 
-  if ((aWhichClipboard != kGlobalClipboard && aWhichClipboard != kFindClipboard) || !mTransferable)
+  if ((aWhichClipboard != kGlobalClipboard) || !mTransferable)
     return NS_ERROR_FAILURE;
 
   mIgnoreEmptyNotification = true;
 
   NSDictionary* pasteboardOutputDict = PasteboardDictFromTransferable(mTransferable);
   if (!pasteboardOutputDict)
     return NS_ERROR_FAILURE;
 
+  // write everything out to the general pasteboard
   unsigned int outputCount = [pasteboardOutputDict count];
   NSArray* outputKeys = [pasteboardOutputDict allKeys];
-  NSPasteboard* cocoaPasteboard;
-  if (aWhichClipboard == kFindClipboard) {
-    cocoaPasteboard = [NSPasteboard pasteboardWithName:NSFindPboard];
-    [cocoaPasteboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
-  } else {
-    // Write everything else out to the general pasteboard.
-    cocoaPasteboard = [NSPasteboard generalPasteboard];
-    [cocoaPasteboard declareTypes:outputKeys owner:nil];
-  }
-
+  NSPasteboard* generalPBoard = [NSPasteboard generalPasteboard];
+  [generalPBoard declareTypes:outputKeys owner:nil];
   for (unsigned int i = 0; i < outputCount; i++) {
     NSString* currentKey = [outputKeys objectAtIndex:i];
     id currentValue = [pasteboardOutputDict valueForKey:currentKey];
-    if (aWhichClipboard == kFindClipboard) {
-      if (currentKey == NSStringPboardType)
-        [cocoaPasteboard setString:currentValue forType:currentKey];
+    if (currentKey == NSStringPboardType ||
+        currentKey == kCorePboardType_url ||
+        currentKey == kCorePboardType_urld ||
+        currentKey == kCorePboardType_urln) {
+      [generalPBoard setString:currentValue forType:currentKey];
+    } else if (currentKey == NSHTMLPboardType) {
+      [generalPBoard setString:(nsClipboard::WrapHtmlForSystemPasteboard(currentValue))
+                       forType:currentKey];
     } else {
-      if (currentKey == NSStringPboardType ||
-          currentKey == kCorePboardType_url ||
-          currentKey == kCorePboardType_urld ||
-          currentKey == kCorePboardType_urln) {
-        [cocoaPasteboard setString:currentValue forType:currentKey];
-      } else if (currentKey == NSHTMLPboardType) {
-        [cocoaPasteboard setString:(nsClipboard::WrapHtmlForSystemPasteboard(currentValue))
-                         forType:currentKey];
-      } else {
-        [cocoaPasteboard setData:currentValue forType:currentKey];
-      }
+      [generalPBoard setData:currentValue forType:currentKey];
     }
   }
 
-  if (aWhichClipboard == kFindClipboard) {
-    mChangeCountFind = [cocoaPasteboard changeCount];
-  } else {
-    mChangeCountGeneral = [cocoaPasteboard changeCount];
-  }
+  mChangeCount = [generalPBoard changeCount];
 
   mIgnoreEmptyNotification = false;
 
   return NS_OK;
 
   NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT;
 }
 
@@ -250,41 +233,35 @@ nsClipboard::TransferableFromPasteboard(
   NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT;
 }
 
 NS_IMETHODIMP
 nsClipboard::GetNativeClipboardData(nsITransferable* aTransferable, int32_t aWhichClipboard)
 {
   NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT;
 
-  if ((aWhichClipboard != kGlobalClipboard && aWhichClipboard != kFindClipboard) || !aTransferable)
+  if ((aWhichClipboard != kGlobalClipboard) || !aTransferable)
     return NS_ERROR_FAILURE;
 
-  NSPasteboard* cocoaPasteboard;
-  if (aWhichClipboard == kFindClipboard) {
-    cocoaPasteboard = [NSPasteboard pasteboardWithName:NSFindPboard];
-  } else {
-    cocoaPasteboard = [NSPasteboard generalPasteboard];
-  }
+  NSPasteboard* cocoaPasteboard = [NSPasteboard generalPasteboard];
   if (!cocoaPasteboard)
     return NS_ERROR_FAILURE;
 
   // get flavor list that includes all acceptable flavors (including ones obtained through conversion)
   nsCOMPtr<nsISupportsArray> flavorList;
   nsresult rv = aTransferable->FlavorsTransferableCanImport(getter_AddRefs(flavorList));
   if (NS_FAILED(rv))
     return NS_ERROR_FAILURE;
 
   uint32_t flavorCount;
   flavorList->Count(&flavorCount);
 
-  int changeCount = (aWhichClipboard == kFindClipboard) ? mChangeCountFind : mChangeCountGeneral;
   // If we were the last ones to put something on the pasteboard, then just use the cached
   // transferable. Otherwise clear it because it isn't relevant any more.
-  if (changeCount == [cocoaPasteboard changeCount]) {
+  if (mChangeCount == [cocoaPasteboard changeCount]) {
     if (mTransferable) {
       for (uint32_t i = 0; i < flavorCount; i++) {
         nsCOMPtr<nsISupports> genericFlavor;
         flavorList->GetElementAt(i, getter_AddRefs(genericFlavor));
         nsCOMPtr<nsISupportsCString> currentFlavor(do_QueryInterface(genericFlavor));
         if (!currentFlavor)
           continue;
 
@@ -295,18 +272,19 @@ nsClipboard::GetNativeClipboardData(nsIT
         uint32_t dataSize = 0;
         rv = mTransferable->GetTransferData(flavorStr, getter_AddRefs(dataSupports), &dataSize);
         if (NS_SUCCEEDED(rv)) {
           aTransferable->SetTransferData(flavorStr, dataSupports, dataSize);
           return NS_OK; // maybe try to fill in more types? Is there a point?
         }
       }
     }
-  } else {
-    nsBaseClipboard::EmptyClipboard(aWhichClipboard);
+  }
+  else {
+    nsBaseClipboard::EmptyClipboard(kGlobalClipboard);
   }
 
   // at this point we can't satisfy the request from cache data so let's look
   // for things other people put on the system clipboard
 
   return nsClipboard::TransferableFromPasteboard(aTransferable, cocoaPasteboard);
 
   NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT;
@@ -375,24 +353,16 @@ nsClipboard::HasDataMatchingFlavors(cons
     }
   }
 
   return NS_OK;
 
   NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT;
 }
 
-NS_IMETHODIMP
-nsClipboard::SupportsFindClipboard(bool *_retval)
-{
-  NS_ENSURE_ARG_POINTER(_retval);
-  *_retval = true;
-  return NS_OK;
-}
-
 // This function converts anything that other applications might understand into the system format
 // and puts it into a dictionary which it returns.
 // static
 NSDictionary* 
 nsClipboard::PasteboardDictFromTransferable(nsITransferable* aTransferable)
 {
   NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NIL;
 
--- a/widget/gtk/nsClipboard.cpp
+++ b/widget/gtk/nsClipboard.cpp
@@ -443,23 +443,16 @@ nsClipboard::HasDataMatchingFlavors(cons
 
 NS_IMETHODIMP
 nsClipboard::SupportsSelectionClipboard(bool *_retval)
 {
     *_retval = true; // yeah, unix supports the selection clipboard
     return NS_OK;
 }
 
-NS_IMETHODIMP
-nsClipboard::SupportsFindClipboard(bool* _retval)
-{
-  *_retval = false;
-  return NS_OK;
-}
-
 /* static */
 GdkAtom
 nsClipboard::GetSelectionAtom(int32_t aWhichClipboard)
 {
     if (aWhichClipboard == kGlobalClipboard)
         return GDK_SELECTION_CLIPBOARD;
 
     return GDK_SELECTION_PRIMARY;
--- a/widget/nsIClipboard.idl
+++ b/widget/nsIClipboard.idl
@@ -6,22 +6,21 @@
 
 
 #include "nsISupports.idl"
 #include "nsITransferable.idl"
 #include "nsIClipboardOwner.idl"
 
 interface nsIArray;
 
-[scriptable, uuid(ceaa0047-647f-4b8e-ad1c-aff9fa62aa51)]
+[scriptable, uuid(38984945-8674-4d04-b786-5c0ca9434457)]
 interface nsIClipboard : nsISupports
 {
     const long kSelectionClipboard = 0;
     const long kGlobalClipboard = 1;
-    const long kFindClipboard = 2;
     
    /**
     * Given a transferable, set the data on the native clipboard
     *
     * @param  aTransferable The transferable
     * @param  anOwner The owner of the transferable
     * @param  aWhichClipboard Specifies the clipboard to which this operation applies.
     * @result NS_Ok if no errors
@@ -69,22 +68,14 @@ interface nsIClipboard : nsISupports
    /**
     * Allows clients to determine if the implementation supports the concept of a 
     * separate clipboard for selection.
     * 
     * @outResult - true if 
     * @result NS_OK if successful.
     */
     boolean supportsSelectionClipboard ( ) ;
-
-    /**
-    * Allows clients to determine if the implementation supports the concept of a
-    * separate clipboard for find search strings.
-    *
-    * @result NS_OK if successful.
-    */
-    boolean supportsFindClipboard ( ) ;
 };
 
 
 %{ C++
 
 %}
--- a/widget/qt/nsClipboard.cpp
+++ b/widget/qt/nsClipboard.cpp
@@ -551,17 +551,8 @@ nsClipboard::SupportsSelectionClipboard(
     }
     else
     {
         *_retval = false;
     }
 
     return NS_OK;
 }
-
-NS_IMETHODIMP
-nsClipboard::SupportsFindClipboard(bool* _retval)
-{
-  NS_ENSURE_ARG_POINTER(_retval);
-
-  *_retval = false;
-  return NS_OK;
-}
--- a/widget/xpwidgets/nsBaseClipboard.cpp
+++ b/widget/xpwidgets/nsBaseClipboard.cpp
@@ -17,17 +17,16 @@ nsBaseClipboard::nsBaseClipboard()
   mIgnoreEmptyNotification = false;
   mEmptyingForSetData      = false;
 }
 
 nsBaseClipboard::~nsBaseClipboard()
 {
   EmptyClipboard(kSelectionClipboard);
   EmptyClipboard(kGlobalClipboard);
-  EmptyClipboard(kFindClipboard);
 }
 
 NS_IMPL_ISUPPORTS1(nsBaseClipboard, nsIClipboard)
 
 /**
   * Sets the transferable object
   *
   */
@@ -35,19 +34,17 @@ NS_IMETHODIMP nsBaseClipboard::SetData(n
                                         int32_t aWhichClipboard)
 {
   NS_ASSERTION ( aTransferable, "clipboard given a null transferable" );
 
   if (aTransferable == mTransferable && anOwner == mClipboardOwner)
     return NS_OK;
   bool selectClipPresent;
   SupportsSelectionClipboard(&selectClipPresent);
-  bool findClipPresent;
-  SupportsFindClipboard(&findClipPresent);
-  if ( !selectClipPresent && !findClipPresent && aWhichClipboard != kGlobalClipboard )
+  if ( !selectClipPresent && aWhichClipboard != kGlobalClipboard )
     return NS_ERROR_FAILURE;
 
   mEmptyingForSetData = true;
   EmptyClipboard(aWhichClipboard);
   mEmptyingForSetData = false;
 
   mClipboardOwner = anOwner;
   if ( anOwner )
@@ -73,37 +70,33 @@ NS_IMETHODIMP nsBaseClipboard::SetData(n
 
 /**
   * Gets the transferable object
   *
   */
 NS_IMETHODIMP nsBaseClipboard::GetData(nsITransferable * aTransferable, int32_t aWhichClipboard)
 {
   NS_ASSERTION ( aTransferable, "clipboard given a null transferable" );
-
+  
   bool selectClipPresent;
   SupportsSelectionClipboard(&selectClipPresent);
-  bool findClipPresent;
-  SupportsFindClipboard(&findClipPresent);
-  if ( !selectClipPresent && !findClipPresent && aWhichClipboard != kGlobalClipboard )
+  if ( !selectClipPresent && aWhichClipboard != kGlobalClipboard )
     return NS_ERROR_FAILURE;
 
   if ( aTransferable )
     return GetNativeClipboardData(aTransferable, aWhichClipboard);
 
   return NS_ERROR_FAILURE;
 }
 
 NS_IMETHODIMP nsBaseClipboard::EmptyClipboard(int32_t aWhichClipboard)
 {
   bool selectClipPresent;
   SupportsSelectionClipboard(&selectClipPresent);
-  bool findClipPresent;
-  SupportsFindClipboard(&findClipPresent);
-  if ( !selectClipPresent && !findClipPresent && aWhichClipboard != kGlobalClipboard )
+  if ( !selectClipPresent && aWhichClipboard != kGlobalClipboard )
     return NS_ERROR_FAILURE;
 
   if (mIgnoreEmptyNotification)
     return NS_OK;
 
   if ( mClipboardOwner ) {
     mClipboardOwner->LosingOwnership(mTransferable);
     NS_RELEASE(mClipboardOwner);
@@ -125,15 +118,8 @@ nsBaseClipboard::HasDataMatchingFlavors(
 }
 
 NS_IMETHODIMP
 nsBaseClipboard::SupportsSelectionClipboard(bool* _retval)
 {
   *_retval = false;   // we don't support the selection clipboard by default.
   return NS_OK;
 }
-
-NS_IMETHODIMP
-nsBaseClipboard::SupportsFindClipboard(bool* _retval)
-{
-  *_retval = false;   // we don't support the find clipboard by default.
-  return NS_OK;
-}
--- a/widget/xpwidgets/nsClipboardHelper.cpp
+++ b/widget/xpwidgets/nsClipboardHelper.cpp
@@ -46,35 +46,26 @@ nsClipboardHelper::CopyStringToClipboard
   nsresult rv;
 
   // get the clipboard
   nsCOMPtr<nsIClipboard>
     clipboard(do_GetService("@mozilla.org/widget/clipboard;1", &rv));
   NS_ENSURE_SUCCESS(rv, rv);
   NS_ENSURE_TRUE(clipboard, NS_ERROR_FAILURE);
 
-  bool clipboardSupported;
   // don't go any further if they're asking for the selection
   // clipboard on a platform which doesn't support it (i.e., unix)
   if (nsIClipboard::kSelectionClipboard == aClipboardID) {
+    bool clipboardSupported;
     rv = clipboard->SupportsSelectionClipboard(&clipboardSupported);
     NS_ENSURE_SUCCESS(rv, rv);
     if (!clipboardSupported)
       return NS_ERROR_FAILURE;
   }
 
-  // don't go any further if they're asking for the find clipboard on a platform
-  // which doesn't support it (i.e., non-osx)
-  if (nsIClipboard::kFindClipboard == aClipboardID) {
-    rv = clipboard->SupportsFindClipboard(&clipboardSupported);
-    NS_ENSURE_SUCCESS(rv, rv);
-    if (!clipboardSupported)
-      return NS_ERROR_FAILURE;
-  }
-
   // create a transferable for putting data on the clipboard
   nsCOMPtr<nsITransferable>
     trans(do_CreateInstance("@mozilla.org/widget/transferable;1", &rv));
   NS_ENSURE_SUCCESS(rv, rv);
   NS_ENSURE_TRUE(trans, NS_ERROR_FAILURE);
 
   nsCOMPtr<nsIDocument> doc = do_QueryInterface(aDocument);
   nsILoadContext* loadContext = doc ? doc->GetLoadContext() : nullptr;
--- a/widget/xpwidgets/nsClipboardProxy.cpp
+++ b/widget/xpwidgets/nsClipboardProxy.cpp
@@ -86,15 +86,8 @@ nsClipboardProxy::HasDataMatchingFlavors
 
 NS_IMETHODIMP
 nsClipboardProxy::SupportsSelectionClipboard(bool *aIsSupported)
 {
   *aIsSupported = false;
   return NS_OK;
 }
 
-
-NS_IMETHODIMP
-nsClipboardProxy::SupportsFindClipboard(bool *aIsSupported)
-{
-  *aIsSupported = false;
-  return NS_OK;
-}