/usr/share/xul-ext/tabmixplus/modules/NewTabURL.jsm is in xul-ext-tabmixplus 0.5.0.0-1~deb8u1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | "use strict";
this.EXPORTED_SYMBOLS = ["Tabmix_NewTabURL"];
const {interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
Cu.import("resource://gre/modules/Services.jsm");
XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService",
"@mozilla.org/browser/aboutnewtab-service;1",
"nsIAboutNewTabService");
XPCOMUtils.defineLazyModuleGetter(this, "NewTabURL",
"resource:///modules/NewTabURL.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "TabmixSvc",
"resource://tabmixplus/Services.jsm");
const FIREFOX_PREF = "browser.#.url".replace("#", "newtab");
const ABOUT_NEW_TAB = "about:#".replace("#", "newtab");
// browser. newtab.url preference was removed by bug 1118285 (Firefox 41+)
this.Tabmix_NewTabURL = {
QueryInterface: XPCOMUtils.generateQI([
Ci.nsIObserver,
Ci.nsISupportsWeakReference
]),
init: function() {
if (!TabmixSvc.version(440)) {
this.updateNewTabURL = this._updateNewTabURL;
}
if (Services.prefs.prefHasUserValue(FIREFOX_PREF))
this.updateNewTabURL();
Services.prefs.addObserver(FIREFOX_PREF, this, true);
},
observe: function(aSubject, aTopic, aData) {
switch (aTopic) {
case "nsPref:changed":
if (aData == FIREFOX_PREF)
this.updateNewTabURL(aData);
break;
}
},
// for Firefox 41 - 43
_updateNewTabURL: function() {
let value = Services.prefs.getComplexValue(FIREFOX_PREF, Ci.nsISupportsString).data;
if (value == ABOUT_NEW_TAB)
NewTabURL.reset();
else
NewTabURL.override(value);
},
// for Firefox 44+
updateNewTabURL: function() {
let value = Services.prefs.getComplexValue(FIREFOX_PREF, Ci.nsISupportsString).data;
if (value == ABOUT_NEW_TAB) {
aboutNewTabService.resetNewTabURL();
} else {
aboutNewTabService.newTabURL = value;
}
}
};
this.Tabmix_NewTabURL.init();
|