You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

73 lines
2.3 KiB

/* 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/. */
this.EXPORTED_SYMBOLS = ["Communicator"];
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
this.Communicator = {
service: Services,
xpcom: XPCOMUtils,
platform:
#ifdef MOZ_WIDGET_GTK
"linux",
#elif XP_WIN
"win",
#elif XP_MACOSX
"macosx",
#elif MOZ_WIDGET_ANDROID
"android",
#elif XP_LINUX
"linux",
#else
"other",
#endif
isPlatformAndVersionAtLeast: function(platform, version) {
let platformVersion = Services.sysinfo.getProperty("version");
return platform == this.platform &&
Services.vc.compare(platformVersion, version) >= 0;
},
isPlatformAndVersionAtMost: function(platform, version) {
let platformVersion = Services.sysinfo.getProperty("version");
return platform == this.platform &&
Services.vc.compare(platformVersion, version) <= 0;
},
showLicenseWindow: function() {
var eulaDone = null;
eulaDone = Services.prefs.getBoolPref("app.eula.accepted", false);
if (!eulaDone) {
Services.ww.openWindow(null, "chrome://communicator/content/eula/eula.xul",
"_blank", "chrome,centerscreen,modal,resizable=no", null);
}
},
readfile: function(aDSDir, aFile) {
Components.utils.import("resource://gre/modules/FileUtils.jsm");
Components.utils.import("resource://gre/modules/NetUtil.jsm");
var file = FileUtils.getFile(aDSDir, [aFile]);
if (!file.exists()) {
Components.utils.reportError("Communicator.readfile: " + aFile + " does not exist in " + aDSDir);
return "No Data";
}
var stream = Components.classes["@mozilla.org/network/file-input-stream;1"]
.createInstance(Components.interfaces.nsIFileInputStream);
try {
stream.init(file, -1, 0, 0);
var data = NetUtil.readInputStreamToString(stream, stream.available());
}
catch (ex) {
Components.utils.reportError("Communicator.readfile: file stream failure in " + aDSdir + "/" + aFile);
return "No data";
}
stream.close();
return data;
},
}