зеркало из https://github.com/mozilla/gecko-dev.git
Bug 741281 - Add a Java interface for sending telemetry data. r=blassey
This commit is contained in:
Родитель
18d17113f5
Коммит
c81eabf714
|
@ -115,6 +115,7 @@ FENNEC_JAVA_FILES = \
|
|||
Tabs.java \
|
||||
TabsTray.java \
|
||||
TabsAccessor.java \
|
||||
Telemetry.java \
|
||||
gfx/BitmapUtils.java \
|
||||
gfx/BufferedCairoImage.java \
|
||||
gfx/CairoGLInfo.java \
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
|
||||
* 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/. */
|
||||
|
||||
package org.mozilla.gecko;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class Telemetry {
|
||||
private static final String LOGTAG = "Telemetry";
|
||||
|
||||
// Define new histograms in:
|
||||
// toolkit/components/telemetry/TelemetryHistograms.h
|
||||
public static void HistogramAdd(String name,
|
||||
int value) {
|
||||
try {
|
||||
JSONObject jsonData = new JSONObject();
|
||||
|
||||
jsonData.put("name", name);
|
||||
jsonData.put("value", value);
|
||||
|
||||
GeckoEvent event =
|
||||
GeckoEvent.createBroadcastEvent("Telemetry:Add", jsonData.toString());
|
||||
GeckoAppShell.sendEventToGecko(event);
|
||||
|
||||
Log.v(LOGTAG, "Sending telemetry: " + jsonData.toString());
|
||||
} catch (JSONException e) {
|
||||
Log.e(LOGTAG, "JSON exception: ", e);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -193,6 +193,7 @@ var BrowserApp = {
|
|||
Services.obs.addObserver(this, "Preferences:Set", false);
|
||||
Services.obs.addObserver(this, "ScrollTo:FocusedInput", false);
|
||||
Services.obs.addObserver(this, "Sanitize:ClearAll", false);
|
||||
Services.obs.addObserver(this, "Telemetry:Add", false);
|
||||
Services.obs.addObserver(this, "PanZoom:PanZoom", false);
|
||||
Services.obs.addObserver(this, "FullScreen:Exit", false);
|
||||
Services.obs.addObserver(this, "Viewport:Change", false);
|
||||
|
@ -788,6 +789,14 @@ var BrowserApp = {
|
|||
} catch (e) {}
|
||||
},
|
||||
|
||||
addTelemetry: function addTelemetry(aData) {
|
||||
let json = JSON.parse(aData);
|
||||
var telemetry = Cc["@mozilla.org/base/telemetry;1"]
|
||||
.getService(Ci.nsITelemetry);
|
||||
let histogram = telemetry.getHistogramById(json.name);
|
||||
histogram.add(json.value);
|
||||
},
|
||||
|
||||
setPreferences: function setPreferences(aPref) {
|
||||
let json = JSON.parse(aPref);
|
||||
|
||||
|
@ -973,6 +982,8 @@ var BrowserApp = {
|
|||
} else {
|
||||
profiler.StartProfiler(100000, 25, ["stackwalk"], 1);
|
||||
}
|
||||
} else if (aTopic == "Telemetry:Add") {
|
||||
this.addTelemetry(aData);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче