Commit f33f9c71 authored by Cosmin Sabou's avatar Cosmin Sabou
Browse files

Backed out changeset 253a415f7be7 (bug 1754220) for causing ASRouter related...

Backed out changeset 253a415f7be7 (bug 1754220) for causing ASRouter related newtab failures. CLOSED TREE
parent 76b5f3d7
Loading
Loading
Loading
Loading
+4 −31
Original line number Diff line number Diff line
@@ -91,7 +91,6 @@ const JEXL_PROVIDER_CACHE = new Set(["snippets"]);

// To observe the app locale change notification.
const TOPIC_INTL_LOCALE_CHANGED = "intl:app-locales-changed";
const TOPIC_EXPERIMENT_FORCE_ENROLLED = "nimbus:force-enroll";
// To observe the pref that controls if ASRouter should use the remote Fluent files for l10n.
const USE_REMOTE_L10N_PREF =
  "browser.newtabpage.activity-stream.asrouter.useRemoteL10n";
@@ -541,9 +540,6 @@ class _ASRouter {
    this.isUnblockedMessage = this.isUnblockedMessage.bind(this);
    this.unblockAll = this.unblockAll.bind(this);
    this.forceWNPanel = this.forceWNPanel.bind(this);
    this._onExperimentForceEnrolled = this._onExperimentForceEnrolled.bind(
      this
    );
    Services.telemetry.setEventRecordingEnabled(REACH_EVENT_CATEGORY, true);
  }

@@ -752,14 +748,10 @@ class _ASRouter {
  /**
   * loadMessagesFromAllProviders - Loads messages from all providers if they require updates.
   *                                Checks the .lastUpdated field on each provider to see if updates are needed
   * @param toUpdate  An optional list of providers to update. This overrides
   *                  the checks to determine which providers to update.
   * @memberof _ASRouter
   */
  async loadMessagesFromAllProviders(toUpdate = undefined) {
    const needsUpdate = Array.isArray(toUpdate)
      ? toUpdate
      : this.state.providers.filter(provider =>
  async loadMessagesFromAllProviders() {
    const needsUpdate = this.state.providers.filter(provider =>
      MessageLoaderUtils.shouldProviderUpdate(provider)
    );
    await this.loadAllMessageGroups();
@@ -925,10 +917,6 @@ class _ASRouter {

    SpecialMessageActions.blockMessageById = this.blockMessageById;
    Services.obs.addObserver(this._onLocaleChanged, TOPIC_INTL_LOCALE_CHANGED);
    Services.obs.addObserver(
      this._onExperimentForceEnrolled,
      TOPIC_EXPERIMENT_FORCE_ENROLLED
    );
    Services.prefs.addObserver(USE_REMOTE_L10N_PREF, this);
    // sets .initialized to true and resolves .waitForInitialized promise
    this._finishInitializing();
@@ -958,10 +946,6 @@ class _ASRouter {
      this._onLocaleChanged,
      TOPIC_INTL_LOCALE_CHANGED
    );
    Services.obs.removeObserver(
      this._onExperimentForceEnrolled,
      TOPIC_EXPERIMENT_FORCE_ENROLLED
    );
    Services.prefs.removeObserver(USE_REMOTE_L10N_PREF, this);
    // If we added any CFR recommendations, they need to be removed
    CFRPageActions.clearRecommendations();
@@ -1752,17 +1736,6 @@ class _ASRouter {
    // Removing the button is enough to close the panel.
    await ToolbarPanelHub._hideToolbarButton(win);
  }

  async _onExperimentForceEnrolled(subject, topic, data) {
    const experimentProvider = this.state.providers.find(
      p => p.id === "messaging-experiments"
    );
    if (!experimentProvider.enabled) {
      return;
    }

    await this.loadMessagesFromAllProviders([experimentProvider]);
  }
}
this._ASRouter = _ASRouter;

+0 −44
Original line number Diff line number Diff line
const { BrowserTestUtils } = ChromeUtils.import(
  "resource://testing-common/BrowserTestUtils.jsm"
);
const { RemoteSettings } = ChromeUtils.import(
  "resource://services-settings/remote-settings.js"
);
@@ -16,9 +13,6 @@ const { ExperimentAPI } = ChromeUtils.import(
const { ExperimentFakes, ExperimentTestUtils } = ChromeUtils.import(
  "resource://testing-common/NimbusTestUtils.jsm"
);
const { ExperimentManager } = ChromeUtils.import(
  "resource://nimbus/lib/ExperimentManager.jsm"
);
const { TelemetryFeed } = ChromeUtils.import(
  "resource://activity-stream/lib/TelemetryFeed.jsm"
);
@@ -341,41 +335,3 @@ add_task(async function test_exposure_ping_legacy() {
  exposureSpy.restore();
  await cleanup();
});

add_task(async function test_forceEnrollUpdatesMessages() {
  const experiment = await getCFRExperiment();

  await setup(experiment);
  await SpecialPowers.pushPrefEnv({
    set: [["nimbus.debug", true]],
  });
  registerCleanupFunction(async () => {
    await ExperimentManager.unenroll(`optin-${experiment.slug}`, "cleanup");
    await SpecialPowers.popPrefEnv();
    await cleanup();
  });

  Assert.equal(
    ASRouter.state.messages.filter(m => m.id === "xman_test_message").length,
    0,
    "Experiment message should not be found until we opt in"
  );

  await RemoteSettingsExperimentLoader.optInToExperiment({
    slug: experiment.slug,
    branch: experiment.branches[0].slug,
  });

  await BrowserTestUtils.waitForCondition(
    () =>
      !!ASRouter.state.messages.filter(m => m.id === "xman_test_message")
        .length,
    "waiting for ASRouter to update messages"
  );

  Assert.equal(
    ASRouter.state.messages.filter(m => m.id === "xman_test_message").length,
    1,
    "Experiment message should be found after opt in"
  );
});
+1 −5
Original line number Diff line number Diff line
@@ -352,7 +352,7 @@ class _ExperimentManager {

    recipe.userFacingName = `${recipe.userFacingName} - Forced enrollment`;

    const experiment = this._enroll(
    return this._enroll(
      {
        ...recipe,
        slug: `optin-${recipe.slug}`,
@@ -361,10 +361,6 @@ class _ExperimentManager {
      source,
      { force: true }
    );

    Services.obs.notifyObservers(null, "nimbus:force-enroll");

    return experiment;
  }

  /**