Files

174 lines
6.1 KiB
JavaScript

/*var self = require("sdk/self");
var buttons;
try {
buttons = require('sdk/ui/button/action');
} catch (ex) {
buttons = null;
}
var tabs = require("sdk/tabs");
const {Cc, Ci, Cu, Cr} = require("chrome");*/
/*if (buttons != null) {//null -> 24
var button = buttons.ActionButton({
id: "mozilla-link",
label: "Befator Inc. Secure-Web!",
icon: {
"16": "./icon-64.png",
"32": "./icon-64.png",
"64": "./icon-64.png"
},
onClick: handleClick
});
} else {
var widgets = require("sdk/widget")
var widget = widgets.Widget({
id: "mozilla-link",
label: "Befator Inc. Secure-Web!",
contentURL: "resource://befatoraddon-at-jetpack/befatoraddon/data/icon-64.png",
onClick: handleClick
});
}*/
var EXPORTED_SYMBOLS = ["befatorUpdate", "handleBefatorClick", "getServices"];
//console.log("Befator Inc grüßt Sie!");
function getServices(window) {
try {
return window.Cu.import('resource://gre/modules/Services.jsm').Services;
} catch (e) {//e -> 3.6
return Services = {
io: Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService),
obs: Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService),
prefs: Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch(""),
prompt: Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService)
}
}
}
function handleBefatorClick(window) {
var Services = getServices(window);
var request = new window.XMLHttpRequest();
request.onreadystatechange = function() {
if (request.readyState == 4) {
Services.prompt.alert(window, "Befator Inc Secure-Web", request.responseText);
}
}
request.open("GET", "http://proxy.befatorinc.de/api/progressMessage?currentPage=" + window.document.getElementById("content").selectedBrowser.contentDocument.location.href.replace("http://", ""), true);
request.send(null);
//tabs.open("https://wiki.befatorinc.de/index.php/Hauptseite");
}
function realHandleWindow(window) {
if (Components.utils.import != undefined) {//undefined -> 2.0
Components.utils.import("resource://befatoraddon/main.jsm");
} else {
Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript("chrome://befatoraddon/content/main.jsm");
}
onBefatorWindow(window);
}
function handleWindow(window) {
if (window.document.readyState == "complete") {
//window.console.log("Window!");
realHandleWindow(window);
} else {
window.addEventListener('load', function(e) {
realHandleWindow(window);
}, false);
}
}
var init = false;
function befatorUpdate(window) {
if (Components.utils.import == undefined) {//undefined -> 2.0
var globalWindow = Components.classes["@mozilla.org/appshell/appShellService;1"].getService(Components.interfaces.nsIAppShellService).hiddenDOMWindow;
init = globalWindow.befatorWebInit;
}
if (!init) {
if (Components.utils.import != undefined) {//undefined -> 2.0
init = true;
} else {
globalWindow.befatorWebInit = true;
}
var Services = getServices(window);
var observers = {
'homepage-pref': {
observe: function (aSubject, aTopic, aData) {
//befatorWindow.console.log("HomePage!");
if (Services.prefs.getCharPref("browser.startup.homepage") != "about:home") {
Services.prefs.setCharPref("browser.startup.homepage", "about:home");
}
},
reg: function () {
var pref = Services.prefs;
if (pref.addObserver == undefined) {//undefined -> 3.6
pref = pref.QueryInterface(Components.interfaces.nsIPrefBranch2);
}
pref.addObserver("browser.startup.homepage", observers['homepage-pref'], false);
},
unreg: function () {
//Services.obs.removeObserver(observers['http-on-modify-request'], 'http-on-modify-request');
}
},
'proxy-pref': {
observe: function (aSubject, aTopic, aData) {
if (Services.prefs.getCharPref("network.proxy.http") != "192.168.0.84") {
Services.prefs.setCharPref("network.proxy.http", "192.168.0.84");
}
if (Services.prefs.getIntPref("network.proxy.http_port") != 3636) {
Services.prefs.setIntPref("network.proxy.http_port", 3636);
}
if (Services.prefs.getCharPref("network.proxy.ssl") != "192.168.0.84") {
Services.prefs.setCharPref("network.proxy.ssl", "192.168.0.84");
}
if (Services.prefs.getIntPref("network.proxy.ssl_port") != 3636) {
Services.prefs.setIntPref("network.proxy.ssl_port", 3636);
}
if (Services.prefs.getIntPref("network.proxy.type") != 1) {
Services.prefs.setIntPref("network.proxy.type", 1);
}
},
reg: function () {
var pref = Services.prefs;
if (pref.addObserver == undefined) {//undefined -> 3.6
pref = pref.QueryInterface(Components.interfaces.nsIPrefBranch2)
}
pref.addObserver("network.proxy.http", observers['proxy-pref'], false);
pref.addObserver("network.proxy.http_port", observers['proxy-pref'], false);
pref.addObserver("network.proxy.ssl", observers['proxy-pref'], false);
pref.addObserver("network.proxy.ssl_port", observers['proxy-pref'], false);
pref.addObserver("network.proxy.type", observers['proxy-pref'], false);
pref.setCharPref("network.proxy.http", "update-trigger");
},
unreg: function () {
//Services.obs.removeObserver(observers['http-on-modify-request'], 'http-on-modify-request');
}
},
'toplevel-window-ready': {
observe: function (aSubject, aTopic, aData) {
handleWindow(aSubject);
},
reg: function () {
Services.obs.addObserver(observers['toplevel-window-ready'], 'toplevel-window-ready', false);
},
unreg: function () {
Services.obs.removeObserver(observers['toplevel-window-ready'], 'toplevel-window-ready');
}
}
};
//console.log("Startup");
for (var o in observers) {
observers[o].reg();
}
handleWindow(window);
}
}