tenfourfox/browser/components/preferences/in-content/tenfourfox.js

104 lines
4.2 KiB
JavaScript

/* 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/. */
/* Custom TenFourFox prefpanel (C)2016 Cameron Kaiser */
Components.utils.import("resource://gre/modules/AppConstants.jsm");
Components.utils.import("resource://gre/modules/Services.jsm");
var gTenFourFoxPane = {
init: function ()
{
function setEventListener(aId, aEventType, aCallback)
{
document.getElementById(aId)
.addEventListener(aEventType, aCallback.bind(gTenFourFoxPane));
}
setEventListener("siteSpecificUAs", "command", gTenFourFoxPane.showSSUAs);
setEventListener("autoReaderView", "command", gTenFourFoxPane.showAutoRV);
},
showSSUAs: function ()
{
let bundle = document.getElementById("tenFourFoxBundle");
let params = { blockVisible : true,
sessionVisible : true,
allowVisible : true,
prefilledHost : "",
type : "ssua",
windowTitle : bundle.getString("TFFsiteSpecificUAs.title"),
introText : bundle.getString("TFFsiteSpecificUAs.prompt") };
gSubDialog.open("chrome://browser/content/preferences/tenfourfox-ssua.xul",
null, params);
},
showAutoRV: function ()
{
let bundle = document.getElementById("tenFourFoxBundle");
let params = { blockVisible : true,
sessionVisible : true,
allowVisible : true,
prefilledHost : "",
type : "autorv",
windowTitle : bundle.getString("TFFautoReaderView.title"),
introText : bundle.getString("TFFautoReaderView.prompt") };
gSubDialog.open("chrome://browser/content/preferences/tenfourfox-autorv.xul",
null, params);
},
// We have to invert the sense for the pdfjs.disabled pref, since true equals DISabled.
readPDFjs: function ()
{
var pref = document.getElementById("pdfjs.disabled");
return (!(pref.value));
},
writePDFjs: function ()
{
var nupref = document.getElementById("pdfJsCheckbox");
return (!(nupref.checked));
},
// Find and set the appropriate UA string based on the UA template.
// Keep in sync with tenfourfox-ssua.xul and tenfourfox.xul
validUA : {
"fx" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Firefox/52.0",
"fx60" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Firefox/60.0",
"fx68" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Firefox/68.0",
"fx78" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Firefox/78.0",
"fx91" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 12.0; rv:91.0) Gecko/20100101 Firefox/91.0",
"classilla" : "NokiaN90-1/3.0545.5.1 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1 (en-US; rv:9.3.3) Clecko/20141026 Classilla/CFM",
"ie8" : "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)",
"ie11" : "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko",
"android" : "Mozilla/5.0 (Linux; Android 8.1.0; Pixel XL Build/OPM1.171019.021) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.109 Mobile Safari/537.36",
"ipad" : "Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) AppleWebKit/604.5.6 (KHTML, like Gecko) Version/11.0 Mobile/15D100 Safari/604.1"
},
readUA: function ()
{
var pref = document.getElementById("tenfourfox.ua.template");
if (!pref) return "";
// Synchronize the pref on entry in case it's stale.
pref = pref.value;
if (this.validUA[pref]) {
Services.prefs.setCharPref("general.useragent.override", this.validUA[pref]);
return pref;
}
return "";
},
writeUA : function()
{
var nupref = document.getElementById("uaBox").value;
if (this.validUA[nupref]) {
Services.prefs.setCharPref("general.useragent.override", this.validUA[nupref]);
return nupref;
}
Services.prefs.clearUserPref("general.useragent.override");
return "";
},
};