Browse Source

Refactors new extension find bar code to support old FF versions

Yury Delendik 11 years ago
parent
commit
9f9454d2ae
  1. 18
      extensions/firefox/content/PdfStreamConverter.jsm
  2. 4
      test/mozcentral/browser_pdfjs_main.js

18
extensions/firefox/content/PdfStreamConverter.jsm

@ -66,9 +66,15 @@ function getChromeWindow(domWindow) {
function getFindBar(domWindow) { function getFindBar(domWindow) {
var browser = getContainingBrowser(domWindow); var browser = getContainingBrowser(domWindow);
try {
var tabbrowser = browser.getTabBrowser(); var tabbrowser = browser.getTabBrowser();
var tab = tabbrowser._getTabForBrowser(browser); var tab = tabbrowser._getTabForBrowser(browser);
return tabbrowser.getFindBar(tab); return tabbrowser.getFindBar(tab);
} catch (e) {
// FF22 has no _getTabForBrowser, and FF24 has no getFindBar
var chromeWindow = browser.ownerDocument.defaultView;
return chromeWindow.gFindBar;
}
} }
function setBoolPref(pref, value) { function setBoolPref(pref, value) {
@ -327,11 +333,13 @@ ChromeActions.prototype = {
return getBoolPref(PREF_PREFIX + '.pdfBugEnabled', false); return getBoolPref(PREF_PREFIX + '.pdfBugEnabled', false);
}, },
supportsIntegratedFind: function() { supportsIntegratedFind: function() {
// Integrated find is only supported when we're not in a frame and when the // Integrated find is only supported when we're not in a frame
// new find events code exists. if (this.domWindow.frameElement !== null) {
return this.domWindow.frameElement === null && return false;
getFindBar(this.domWindow) && }
'updateControlState' in getFindBar(this.domWindow); // ... and when the new find events code exists.
var findBar = getFindBar(this.domWindow);
return findBar && ('updateControlState' in findBar);
}, },
supportsDocumentFonts: function() { supportsDocumentFonts: function() {
var prefBrowser = getIntPref('browser.display.use_document_fonts', 1); var prefBrowser = getIntPref('browser.display.use_document_fonts', 1);

4
test/mozcentral/browser_pdfjs_main.js

@ -32,13 +32,13 @@ function test() {
// Runs tests after all 'load' event handlers have fired off // Runs tests after all 'load' event handlers have fired off
window.addEventListener("documentload", function() { window.addEventListener("documentload", function() {
runTests(document, window, finish); runTests(document, window, tab, finish);
}, false, true); }, false, true);
}, true); }, true);
} }
function runTests(document, window, callback) { function runTests(document, window, tab, callback) {
// //
// Overall sanity tests // Overall sanity tests

Loading…
Cancel
Save