Open Bug 1540761 Opened 6 years ago Updated 2 years ago

[dt-onboarding] `devtools.onboarding.is_devtools_user` telemetry forces to load DevTools loader on first Firefox startup

Categories

(DevTools :: General, enhancement, P3)

enhancement

Tracking

(Not tracked)

People

(Reporter: ochameau, Unassigned)

References

Details

When we try to set the devtools.onboarding.is_devtools_user telemetry from here:
https://searchfox.org/mozilla-central/rev/2738efcf98d746c8810819e7c0634b2c57212a8d/devtools/startup/DevToolsStartup.jsm#328-330

  onFirstWindowReady(window) {
    ...
    // Wait until we get a window before sending a ping to telemetry to avoid slowing down
    // the startup phase.
    this.pingOnboardingTelemetry();
  pingOnboardingTelemetry() {
    // Only ping telemetry once per profile.
    const alreadyLoggedPref = "devtools.onboarding.telemetry.logged";
    if (Services.prefs.getBoolPref(alreadyLoggedPref)) {
      return;
    }

    const scalarId = "devtools.onboarding.is_devtools_user";
    this.telemetry.scalarSet(scalarId, this.isDevToolsUser());
    Services.prefs.setBoolPref(alreadyLoggedPref, true);
  },
  get telemetry() {
    if (!this._telemetry) {
      this._telemetry = new Telemetry();
XPCOMUtils.defineLazyGetter(this, "Telemetry", function() {
  const { require } = ChromeUtils.import("resource://devtools/shared/Loader.jsm");
  const Telemetry = require("devtools/client/shared/telemetry");
  return Telemetry;
});

We end up forcing the load of Loader.jsm, that, only during Firefox first startup. That's because we record this telemetry only once by using devtools.onboarding.telemetry.logged preference.

We could:

  • use low level telemetry API to record this particular probe?
  • record it only if this is a devtools user?
  • remove it if that's no longer used?
  • ?

This is bad for two reasons:

  • it will slow down very first firefox startup
  • it forces loading Loader.jsm and its deps before mochitest script can run. It messes up with automation script being written in bug 1539518 which has to setup a tracker before any code from DevTools runs.
Priority: -- → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.