From a872e2a3ef4e8dbe5ac5f9a160c03dd0bb0314a2 Mon Sep 17 00:00:00 2001 From: Taras Glek Date: Mon, 26 Sep 2011 13:25:57 -0700 Subject: [PATCH 1/2] bug 668392: backout addon/person reporting until privacy optin is updated --- toolkit/components/telemetry/TelemetryPing.js | 55 +------------------ .../tests/unit/test_TelemetryPing.js | 51 ++++++----------- toolkit/mozapps/extensions/XPIProvider.jsm | 3 - 3 files changed, 17 insertions(+), 92 deletions(-) diff --git a/toolkit/components/telemetry/TelemetryPing.js b/toolkit/components/telemetry/TelemetryPing.js index 120df1ddbba8..01db8b20d303 100644 --- a/toolkit/components/telemetry/TelemetryPing.js +++ b/toolkit/components/telemetry/TelemetryPing.js @@ -40,7 +40,6 @@ const Cu = Components.utils; Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/LightweightThemeManager.jsm"); // When modifying the payload in incompatible ways, please bump this version number const PAYLOAD_VERSION = 1; @@ -221,54 +220,6 @@ TelemetryPing.prototype = { h.add(val); }, - /** - * Descriptive metadata - * - * @param reason - * The reason for the telemetry ping, this will be included in the - * returned metadata, - * @return The metadata as a JS object - */ - getMetadata: function getMetadata(reason) { - let ai = Services.appinfo; - let ret = { - reason: reason, - OS: ai.OS, - appID: ai.ID, - appVersion: ai.version, - appName: ai.name, - appBuildID: ai.appBuildID, - platformBuildID: ai.platformBuildID, - }; - - // sysinfo fields are not always available, get what we can. - let sysInfo = Cc["@mozilla.org/system-info;1"].getService(Ci.nsIPropertyBag2); - let fields = ["cpucount", "memsize", "arch", "version", "device", "manufacturer", "hardware"]; - for each (let field in fields) { - let value; - try { - value = sysInfo.getProperty(field); - } catch (e) { - continue - } - if (field == "memsize") { - // Send RAM size in megabytes. Rounding because sysinfo doesn't - // always provide RAM in multiples of 1024. - value = Math.round(value / 1024 / 1024) - } - ret[field] = value - } - - let theme = LightweightThemeManager.currentTheme; - if (theme) - ret.persona = theme.id; - - if (this._addons) - ret.addons = this._addons; - - return ret; - }, - /** * Pull values from about:memory into corresponding histograms */ @@ -335,11 +286,10 @@ TelemetryPing.prototype = { this.gatherMemory(); let payload = { ver: PAYLOAD_VERSION, - info: this.getMetadata(reason), + info: getMetadata(reason), simpleMeasurements: getSimpleMeasurements(), histograms: getHistograms() }; - let isTestPing = (reason == "test-ping"); // Generate a unique id once per session so the server can cope with duplicate submissions. // Use a deterministic url for testing. @@ -441,9 +391,6 @@ TelemetryPing.prototype = { var server = this._server; switch (aTopic) { - case "Add-ons": - this._addons = aData; - break; case "profile-after-change": this.setup(); break; diff --git a/toolkit/components/telemetry/tests/unit/test_TelemetryPing.js b/toolkit/components/telemetry/tests/unit/test_TelemetryPing.js index 9109c73c807c..95f7cb0c7035 100644 --- a/toolkit/components/telemetry/tests/unit/test_TelemetryPing.js +++ b/toolkit/components/telemetry/tests/unit/test_TelemetryPing.js @@ -10,7 +10,6 @@ do_load_httpd_js(); Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/LightweightThemeManager.jsm"); const PATH = "/submit/telemetry/test-ping"; const SERVER = "http://localhost:4444"; @@ -22,7 +21,6 @@ const BinaryInputStream = Components.Constructor( "setInputStream"); var httpserver = new nsHttpServer(); -var gFinished = false; function telemetry_ping () { const TelemetryPing = Cc["@mozilla.org/base/telemetry-ping;1"].getService(Ci.nsIObserver); @@ -48,12 +46,27 @@ function telemetryObserver(aSubject, aTopic, aData) { telemetry_ping(); } +function run_test() { + createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2"); + Services.obs.addObserver(nonexistentServerObserver, "telemetry-test-xhr-complete", false); + telemetry_ping(); + // spin the event loop + do_test_pending(); +} + +function readBytesFromInputStream(inputStream, count) { + if (!count) { + count = inputStream.available(); + } + return new BinaryInputStream(inputStream).readBytes(count); +} + function checkHistograms(request, response) { // do not need the http server anymore httpserver.stop(do_test_finished); let s = request.bodyInputStream let payload = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON) - .decodeFromStream(s, s.available()) + .decode(readBytesFromInputStream(s)) do_check_eq(request.getHeader("content-type"), "application/json; charset=UTF-8"); do_check_true(payload.simpleMeasurements.uptime >= 0) @@ -89,7 +102,6 @@ function checkHistograms(request, response) { let tc = payload.histograms[TELEMETRY_SUCCESS] do_check_eq(uneval(tc), uneval(expected_tc)); - gFinished = true; } // copied from toolkit/mozapps/extensions/test/xpcshell/head_addons.js @@ -140,34 +152,3 @@ function createAppInfo(id, name, version, platformVersion) { registrar.registerFactory(XULAPPINFO_CID, "XULAppInfo", XULAPPINFO_CONTRACTID, XULAppInfoFactory); } - -function dummyTheme(id) { - return { - id: id, - name: Math.random().toString(), - headerURL: "http://lwttest.invalid/a.png", - footerURL: "http://lwttest.invalid/b.png", - textcolor: Math.random().toString(), - accentcolor: Math.random().toString() - }; -} - -function run_test() { - // Addon manager needs a profile directory - do_get_profile(); - createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2"); - // try to make LightweightThemeManager do stuff - let gInternalManager = Cc["@mozilla.org/addons/integration;1"] - .getService(Ci.nsIObserver) - .QueryInterface(Ci.nsITimerCallback); - - gInternalManager.observe(null, "addons-startup", null); - LightweightThemeManager.currentTheme = dummyTheme("1234"); - - Services.obs.addObserver(nonexistentServerObserver, "telemetry-test-xhr-complete", false); - telemetry_ping(); - // spin the event loop - do_test_pending(); - // ensure that test runs to completion - do_register_cleanup(function () do_check_true(gFinished)) - } diff --git a/toolkit/mozapps/extensions/XPIProvider.jsm b/toolkit/mozapps/extensions/XPIProvider.jsm index 1737259f13e7..4bd4ffb38390 100644 --- a/toolkit/mozapps/extensions/XPIProvider.jsm +++ b/toolkit/mozapps/extensions/XPIProvider.jsm @@ -1754,9 +1754,6 @@ var XPIProvider = { Services.appinfo.annotateCrashReport("Add-ons", data); } catch (e) { } - - const TelemetryPing = Cc["@mozilla.org/base/telemetry-ping;1"].getService(Ci.nsIObserver); - TelemetryPing.observe(null, "Add-ons", data); }, /** From 6e5e9e8ae43fb3ce13275432b41b552e759b3e56 Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Mon, 26 Sep 2011 16:41:38 -0400 Subject: [PATCH 2/2] Bug 666414 followup - Fix the Android build bustage --- dom/plugins/base/android/ANPTypeface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dom/plugins/base/android/ANPTypeface.cpp b/dom/plugins/base/android/ANPTypeface.cpp index 78e6b1a57875..067f810e308b 100644 --- a/dom/plugins/base/android/ANPTypeface.cpp +++ b/dom/plugins/base/android/ANPTypeface.cpp @@ -62,7 +62,7 @@ anp_typeface_createFromName(const char name[], ANPTypefaceStyle aStyle) ANPTypeface* tf = new ANPTypeface; gfxAndroidPlatform * p = (gfxAndroidPlatform*)gfxPlatform::GetPlatform(); nsRefPtr font = gfxFT2Font::GetOrMakeFont(NS_ConvertASCIItoUTF16(name), &style); - tf->mFont = font.forget(); + font.forget(&tf->mFont); if (tf->mFont) { ++tf->mRefCnt; }