mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 553112: Add a shared module for add-ons manager logging. r=robstrong
This commit is contained in:
parent
9d470d9950
commit
6b67506d41
137
toolkit/mozapps/extensions/AddonLogging.jsm
Normal file
137
toolkit/mozapps/extensions/AddonLogging.jsm
Normal file
@ -0,0 +1,137 @@
|
||||
/*
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is the Extension Manager.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# the Mozilla Foundation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2010
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Dave Townsend <dtownsend@oxymoronical.com>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
const Cr = Components.results;
|
||||
|
||||
const KEY_PROFILEDIR = "ProfD";
|
||||
const FILE_EXTENSIONS_LOG = "extensions.log";
|
||||
|
||||
Components.utils.import("resource://gre/modules/FileUtils.jsm");
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
var EXPORTED_SYMBOLS = [ "LogManager" ];
|
||||
|
||||
var gDebugLogEnabled = false;
|
||||
|
||||
function formatLogMessage(aType, aName, aStr) {
|
||||
return aType.toUpperCase() + " " + aName + ": " + aStr;
|
||||
}
|
||||
|
||||
function AddonLogger(aName) {
|
||||
this.name = aName;
|
||||
}
|
||||
|
||||
AddonLogger.prototype = {
|
||||
name: null,
|
||||
|
||||
error: function(aStr) {
|
||||
let message = formatLogMessage("error", this.name, aStr);
|
||||
|
||||
let consoleMessage = Cc["@mozilla.org/scripterror;1"].
|
||||
createInstance(Ci.nsIScriptError);
|
||||
consoleMessage.init(message, null, null, 0, 0, Ci.nsIScriptError.errorFlag,
|
||||
"component javascript");
|
||||
Services.console.logMessage(consoleMessage);
|
||||
|
||||
if (gDebugLogEnabled)
|
||||
dump("*** " + message + "\n");
|
||||
|
||||
try {
|
||||
var tstamp = new Date();
|
||||
var logfile = FileUtils.getFile(KEY_PROFILEDIR, [FILE_EXTENSIONS_LOG]);
|
||||
var stream = Cc["@mozilla.org/network/file-output-stream;1"].
|
||||
createInstance(Ci.nsIFileOutputStream);
|
||||
stream.init(logfile, 0x02 | 0x08 | 0x10, 0666, 0); // write, create, append
|
||||
var writer = Cc["@mozilla.org/intl/converter-output-stream;1"].
|
||||
createInstance(Ci.nsIConverterOutputStream);
|
||||
writer.init(stream, "UTF-8", 0, 0x0000);
|
||||
writer.writeString(tstamp.toLocaleFormat("%Y-%m-%d %H:%M:%S ") +
|
||||
message + "\n");
|
||||
writer.close();
|
||||
}
|
||||
catch (e) { }
|
||||
},
|
||||
|
||||
warn: function(aStr) {
|
||||
let message = formatLogMessage("warn", this.name, aStr);
|
||||
|
||||
let consoleMessage = Cc["@mozilla.org/scripterror;1"].
|
||||
createInstance(Ci.nsIScriptError);
|
||||
consoleMessage.init(message, null, null, 0, 0, Ci.nsIScriptError.warningFlag,
|
||||
"component javascript");
|
||||
Services.console.logMessage(consoleMessage);
|
||||
|
||||
if (gDebugLogEnabled)
|
||||
dump("*** " + message + "\n");
|
||||
},
|
||||
|
||||
log: function(aStr) {
|
||||
if (gDebugLogEnabled) {
|
||||
let message = formatLogMessage("log", this.name, aStr);
|
||||
dump("*** " + message + "\n");
|
||||
Services.console.logStringMessage(message);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var LogManager = {
|
||||
getLogger: function(aName, aTarget) {
|
||||
let logger = new AddonLogger(aName);
|
||||
|
||||
if (aTarget) {
|
||||
["error", "warn", "log"].forEach(function(name) {
|
||||
let fname = name.toUpperCase();
|
||||
delete aTarget[fname];
|
||||
aTarget[fname] = function(aStr) {
|
||||
logger[name](aStr);
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
return logger;
|
||||
}
|
||||
};
|
||||
|
||||
try {
|
||||
gDebugLogEnabled = Services.prefs.getBoolPref("extensions.logging.enabled");
|
||||
}
|
||||
catch (e) {
|
||||
}
|
@ -54,35 +54,14 @@ const PROVIDERS = [
|
||||
"resource://gre/modules/LightweightThemeManager.jsm"
|
||||
];
|
||||
|
||||
/**
|
||||
* Logs a debugging message.
|
||||
*
|
||||
* @param aStr
|
||||
* The string to log
|
||||
*/
|
||||
function LOG(aStr) {
|
||||
dump("*** addons.manager: " + aStr + "\n");
|
||||
}
|
||||
["LOG", "WARN", "ERROR"].forEach(function(aName) {
|
||||
this.__defineGetter__(aName, function() {
|
||||
Components.utils.import("resource://gre/modules/AddonLogging.jsm");
|
||||
|
||||
/**
|
||||
* Logs a warning message.
|
||||
*
|
||||
* @param aStr
|
||||
* The string to log
|
||||
*/
|
||||
function WARN(aStr) {
|
||||
LOG(aStr);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs an error message.
|
||||
*
|
||||
* @param aStr
|
||||
* The string to log
|
||||
*/
|
||||
function ERROR(aStr) {
|
||||
LOG(aStr);
|
||||
}
|
||||
LogManager.getLogger("addons.manager", this);
|
||||
return this[aName];
|
||||
});
|
||||
}, this);
|
||||
|
||||
/**
|
||||
* Calls a callback method consuming any thrown exception. Any parameters after
|
||||
|
@ -63,35 +63,14 @@ Components.utils.import("resource://gre/modules/CertUtils.jsm");
|
||||
var gRDF = Cc["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Ci.nsIRDFService);
|
||||
|
||||
/**
|
||||
* Logs a debug message.
|
||||
*
|
||||
* @param aStr
|
||||
* The string to log
|
||||
*/
|
||||
function LOG(aStr) {
|
||||
dump("*** addons.updates: " + aStr + "\n");
|
||||
}
|
||||
["LOG", "WARN", "ERROR"].forEach(function(aName) {
|
||||
this.__defineGetter__(aName, function() {
|
||||
Components.utils.import("resource://gre/modules/AddonLogging.jsm");
|
||||
|
||||
/**
|
||||
* Logs a warning message
|
||||
*
|
||||
* @param aStr
|
||||
* The string to log
|
||||
*/
|
||||
function WARN(aStr) {
|
||||
LOG(aStr);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs an error message
|
||||
*
|
||||
* @param aStr
|
||||
* The string to log
|
||||
*/
|
||||
function ERROR(aStr) {
|
||||
LOG(str);
|
||||
}
|
||||
LogManager.getLogger("addons.updates", this);
|
||||
return this[aName];
|
||||
});
|
||||
}, this);
|
||||
|
||||
/**
|
||||
* A serialisation method for RDF data that produces an identical string
|
||||
|
@ -73,6 +73,7 @@ EXTRA_PP_JS_MODULES = \
|
||||
XPIProvider.jsm \
|
||||
PluginProvider.jsm \
|
||||
AddonUpdateChecker.jsm \
|
||||
AddonLogging.jsm \
|
||||
$(NULL)
|
||||
|
||||
EXTRA_JS_MODULES = \
|
||||
|
@ -45,35 +45,14 @@ var EXPORTED_SYMBOLS = [];
|
||||
Components.utils.import("resource://gre/modules/AddonManager.jsm");
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
/**
|
||||
* Logs a debug message.
|
||||
*
|
||||
* @param aStr
|
||||
* The string to log
|
||||
*/
|
||||
function LOG(aStr) {
|
||||
dump("*** addons.plugins: " + aStr + "\n");
|
||||
}
|
||||
["LOG", "WARN", "ERROR"].forEach(function(aName) {
|
||||
this.__defineGetter__(aName, function() {
|
||||
Components.utils.import("resource://gre/modules/AddonLogging.jsm");
|
||||
|
||||
/**
|
||||
* Logs a warning message.
|
||||
*
|
||||
* @param aStr
|
||||
* The string to log
|
||||
*/
|
||||
function WARN(aStr) {
|
||||
LOG(aStr);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs an error message.
|
||||
*
|
||||
* @param aStr
|
||||
* The string to log
|
||||
*/
|
||||
function ERROR(aStr) {
|
||||
LOG(aStr);
|
||||
}
|
||||
LogManager.getLogger("addons.plugins", this);
|
||||
return this[aName];
|
||||
});
|
||||
}, this);
|
||||
|
||||
var PluginProvider = {
|
||||
// A dictionary mapping IDs to names and descriptions
|
||||
|
@ -132,35 +132,14 @@ const TYPES = {
|
||||
*/
|
||||
var gIDTest = /^(\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\}|[a-z0-9-\._]*\@[a-z0-9-\._]+)$/i;
|
||||
|
||||
/**
|
||||
* Logs a debug message.
|
||||
*
|
||||
* @param aStr
|
||||
* The string to log
|
||||
*/
|
||||
function LOG(aStr) {
|
||||
dump("*** addons.xpi: " + aStr + "\n");
|
||||
}
|
||||
["LOG", "WARN", "ERROR"].forEach(function(aName) {
|
||||
this.__defineGetter__(aName, function() {
|
||||
Components.utils.import("resource://gre/modules/AddonLogging.jsm");
|
||||
|
||||
/**
|
||||
* Logs a warning message.
|
||||
*
|
||||
* @param str
|
||||
* The string to log
|
||||
*/
|
||||
function WARN(aStr) {
|
||||
LOG(aStr);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs an error message.
|
||||
*
|
||||
* @param str
|
||||
* The string to log
|
||||
*/
|
||||
function ERROR(aStr) {
|
||||
LOG(aStr);
|
||||
}
|
||||
LogManager.getLogger("addons.xpi", this);
|
||||
return this[aName];
|
||||
})
|
||||
}, this);
|
||||
|
||||
/**
|
||||
* Gets the currently selected locale for display.
|
||||
|
@ -52,15 +52,14 @@ Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Components.utils.import("resource://gre/modules/AddonManager.jsm");
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
/**
|
||||
* Logs a warning message
|
||||
*
|
||||
* @param aStr
|
||||
* The string to log
|
||||
*/
|
||||
function WARN(aStr) {
|
||||
dump("*** addons.weblistener: " + aStr + "\n");
|
||||
}
|
||||
["LOG", "WARN", "ERROR"].forEach(function(aName) {
|
||||
this.__defineGetter__(aName, function() {
|
||||
Components.utils.import("resource://gre/modules/AddonLogging.jsm");
|
||||
|
||||
LogManager.getLogger("addons.weblistener", this);
|
||||
return this[aName];
|
||||
});
|
||||
}, this);
|
||||
|
||||
/**
|
||||
* Creates a new installer to monitor downloads and prompt to install when
|
||||
@ -190,7 +189,6 @@ extWebInstallListener.prototype = {
|
||||
installs: aInstalls,
|
||||
|
||||
install: function() {
|
||||
dump("Start installs\n");
|
||||
new Installer(this.originatingWindow, this.originatingURI, this.installs);
|
||||
},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user