Verified Commit bb3c91cb authored by henry's avatar henry Committed by Pier Angelo Vendrame
Browse files

Bug 31575: Disable Firefox Home (Activity Stream)

Treat about:blank as the default home page and new tab page.

Avoid loading AboutNewTab in BrowserGlue.jsm in order
to avoid several network requests that we do not need.
parent f498387e
Loading
Loading
Loading
Loading
+2 −62
Changes for browser/components/BrowserGlue.jsm: 2 added lines, 62 removed lines.
Original line number Diff line number Diff line
@@ -18,13 +18,9 @@ const { AppConstants } = ChromeUtils.import(
);

XPCOMUtils.defineLazyModuleGetters(this, {
  AboutNewTab: "resource:///modules/AboutNewTab.jsm",
  ActorManagerParent: "resource://gre/modules/ActorManagerParent.jsm",
  AddonManager: "resource://gre/modules/AddonManager.jsm",
  AppMenuNotifications: "resource://gre/modules/AppMenuNotifications.jsm",
  ASRouterDefaultConfig:
    "resource://activity-stream/lib/ASRouterDefaultConfig.jsm",
  ASRouterNewTabHook: "resource://activity-stream/lib/ASRouterNewTabHook.jsm",
  ASRouter: "resource://activity-stream/lib/ASRouter.jsm",
  AsyncShutdown: "resource://gre/modules/AsyncShutdown.jsm",
  BackgroundUpdate: "resource://gre/modules/BackgroundUpdate.jsm",
@@ -226,28 +222,6 @@ let JSWINDOWACTORS = {
    remoteTypes: ["privilegedabout"],
  },

  AboutNewTab: {
    parent: {
      moduleURI: "resource:///actors/AboutNewTabParent.jsm",
    },
    child: {
      moduleURI: "resource:///actors/AboutNewTabChild.jsm",
      events: {
        DOMContentLoaded: {},
        pageshow: {},
        visibilitychange: {},
      },
    },
    // The wildcard on about:newtab is for the ?endpoint query parameter
    // that is used for snippets debugging. The wildcard for about:home
    // is similar, and also allows for falling back to loading the
    // about:home document dynamically if an attempt is made to load
    // about:home?jscache from the AboutHomeStartupCache as a top-level
    // load.
    matches: ["about:home*", "about:welcome", "about:newtab*"],
    remoteTypes: ["privilegedabout"],
  },

  AboutPlugins: {
    parent: {
      moduleURI: "resource:///actors/AboutPluginsParent.jsm",
@@ -717,27 +691,6 @@ let JSWINDOWACTORS = {
    matches: ["about:studies*"],
  },

  ASRouter: {
    parent: {
      moduleURI: "resource:///actors/ASRouterParent.jsm",
    },
    child: {
      moduleURI: "resource:///actors/ASRouterChild.jsm",
      events: {
        // This is added so the actor instantiates immediately and makes
        // methods available to the page js on load.
        DOMDocElementInserted: {},
      },
    },
    matches: [
      "about:home*",
      "about:newtab*",
      "about:welcome*",
      "about:privatebrowsing",
    ],
    remoteTypes: ["privilegedabout"],
  },

  SwitchDocumentDirection: {
    child: {
      moduleURI: "resource:///actors/SwitchDocumentDirectionChild.jsm",
@@ -1600,8 +1553,6 @@ BrowserGlue.prototype = {

  // the first browser window has finished initializing
  _onFirstWindowLoaded: function BG__onFirstWindowLoaded(aWindow) {
    AboutNewTab.init();

    TabCrashHandler.init();

    ProcessHangMonitor.init();
@@ -2008,7 +1959,6 @@ BrowserGlue.prototype = {
      () => NewTabUtils.uninit(),
      () => Normandy.uninit(),
      () => RFPHelper.uninit(),
      () => ASRouterNewTabHook.destroy(),
      () => UpdateListener.reset(),
    ];

@@ -2717,12 +2667,6 @@ BrowserGlue.prototype = {
        },
      },

      {
        task: () => {
          ASRouterNewTabHook.createInstance(ASRouterDefaultConfig());
        },
      },

      {
        condition: AppConstants.MOZ_UPDATE_AGENT,
        task: () => {
@@ -5816,12 +5760,8 @@ var AboutHomeStartupCache = {
      return { pageInputStream: null, scriptInputStream: null };
    }

    let state = AboutNewTab.activityStream.store.getState();
    return new Promise(resolve => {
      this._cacheDeferred = resolve;
      this.log.trace("Parent is requesting cache streams.");
      this._procManager.sendAsyncMessage(this.CACHE_REQUEST_MESSAGE, { state });
    });
    this.log.error("Activity Stream is disabled.");
    return { pageInputStream: null, scriptInputStream: null };
  },

  /**
+1 −14
Changes for browser/components/newtab/AboutNewTabService.jsm: 1 added line, 14 removed lines.
Original line number Diff line number Diff line
@@ -420,20 +420,7 @@ class BaseAboutNewTabService {
   * the newtab page has no effect on the result of this function.
   */
  get defaultURL() {
    // Generate the desired activity stream resource depending on state, e.g.,
    // "resource://activity-stream/prerendered/activity-stream.html"
    // "resource://activity-stream/prerendered/activity-stream-debug.html"
    // "resource://activity-stream/prerendered/activity-stream-noscripts.html"
    return [
      "resource://activity-stream/prerendered/",
      "activity-stream",
      // Debug version loads dev scripts but noscripts separately loads scripts
      this.activityStreamDebug && !this.privilegedAboutProcessEnabled
        ? "-debug"
        : "",
      this.privilegedAboutProcessEnabled ? "-noscripts" : "",
      ".html",
    ].join("");
    return "about:blank";
  }

  get welcomeURL() {
+0 −2
Changes for browser/components/preferences/home.inc.xhtml: 0 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@
                class="check-home-page-controlled"
                data-preference-related="browser.startup.homepage">
        <menupopup>
          <menuitem value="0" data-l10n-id="home-mode-choice-default" />
          <menuitem value="2" data-l10n-id="home-mode-choice-custom" />
          <menuitem value="1" data-l10n-id="home-mode-choice-blank" />
        </menupopup>
@@ -84,7 +83,6 @@
        Preferences so we need to handle setting the pref manually.-->
      <menulist id="newTabMode" flex="1" data-preference-related="browser.newtabpage.enabled">
        <menupopup>
          <menuitem value="0" data-l10n-id="home-mode-choice-default" />
          <menuitem value="1" data-l10n-id="home-mode-choice-blank" />
        </menupopup>
      </menulist>
+6 −2
Changes for browser/components/preferences/home.js: 6 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -380,10 +380,14 @@ var gHomePane = {

    if (controllingExtension && controllingExtension.id) {
      newValue = controllingExtension.id;
    } else if (isDefault) {
      newValue = this.HOME_MODE_FIREFOX_HOME;
    } else if (isBlank) {
      // For base-browser, we want to check isBlank first since the default page
      // is also the blank page, but we only have a menu option for
      // HOME_MODE_BLANK, rather than HOME_MODE_FIREFOX_HOME.
      // See tor-browser#41609.
      newValue = this.HOME_MODE_BLANK;
    } else if (isDefault) {
      newValue = this.HOME_MODE_FIREFOX_HOME;
    } else {
      newValue = this.HOME_MODE_CUSTOM;
    }
+1 −1
Changes for browser/modules/HomePage.jsm: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
});

const kPrefName = "browser.startup.homepage";
const kDefaultHomePage = "about:home";
const kDefaultHomePage = "about:blank";
const kExtensionControllerPref =
  "browser.startup.homepage_override.extensionControlled";
const kHomePageIgnoreListId = "homepage-urls";