mirror of https://github.com/roytam1/boc-uxp.git
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
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; |
|
}, |
|
}
|
|
|