Commit a5f32a72 authored by Alex Catarineu's avatar Alex Catarineu Committed by Matthew Finkel
Browse files

Bug 31575: Replace Firefox Home (newtab) with about:tor

Avoid loading AboutNewTab in BrowserGlue.jsm in order
to avoid several network requests that we do not need. Besides,
about:newtab will now point to about:blank or about:tor (depending
on browser.newtabpage.enabled) and about:home will point to
about:tor.
parent c1ebd17e
Loading
Loading
Loading
Loading
+2 −31
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ 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",
@@ -220,28 +219,6 @@ let JSWINDOWACTORS = {
    matches: ["about:newinstall"],
  },

  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",
@@ -1774,8 +1751,6 @@ BrowserGlue.prototype = {

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

    TabCrashHandler.init();

    ProcessHangMonitor.init();
@@ -5211,12 +5186,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 in Tor Browser.");
    return { pageInputStream: null, scriptInputStream: null };
  },

  /**
+1 −14
Original line number Diff line number Diff line
@@ -430,20 +430,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:tor";
  }

  get welcomeURL() {
+2 −2
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@
                class="check-home-page-controlled"
                data-preference-related="browser.startup.homepage">
        <menupopup>
          <menuitem value="0" data-l10n-id="home-mode-choice-default" />
          <menuitem value="0" label="&aboutTor.title;" />
          <menuitem value="2" data-l10n-id="home-mode-choice-custom" />
          <menuitem value="1" data-l10n-id="home-mode-choice-blank" />
        </menupopup>
@@ -85,7 +85,7 @@
        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="0" label="&aboutTor.title;" />
          <menuitem value="1" data-l10n-id="home-mode-choice-blank" />
        </menupopup>
      </menulist>
+4 −1
Original line number Diff line number Diff line
@@ -14,7 +14,10 @@
<?xml-stylesheet href="chrome://browser/skin/preferences/privacy.css"?>
<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelPreferences.css"?>

<!DOCTYPE html>
<!DOCTYPE html [
<!ENTITY % aboutTorDTD SYSTEM "chrome://torbutton/locale/aboutTor.dtd">
  %aboutTorDTD;
]>

<html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:html="http://www.w3.org/1999/xhtml"
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
});

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