Bug 478462 - Add selected locale (for global and chatzilla), timezone and host app name/version/build details to CEIP log.

ChatZilla only.
r=gijs


git-svn-id: svn://10.0.0.236/trunk@257495 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
silver%warwickcompsoc.co.uk
2009-06-15 13:30:40 +00:00
parent 6077a5ab1e
commit 37f6cf4d7e
2 changed files with 67 additions and 9 deletions

View File

@@ -92,13 +92,21 @@ CEIP.prototype.startLog =
function ceip_startlog()
{
dd("CEIP: LOGGING START");
var version = getVersionInfo();
this.enabled = true;
this.logEvent({
type: "logger",
event: "start",
userid: client.prefs["ceip.userid"],
clientVersion: __cz_version,
clientVersionSuffix: __cz_suffix
clientVersionSuffix: __cz_suffix,
clientLocale: this.getSelectedLocale("chatzilla"),
hostName: version.hostName,
hostVersion: version.hostVersion,
hostBuildID: version.hostBuildID,
hostLocale: this.getSelectedLocale("global"),
tz: this.getWinterTimezoneOffset(),
tzNow: (new Date()).getTimezoneOffset()
});
var self = this;
@@ -365,6 +373,48 @@ function ceip_geteventviewtype(e)
return MSG_UNKNOWN;
}
/**
* Gets the currently selected locale for a given package.
*
* @param packageName A package to get the selected locale of, e.g. "global",
* "chatzilla".
* @returns An IETF language tag (e.g. "en-US") for the locale.
*/
CEIP.prototype.getSelectedLocale =
function ceip_getselectedlocale(packageName)
{
var selectedLocale = "";
try
{
var chromeReg = getService("@mozilla.org/chrome/chrome-registry;1",
"nsIXULChromeRegistry");
selectedLocale = chromeReg.getSelectedLocale(packageName);
}
catch (ex) {}
return selectedLocale;
}
/**
* Gets a date-independent timezone offset for the user.
*
* The calculation takes the two solstices, using approximate dates 21st June
* and 21st December, and chooses the most "behind" timezone offset of them as
* the winter timezone offset.
*
* @returns A value which is constant throughout the year for a given timezone.
*/
CEIP.prototype.getWinterTimezoneOffset =
function ceip_getwintertimezoneoffset()
{
var d1 = new Date();
d1.setMonth(5);
d1.setDate(21);
var d2 = new Date();
d2.setMonth(11);
d2.setDate(21);
return Math.max(d1.getTimezoneOffset(), d2.getTimezoneOffset());
}
CEIP.prototype.isCommandIgnored =
function ceip_iscommandignored(e)
{

View File

@@ -407,7 +407,6 @@ function getVersionInfo()
var version = new Object();
version.cz = __cz_version + (__cz_suffix ? "-" + __cz_suffix : "");
version.ua = navigator.userAgent;
version.host = "Unknown";
var app = getService("@mozilla.org/xre/app-info;1", "nsIXULAppInfo");
if (app)
@@ -420,24 +419,30 @@ function getVersionInfo()
*/
// "XULRunner 1.7+"
version.host = "XULRunner " + app.platformVersion;
version.hostName = "XULRunner";
version.hostVersion = app.platformVersion;
version.host = version.hostName + " " + version.hostVersion;
// "XULRunner 1.7+/2005071506"
version.ua = version.host + "/" + app.platformBuildID;
version.hostBuildID = app.platformBuildID;
}
else
{
// "Mozilla Firefox 1.0+"
version.host = app.vendor + " " + app.name + " " + app.version;
version.hostName = app.vendor + " " + app.name;
version.hostVersion = app.version;
version.host = version.hostName + " " + version.hostVersion;
// "Firefox 1.0+/2005071506"
version.ua = app.name + " " + app.version + "/";
if ("platformBuildID" in app) // 1.1 and up
version.ua += app.platformBuildID;
version.hostBuildID = app.platformBuildID;
else if ("geckoBuildID" in app) // 1.0 - 1.1 trunk only
version.ua += app.geckoBuildID;
version.hostBuildID = app.geckoBuildID;
else // Uh oh!
version.ua += "??????????";
version.hostBuildID = "??????????";
version.ua = app.name + " " + app.version + "/" +
version.hostBuildID;
}
}
else
@@ -451,8 +456,11 @@ function getVersionInfo()
else
version.ua = client.entities.brandShortName + " " + ary[1]; // Suite
version.ua += "/" + ary[2];
version.hostBuildID = ary[2];
}
version.host = client.entities.brandShortName;
version.hostName = client.entities.brandShortName;
version.hostVersion = "";
version.host = version.hostName;
}
version.host += ", " + client.platform;