mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 13:51:41 +00:00
Backed out changeset eb0c3d8a6d53 (bug 1281220) for crashing in testBug1217581 in rc3. r=backout on a CLOSED TREE
This commit is contained in:
parent
4fea2f775e
commit
0b4287e91c
@ -64,18 +64,60 @@ var loadedDeferred = null;
|
|||||||
|
|
||||||
// We have a new load starting. Replace the existing promise with a new one,
|
// We have a new load starting. Replace the existing promise with a new one,
|
||||||
// and queue up the transition to remote content.
|
// and queue up the transition to remote content.
|
||||||
function deferTransitionToRemoteAfterLoaded() {
|
function deferTransitionToRemoteAfterLoaded(url) {
|
||||||
log.d('Waiting for LOADED message.');
|
log.d('Waiting for LOADED message.');
|
||||||
|
|
||||||
|
// We are collecting data to understand the experience when using
|
||||||
|
// about:accounts to connect to the specific fxa-content-server hosted by
|
||||||
|
// Mozilla at accounts.firefox.com. However, we don't want to observe what
|
||||||
|
// alternate servers users might be using, so we can't collect the whole URL.
|
||||||
|
// Here, we filter the data based on whether the user is /not/ using
|
||||||
|
// accounts.firefox.com, and then record just the endpoint path. Other
|
||||||
|
// collected data could expose that the user is using Firefox Accounts, and
|
||||||
|
// together, that leaks the number of users not using accounts.firefox.com.
|
||||||
|
// We accept this leak: Mozilla already collects data about whether Sync (both
|
||||||
|
// legacy and FxA) is using a custom server in various situations: see the
|
||||||
|
// WEAVE_CUSTOM_* Telemetry histograms.
|
||||||
|
let recordResultTelemetry; // Defined only when not customized.
|
||||||
|
let isCustomized = Services.prefs.prefHasUserValue("identity.fxaccounts.remote.webchannel.uri");
|
||||||
|
if (!isCustomized) {
|
||||||
|
// Turn "https://accounts.firefox.com/settings?context=fx_fennec_v1&email=EMAIL" into "/settings".
|
||||||
|
let key = Services.io.newURI(url, null, null).path.split("?")[0];
|
||||||
|
|
||||||
|
let startTime = Cu.now();
|
||||||
|
|
||||||
|
let start = Services.telemetry.getKeyedHistogramById('ABOUT_ACCOUNTS_CONTENT_SERVER_LOAD_STARTED_COUNT');
|
||||||
|
start.add(key);
|
||||||
|
|
||||||
|
recordResultTelemetry = function(success) {
|
||||||
|
let rate = Services.telemetry.getKeyedHistogramById('ABOUT_ACCOUNTS_CONTENT_SERVER_LOADED_RATE');
|
||||||
|
rate.add(key, success);
|
||||||
|
|
||||||
|
// We would prefer to use TelemetryStopwatch, but it doesn't yet support
|
||||||
|
// keyed histograms (see Bug 1205898). So we measure and store ourselves.
|
||||||
|
let delta = Cu.now() - startTime; // Floating point milliseconds, microsecond precision.
|
||||||
|
let time = success ?
|
||||||
|
Services.telemetry.getKeyedHistogramById('ABOUT_ACCOUNTS_CONTENT_SERVER_LOADED_TIME_MS') :
|
||||||
|
Services.telemetry.getKeyedHistogramById('ABOUT_ACCOUNTS_CONTENT_SERVER_FAILURE_TIME_MS');
|
||||||
|
time.add(key, Math.round(delta));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
loadedDeferred = PromiseUtils.defer();
|
loadedDeferred = PromiseUtils.defer();
|
||||||
loadedDeferred.promise.then(() => {
|
loadedDeferred.promise.then(() => {
|
||||||
log.d('Got LOADED message!');
|
log.d('Got LOADED message!');
|
||||||
document.getElementById("remote").style.opacity = 0;
|
document.getElementById("remote").style.opacity = 0;
|
||||||
show("remote");
|
show("remote");
|
||||||
document.getElementById("remote").style.opacity = 1;
|
document.getElementById("remote").style.opacity = 1;
|
||||||
|
if (!isCustomized) {
|
||||||
|
recordResultTelemetry(true);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
log.w('Did not get LOADED message: ' + e.toString());
|
log.w('Did not get LOADED message: ' + e.toString());
|
||||||
|
if (!isCustomized) {
|
||||||
|
recordResultTelemetry(false);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +132,7 @@ var wrapper = {
|
|||||||
|
|
||||||
init: function (url) {
|
init: function (url) {
|
||||||
this.url = url;
|
this.url = url;
|
||||||
deferTransitionToRemoteAfterLoaded();
|
deferTransitionToRemoteAfterLoaded(this.url);
|
||||||
|
|
||||||
let iframe = document.getElementById("remote");
|
let iframe = document.getElementById("remote");
|
||||||
this.iframe = iframe;
|
this.iframe = iframe;
|
||||||
@ -106,7 +148,7 @@ var wrapper = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
retry: function () {
|
retry: function () {
|
||||||
deferTransitionToRemoteAfterLoaded();
|
deferTransitionToRemoteAfterLoaded(this.url);
|
||||||
|
|
||||||
let webNav = this.iframe.frameLoader.docShell.QueryInterface(Ci.nsIWebNavigation);
|
let webNav = this.iframe.frameLoader.docShell.QueryInterface(Ci.nsIWebNavigation);
|
||||||
webNav.loadURI(this.url, Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_HISTORY, null, null, null);
|
webNav.loadURI(this.url, Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_HISTORY, null, null, null);
|
||||||
|
@ -11,7 +11,7 @@ import org.mozilla.gecko.Telemetry;
|
|||||||
public class testBug1217581 extends BaseTest {
|
public class testBug1217581 extends BaseTest {
|
||||||
// Take arbitrary histogram names used by Fennec.
|
// Take arbitrary histogram names used by Fennec.
|
||||||
private static final String TEST_HISTOGRAM_NAME = "FENNEC_SYNC_NUMBER_OF_SYNCS_COMPLETED";
|
private static final String TEST_HISTOGRAM_NAME = "FENNEC_SYNC_NUMBER_OF_SYNCS_COMPLETED";
|
||||||
private static final String TEST_KEYED_HISTOGRAM_NAME = "FENNEC_SYNC_NUMBER_OF_SYNCS_COMPLETED";
|
private static final String TEST_KEYED_HISTOGRAM_NAME = "ABOUT_ACCOUNTS_CONTENT_SERVER_LOAD_STARTED_COUNT";
|
||||||
private static final String TEST_KEY_NAME = "testBug1217581";
|
private static final String TEST_KEY_NAME = "testBug1217581";
|
||||||
|
|
||||||
|
|
||||||
|
@ -8741,6 +8741,38 @@
|
|||||||
"kind": "count",
|
"kind": "count",
|
||||||
"description": "Counts the number of times that a sync has failed because of trying to sync before server backoff interval has passed."
|
"description": "Counts the number of times that a sync has failed because of trying to sync before server backoff interval has passed."
|
||||||
},
|
},
|
||||||
|
"ABOUT_ACCOUNTS_CONTENT_SERVER_LOAD_STARTED_COUNT": {
|
||||||
|
"alert_emails": ["mobile-frontend@mozilla.com"],
|
||||||
|
"expires_in_version": "50",
|
||||||
|
"kind": "count",
|
||||||
|
"keyed": true,
|
||||||
|
"description": "The number of remote content loads started. Keyed on fxa-content-server endpoint, like '/signin' or '/settings'."
|
||||||
|
},
|
||||||
|
"ABOUT_ACCOUNTS_CONTENT_SERVER_LOADED_RATE": {
|
||||||
|
"alert_emails": ["mobile-frontend@mozilla.com"],
|
||||||
|
"expires_in_version": "50",
|
||||||
|
"kind": "boolean",
|
||||||
|
"keyed": true,
|
||||||
|
"description": "The number of remote content loads that fail (0) vs. receive the remote 'LOADED' message (1). Keyed on fxa-content-server endpoint path, like '/signin' or '/settings'."
|
||||||
|
},
|
||||||
|
"ABOUT_ACCOUNTS_CONTENT_SERVER_LOADED_TIME_MS": {
|
||||||
|
"alert_emails": ["mobile-frontend@mozilla.com"],
|
||||||
|
"expires_in_version": "50",
|
||||||
|
"keyed": true,
|
||||||
|
"kind": "exponential",
|
||||||
|
"high": 60000,
|
||||||
|
"n_buckets": 50,
|
||||||
|
"description": "The length of time (in milliseconds) between starting remote content load and receiving the remote 'LOADED' message. Keyed on fxa-content-server endpoint path, like '/signin' or '/settings'."
|
||||||
|
},
|
||||||
|
"ABOUT_ACCOUNTS_CONTENT_SERVER_FAILURE_TIME_MS": {
|
||||||
|
"alert_emails": ["mobile-frontend@mozilla.com"],
|
||||||
|
"expires_in_version": "50",
|
||||||
|
"keyed": true,
|
||||||
|
"kind": "exponential",
|
||||||
|
"high": 60000,
|
||||||
|
"n_buckets": 50,
|
||||||
|
"description": "The length of time (in milliseconds) between starting remote content load and failing with a connection error. Keyed on fxa-content-server endpoint path, like '/signin' or '/settings'."
|
||||||
|
},
|
||||||
"SLOW_SCRIPT_NOTICE_COUNT": {
|
"SLOW_SCRIPT_NOTICE_COUNT": {
|
||||||
"alert_emails": ["perf-telemetry-alerts@mozilla.com"],
|
"alert_emails": ["perf-telemetry-alerts@mozilla.com"],
|
||||||
"expires_in_version": "never",
|
"expires_in_version": "never",
|
||||||
|
@ -798,6 +798,10 @@
|
|||||||
"A11Y_INSTANTIATED_FLAG",
|
"A11Y_INSTANTIATED_FLAG",
|
||||||
"A11Y_ISIMPLEDOM_USAGE_FLAG",
|
"A11Y_ISIMPLEDOM_USAGE_FLAG",
|
||||||
"A11Y_UPDATE_TIME",
|
"A11Y_UPDATE_TIME",
|
||||||
|
"ABOUT_ACCOUNTS_CONTENT_SERVER_FAILURE_TIME_MS",
|
||||||
|
"ABOUT_ACCOUNTS_CONTENT_SERVER_LOADED_RATE",
|
||||||
|
"ABOUT_ACCOUNTS_CONTENT_SERVER_LOADED_TIME_MS",
|
||||||
|
"ABOUT_ACCOUNTS_CONTENT_SERVER_LOAD_STARTED_COUNT",
|
||||||
"ADDON_SHIM_USAGE",
|
"ADDON_SHIM_USAGE",
|
||||||
"APPLICATION_REPUTATION_COUNT",
|
"APPLICATION_REPUTATION_COUNT",
|
||||||
"APPLICATION_REPUTATION_LOCAL",
|
"APPLICATION_REPUTATION_LOCAL",
|
||||||
|
Loading…
Reference in New Issue
Block a user