Bug 1012526 - UITour.jsm only registers with UITelemetry when it's lazily imported on-demand. r=mconley

This commit is contained in:
Blair McBride 2014-05-21 12:25:50 +12:00
parent 7094171d2d
commit bb9ff0ce04
2 changed files with 9 additions and 3 deletions

View File

@ -17,6 +17,8 @@ XPCOMUtils.defineLazyModuleGetter(this, "RecentWindow",
"resource:///modules/RecentWindow.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "CustomizableUI",
"resource:///modules/CustomizableUI.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "UITour",
"resource:///modules/UITour.jsm");
XPCOMUtils.defineLazyGetter(this, "Timer", function() {
let timer = {};
Cu.import("resource://gre/modules/Timer.jsm", timer);
@ -169,6 +171,11 @@ this.BrowserUITelemetry = {
init: function() {
UITelemetry.addSimpleMeasureFunction("toolbars",
this.getToolbarMeasures.bind(this));
// Ensure that UITour.jsm remains lazy-loaded, yet always registers its
// simple measure function with UITelemetry.
UITelemetry.addSimpleMeasureFunction("UITour",
() => UITour.getTelemetry());
Services.obs.addObserver(this, "sessionstore-windows-restored", false);
Services.obs.addObserver(this, "browser-delayed-startup-finished", false);
CustomizableUI.addListener(this);

View File

@ -144,9 +144,6 @@ this.UITour = {
return Services.urlFormatter.formatURLPref("browser.uitour.url");
});
UITelemetry.addSimpleMeasureFunction("UITour",
this.getTelemetry.bind(this));
// Clear the availableTargetsCache on widget changes.
let listenerMethods = [
"onWidgetAdded",
@ -541,6 +538,8 @@ this.UITour = {
BUCKET_TIMESTEPS);
},
// This is registered with UITelemetry by BrowserUITelemetry, so that UITour
// can remain lazy-loaded on-demand.
getTelemetry: function() {
return {
seenPageIDs: [...this.seenPageIDs.keys()],