mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-26 02:17:34 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
285
services/sync/tps/extensions/mozmill/resource/driver/mozmill.js
Normal file
285
services/sync/tps/extensions/mozmill/resource/driver/mozmill.js
Normal file
|
|
@ -0,0 +1,285 @@
|
|||
/* 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/. */
|
||||
|
||||
var EXPORTED_SYMBOLS = ["controller", "utils", "elementslib", "os",
|
||||
"getBrowserController", "newBrowserController",
|
||||
"getAddonsController", "getPreferencesController",
|
||||
"newMail3PaneController", "getMail3PaneController",
|
||||
"wm", "platform", "getAddrbkController",
|
||||
"getMsgComposeController", "getDownloadsController",
|
||||
"Application", "findElement",
|
||||
"getPlacesController", 'isMac', 'isLinux', 'isWindows',
|
||||
"firePythonCallback", "getAddons"
|
||||
];
|
||||
|
||||
var Cc = Components.classes;
|
||||
var Ci = Components.interfaces;
|
||||
var Cu = Components.utils;
|
||||
|
||||
|
||||
Cu.import("resource://gre/modules/AddonManager.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
// imports
|
||||
var assertions = {}; Cu.import('resource://mozmill/modules/assertions.js', assertions);
|
||||
var broker = {}; Cu.import('resource://mozmill/driver/msgbroker.js', broker);
|
||||
var controller = {}; Cu.import('resource://mozmill/driver/controller.js', controller);
|
||||
var elementslib = {}; Cu.import('resource://mozmill/driver/elementslib.js', elementslib);
|
||||
var findElement = {}; Cu.import('resource://mozmill/driver/mozelement.js', findElement);
|
||||
var os = {}; Cu.import('resource://mozmill/stdlib/os.js', os);
|
||||
var utils = {}; Cu.import('resource://mozmill/stdlib/utils.js', utils);
|
||||
var windows = {}; Cu.import('resource://mozmill/modules/windows.js', windows);
|
||||
|
||||
|
||||
const DEBUG = false;
|
||||
|
||||
// This is a useful "check" timer. See utils.js, good for debugging
|
||||
if (DEBUG) {
|
||||
utils.startTimer();
|
||||
}
|
||||
|
||||
var assert = new assertions.Assert();
|
||||
|
||||
// platform information
|
||||
var platform = os.getPlatform();
|
||||
var isMac = false;
|
||||
var isWindows = false;
|
||||
var isLinux = false;
|
||||
|
||||
if (platform == "darwin"){
|
||||
isMac = true;
|
||||
}
|
||||
|
||||
if (platform == "winnt"){
|
||||
isWindows = true;
|
||||
}
|
||||
|
||||
if (platform == "linux"){
|
||||
isLinux = true;
|
||||
}
|
||||
|
||||
var wm = Services.wm;
|
||||
|
||||
var appInfo = Services.appinfo;
|
||||
var Application = utils.applicationName;
|
||||
|
||||
|
||||
/**
|
||||
* Retrieves the list with information about installed add-ons.
|
||||
*
|
||||
* @returns {String} JSON data of installed add-ons
|
||||
*/
|
||||
function getAddons() {
|
||||
var addons = null;
|
||||
|
||||
AddonManager.getAllAddons(function (addonList) {
|
||||
var tmp_list = [ ];
|
||||
|
||||
addonList.forEach(function (addon) {
|
||||
var tmp = { };
|
||||
|
||||
// We have to filter out properties of type 'function' of the addon
|
||||
// object, which will break JSON.stringify() and result in incomplete
|
||||
// addon information.
|
||||
for (var key in addon) {
|
||||
if (typeof(addon[key]) !== "function") {
|
||||
tmp[key] = addon[key];
|
||||
}
|
||||
}
|
||||
|
||||
tmp_list.push(tmp);
|
||||
});
|
||||
|
||||
addons = tmp_list;
|
||||
});
|
||||
|
||||
try {
|
||||
// Sychronize with getAllAddons so we do not return too early
|
||||
assert.waitFor(function () {
|
||||
return !!addons;
|
||||
})
|
||||
|
||||
return addons;
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves application details for the Mozmill report
|
||||
*
|
||||
* @return {String} JSON data of application details
|
||||
*/
|
||||
function getApplicationDetails() {
|
||||
var locale = Cc["@mozilla.org/chrome/chrome-registry;1"]
|
||||
.getService(Ci.nsIXULChromeRegistry)
|
||||
.getSelectedLocale("global");
|
||||
|
||||
// Put all our necessary information into JSON and return it:
|
||||
// appinfo, startupinfo, and addons
|
||||
var details = {
|
||||
application_id: appInfo.ID,
|
||||
application_name: Application,
|
||||
application_version: appInfo.version,
|
||||
application_locale: locale,
|
||||
platform_buildid: appInfo.platformBuildID,
|
||||
platform_version: appInfo.platformVersion,
|
||||
addons: getAddons(),
|
||||
startupinfo: getStartupInfo(),
|
||||
paths: {
|
||||
appdata: Services.dirsvc.get('UAppData', Ci.nsIFile).path,
|
||||
profile: Services.dirsvc.get('ProfD', Ci.nsIFile).path
|
||||
}
|
||||
};
|
||||
|
||||
return JSON.stringify(details);
|
||||
}
|
||||
|
||||
// get startup time if available
|
||||
// see http://blog.mozilla.com/tglek/2011/04/26/measuring-startup-speed-correctly/
|
||||
function getStartupInfo() {
|
||||
var startupInfo = {};
|
||||
|
||||
try {
|
||||
var _startupInfo = Services.startup.getStartupInfo();
|
||||
for (var time in _startupInfo) {
|
||||
// convert from Date object to ms since epoch
|
||||
startupInfo[time] = _startupInfo[time].getTime();
|
||||
}
|
||||
} catch (e) {
|
||||
startupInfo = null;
|
||||
}
|
||||
|
||||
return startupInfo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function newBrowserController () {
|
||||
return new controller.MozMillController(utils.getMethodInWindows('OpenBrowserWindow')());
|
||||
}
|
||||
|
||||
function getBrowserController () {
|
||||
var browserWindow = wm.getMostRecentWindow("navigator:browser");
|
||||
|
||||
if (browserWindow == null) {
|
||||
return newBrowserController();
|
||||
} else {
|
||||
return new controller.MozMillController(browserWindow);
|
||||
}
|
||||
}
|
||||
|
||||
function getPlacesController () {
|
||||
utils.getMethodInWindows('PlacesCommandHook').showPlacesOrganizer('AllBookmarks');
|
||||
|
||||
return new controller.MozMillController(wm.getMostRecentWindow(''));
|
||||
}
|
||||
|
||||
function getAddonsController () {
|
||||
if (Application == 'SeaMonkey') {
|
||||
utils.getMethodInWindows('toEM')();
|
||||
}
|
||||
else if (Application == 'Thunderbird') {
|
||||
utils.getMethodInWindows('openAddonsMgr')();
|
||||
}
|
||||
else if (Application == 'Sunbird') {
|
||||
utils.getMethodInWindows('goOpenAddons')();
|
||||
} else {
|
||||
utils.getMethodInWindows('BrowserOpenAddonsMgr')();
|
||||
}
|
||||
|
||||
return new controller.MozMillController(wm.getMostRecentWindow(''));
|
||||
}
|
||||
|
||||
function getDownloadsController() {
|
||||
utils.getMethodInWindows('BrowserDownloadsUI')();
|
||||
|
||||
return new controller.MozMillController(wm.getMostRecentWindow(''));
|
||||
}
|
||||
|
||||
function getPreferencesController() {
|
||||
if (Application == 'Thunderbird') {
|
||||
utils.getMethodInWindows('openOptionsDialog')();
|
||||
} else {
|
||||
utils.getMethodInWindows('openPreferences')();
|
||||
}
|
||||
|
||||
return new controller.MozMillController(wm.getMostRecentWindow(''));
|
||||
}
|
||||
|
||||
// Thunderbird functions
|
||||
function newMail3PaneController () {
|
||||
return new controller.MozMillController(utils.getMethodInWindows('toMessengerWindow')());
|
||||
}
|
||||
|
||||
function getMail3PaneController () {
|
||||
var mail3PaneWindow = wm.getMostRecentWindow("mail:3pane");
|
||||
|
||||
if (mail3PaneWindow == null) {
|
||||
return newMail3PaneController();
|
||||
} else {
|
||||
return new controller.MozMillController(mail3PaneWindow);
|
||||
}
|
||||
}
|
||||
|
||||
// Thunderbird - Address book window
|
||||
function newAddrbkController () {
|
||||
utils.getMethodInWindows("toAddressBook")();
|
||||
utils.sleep(2000);
|
||||
var addyWin = wm.getMostRecentWindow("mail:addressbook");
|
||||
|
||||
return new controller.MozMillController(addyWin);
|
||||
}
|
||||
|
||||
function getAddrbkController () {
|
||||
var addrbkWindow = wm.getMostRecentWindow("mail:addressbook");
|
||||
if (addrbkWindow == null) {
|
||||
return newAddrbkController();
|
||||
} else {
|
||||
return new controller.MozMillController(addrbkWindow);
|
||||
}
|
||||
}
|
||||
|
||||
function firePythonCallback (filename, method, args, kwargs) {
|
||||
obj = {'filename': filename, 'method': method};
|
||||
obj['args'] = args || [];
|
||||
obj['kwargs'] = kwargs || {};
|
||||
|
||||
broker.sendMessage("firePythonCallback", obj);
|
||||
}
|
||||
|
||||
function timer (name) {
|
||||
this.name = name;
|
||||
this.timers = {};
|
||||
this.actions = [];
|
||||
|
||||
frame.timers.push(this);
|
||||
}
|
||||
|
||||
timer.prototype.start = function (name) {
|
||||
this.timers[name].startTime = (new Date).getTime();
|
||||
}
|
||||
|
||||
timer.prototype.stop = function (name) {
|
||||
var t = this.timers[name];
|
||||
|
||||
t.endTime = (new Date).getTime();
|
||||
t.totalTime = (t.endTime - t.startTime);
|
||||
}
|
||||
|
||||
timer.prototype.end = function () {
|
||||
frame.events.fireEvent("timer", this);
|
||||
frame.timers.remove(this);
|
||||
}
|
||||
|
||||
// Initialization
|
||||
|
||||
/**
|
||||
* Initialize Mozmill
|
||||
*/
|
||||
function initialize() {
|
||||
windows.init();
|
||||
}
|
||||
|
||||
initialize();
|
||||
Loading…
Add table
Add a link
Reference in a new issue