Skip to content

Commit

Permalink
Refactor out "compare firefox version".
Browse files Browse the repository at this point in the history
  • Loading branch information
arantius committed Jul 8, 2011
1 parent 8f8d549 commit f1a6ca8
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 27 deletions.
20 changes: 6 additions & 14 deletions components/greasemonkey.js
Expand Up @@ -10,20 +10,7 @@ var Cu = Components.utils;

Cu.import("resource://gre/modules/XPCOMUtils.jsm");

var maxJSVersion = (function() {
var appInfo = Cc["@mozilla.org/xre/app-info;1"]
.getService(Ci.nsIXULAppInfo);
var versionChecker = Cc["@mozilla.org/xpcom/version-comparator;1"]
.getService(Ci.nsIVersionComparator);

// Firefox 3.5 and higher supports 1.8.
if (versionChecker.compare(appInfo.version, "3.5") >= 0) {
return "1.8";
}

// Everything else supports 1.6.
return "1.6";
})();
var maxJSVersion = "1.6";

var gmSvcFilename = Components.stack.filename;
var gStartupHasRun = false;
Expand Down Expand Up @@ -227,6 +214,11 @@ function startup() {
loader.loadSubScript("chrome://greasemonkey/content/xmlhttprequester.js");
loader.loadSubScript("chrome://greasemonkey/content/scriptdownloader.js");
loader.loadSubScript("chrome://greasemonkey/content/third-party/mpl-utils.js");

// Firefox 3.5 and higher supports 1.8.
if (GM_compareFirefoxVersion("3.5") >= 0) {
return "1.8";
}
}

/////////////////////////////////// Service ////////////////////////////////////
Expand Down
10 changes: 2 additions & 8 deletions content/addons.js
Expand Up @@ -6,20 +6,14 @@ var gUserscriptsView = null;
var GM_firefoxVersion;
var GM_os;
(function() {
var appInfo = Components
.classes["@mozilla.org/xre/app-info;1"]
.getService(Components.interfaces.nsIXULAppInfo);
var versionChecker = Components
.classes["@mozilla.org/xpcom/version-comparator;1"]
.getService(Components.interfaces.nsIVersionComparator);
var xulRuntime = Components
.classes["@mozilla.org/xre/app-info;1"]
.getService(Components.interfaces.nsIXULRuntime);

// Detect fixed possible compatible Firefox versions.
if (versionChecker.compare(appInfo.version, '3.5') < 0) {
if (GM_compareFirefoxVersion('3.5') < 0) {
GM_firefoxVersion = '3.0';
} else if (versionChecker.compare(appInfo.version, '3.6') < 0) {
} else if (GM_compareFirefoxVersion('3.6') < 0) {
GM_firefoxVersion = '3.5';
} else {
GM_firefoxVersion = '3.6';
Expand Down
6 changes: 1 addition & 5 deletions content/browser.js
Expand Up @@ -66,11 +66,7 @@ GM_BrowserUI.chromeLoad = function(e) {
// what we want, instead we listen for dom-window-destroyed, which comes
// pretty close (at least it doesn't leak memory). But: listening for dom-
// in Firefox 4 causes breakage, so we just do either-or.
var appInfo = Cc["@mozilla.org/xre/app-info;1"]
.getService(Ci.nsIXULAppInfo);
var versionChecker = Cc["@mozilla.org/xpcom/version-comparator;1"]
.getService(Ci.nsIVersionComparator);
if (versionChecker.compare(appInfo.version, "4.0") >= 0) {
if (GM_compareFirefoxVersion("4.0") >= 0) {
observerService.addObserver(GM_BrowserUI, "inner-window-destroyed", true);
} else {
observerService.addObserver(GM_BrowserUI, "dom-window-destroyed", true);
Expand Down
10 changes: 10 additions & 0 deletions content/utils.js
Expand Up @@ -283,6 +283,16 @@ function GM_compareVersions(aV1, aV2) {
return 0;
}

/** Runs nsIVersionComparator.compare() on the Firefox version. */
function GM_compareFirefoxVersion(aTarget) {
var appInfo = Cc["@mozilla.org/xre/app-info;1"]
.getService(Ci.nsIXULAppInfo);
var versionChecker = Cc["@mozilla.org/xpcom/version-comparator;1"]
.getService(Ci.nsIVersionComparator);

return versionChecker.compare(appInfo.version, aTarget);
}

// Remove all children from an element.
function GM_emptyEl(el) {
while (el.firstChild) el.removeChild(el.firstChild);
Expand Down

0 comments on commit f1a6ca8

Please sign in to comment.