Commit 47a95830 authored by Kathleen Brade's avatar Kathleen Brade Committed by Matthew Finkel
Browse files

Bug 31768: Introduce toolbar and network settings changes in onboarding

Update the "Tor Network" onboarding page to include a note that
settings can now be accessed via the application preferences and
add an "Adjust Your Tor Network Settings" action button which opens
about:preferences#tor.

Replace the Tor Browser 8.5 "update" onboarding tour with a 9.0 one
that includes the revised "Tor Network" page and a revised "Toolbar"
page. The latter explains that Torbutton's toolbar item has been
removed ("Goodbye Onion Button") and explains how to access the
New Identity feature using the hamburger menu and new toolbar item.
parent 6ec0e97a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -316,9 +316,9 @@ pref("browser.download.panel.shown", true);
pref("dom.securecontext.whitelist_onions", true);

// Onboarding.
pref("browser.onboarding.tourset-version", 3);
pref("browser.onboarding.newtour", "welcome,privacy,tor-network,circuit-display,security,expect-differences,onion-services");
pref("browser.onboarding.updatetour", "toolbar-update-8.5,security-update-8.5");
pref("browser.onboarding.tourset-version", 4);
pref("browser.onboarding.newtour", "welcome,privacy,tor-network-9.0,circuit-display,security,expect-differences,onion-services");
pref("browser.onboarding.updatetour", "toolbar-update-9.0,tor-network-9.0");
pref("browser.onboarding.skip-tour-button.hide", true);

// prefs to disable jump-list entries in the taskbar on Windows (see bug #12885)
+7 −0
Original line number Diff line number Diff line
@@ -72,11 +72,15 @@ const TOR_BROWSER_PAGE_ACTIONS_ALLOWED = new Set([
  "showInfo",  // restricted to TOR_BROWSER_TARGETS_ALLOWED
  "showMenu",  // restricted to TOR_BROWSER_MENUS_ALLOWED
  "hideMenu",  // restricted to TOR_BROWSER_MENUS_ALLOWED
  "showHighlight", // restricted to TOR_BROWSER_TARGETS_ALLOWED
  "hideHighlight", // restricted to TOR_BROWSER_TARGETS_ALLOWED
  "openPreferences",
  "closeTab",
  "torBrowserOpenSecurityLevelPanel",
]);

const TOR_BROWSER_TARGETS_ALLOWED = new Set([
  "torBrowser-newIdentityButton",
  "torBrowser-circuitDisplay",
  "torBrowser-circuitDisplay-diagram",
  "torBrowser-circuitDisplay-newCircuitButton",
@@ -136,6 +140,9 @@ var UITour = {
      torBrowserCircuitDisplayTarget("circuit-display-nodes")],
    ["torBrowser-circuitDisplay-newCircuitButton",
      torBrowserCircuitDisplayTarget("circuit-reload-button")],
    ["torBrowser-newIdentityButton", {
      query: "#new-identity-button",
    }],

    [
      "accountStatus",
+2 −3
Original line number Diff line number Diff line
@@ -39,13 +39,12 @@ const PREF_WHITELIST = [
  // Tor Browser tours:
  "onboarding-tour-tor-welcome",
  "onboarding-tour-tor-privacy",
  "onboarding-tour-tor-network",
  "onboarding-tour-tor-network-9-0",
  "onboarding-tour-tor-circuit-display",
  "onboarding-tour-tor-security",
  "onboarding-tour-tor-expect-differences",
  "onboarding-tour-tor-onion-services",
  "onboarding-tour-tor-toolbar-update-8-5",
  "onboarding-tour-tor-security-update-8-5",
  "onboarding-tour-tor-toolbar-update-9-0",
#if 0
// Firefox tours. To reduce conflicts when rebasing against newer Firefox
// code, we use the preprocessor to omit this code block.
+38 −32
Original line number Diff line number Diff line
@@ -119,19 +119,41 @@ var onboardingTourset = {
      return div;
    },
  },
  "tor-network": {
    id: "onboarding-tour-tor-network",
  // In Tor Browser 9.0, we replaced the Tor Network panel with an updated one.
  "tor-network-9.0": {
    id: "onboarding-tour-tor-network-9-0",
    tourNameId: "onboarding.tour-tor-network",
    instantComplete: true,
    highlightId: "onboarding.tour-tor-update.prefix-new",
    getPage(win) {
      let div = win.document.createElement("div");

      createOnboardingTourDescription(div,
      let desc = createOnboardingTourDescription(div,
        "onboarding.tour-tor-network.title", "onboarding.tour-tor-network.description");
      let additionalDesc = win.document.createElement("p");
      additionalDesc.className = "onboarding-tour-description-para2";
      additionalDesc.setAttribute("data-l10n-id",
        "onboarding.tour-tor-network.description-para2");
      desc.appendChild(additionalDesc);

      createOnboardingTourContent(div, "resource://onboarding/img/figure_tor-network.png");
      createOnboardingTourButton(div,
        "onboarding-tour-tor-network-button", "onboarding.tour-tor-network.button");
      let btnContainer = createOnboardingTourButton(div,
        "onboarding-tour-tor-network-action-button", "onboarding.tour-tor-network.action-button");
      btnContainer.className = "onboarding-tour-tor-action-button-container";

      // The next button (right side) is a "Done" button if we are displaying
      // the tour to users who updated their browser; otherwise, it is a
      // button that takes the user to the next onboarding page.
      let nextBtnID, nextBtnL10nID;
      if (this._tourType === "update") {
        // Using the onion services IDs here seems like a mistake, but it
        // provides the functionality and translated string ("Done") we need.
        nextBtnID = "onboarding-tour-tor-onion-services-next-button";
        nextBtnL10nID = "onboarding.tour-tor-onion-services.next-button";
      } else {
        nextBtnID = "onboarding-tour-tor-network-button";
        nextBtnL10nID = "onboarding.tour-tor-network.button";
      }
      createOnboardingTourButton(div, nextBtnID, nextBtnL10nID);
      return div;
    },
  },
@@ -156,7 +178,6 @@ var onboardingTourset = {
  "security": {
    id: "onboarding-tour-tor-security",
    tourNameId: "onboarding.tour-tor-security",
    highlightId: "onboarding.tour-tor-update.prefix-new",
    getPage(win) {
      let div = win.document.createElement("div");

@@ -215,42 +236,27 @@ var onboardingTourset = {
    },
  },
  // Tour items for users who have updated their Tor Browser:
  "toolbar-update-8.5": {
    id: "onboarding-tour-tor-toolbar-update-8-5",
  "toolbar-update-9.0": {
    id: "onboarding-tour-tor-toolbar-update-9-0",
    tourNameId: "onboarding.tour-tor-toolbar",
    highlightId: "onboarding.tour-tor-update.prefix-updated",
    instantComplete: true,
    getPage(win) {
      let div = win.document.createElement("div");

      let desc = createOnboardingTourDescription(div,
        "onboarding.tour-tor-toolbar-update-8.5.title", "onboarding.tour-tor-toolbar-update-8.5.description");
        "onboarding.tour-tor-toolbar-update-9.0.title", "onboarding.tour-tor-toolbar-update-9.0.description");
      let additionalDesc = win.document.createElement("p");
      additionalDesc.className = "onboarding-tour-description-para2";
      additionalDesc.setAttribute("data-l10n-id",
        "onboarding.tour-tor-toolbar-update-9.0.description-para2");
      desc.appendChild(additionalDesc);

      createOnboardingTourContent(div, "resource://onboarding/img/figure_tor-toolbar-layout.png");
      createOnboardingTourButton(div,
        "onboarding-tour-tor-toolbar-next-button", "onboarding.tour-tor-toolbar-update-8.5.next-button");

      return div;
    },
  },
  "security-update-8.5": {
    id: "onboarding-tour-tor-security-update-8-5",
    tourNameId: "onboarding.tour-tor-security",
    highlightId: "onboarding.tour-tor-update.prefix-new",
    getPage(win) {
      let div = win.document.createElement("div");

      let desc = createOnboardingTourDescription(div,
        "onboarding.tour-tor-security-update-8.5.title", "onboarding.tour-tor-security-update-8.5.description");

      createOnboardingTourContent(div, "resource://onboarding/img/figure_tor-security-level.png");
      let btnContainer = createOnboardingTourButton(div,
        "onboarding-tour-tor-security-button", "onboarding.tour-tor-security-level.button");
        "onboarding-tour-tor-toolbar-update-9-0-button", "onboarding.tour-tor-toolbar-update-9.0.button");
      btnContainer.className = "onboarding-tour-tor-action-button-container";
      // It is confusing to use the two onion-services IDs below, but they
      // provide the functionality and translated string ("Done") that we need.
      createOnboardingTourButton(div,
        "onboarding-tour-tor-onion-services-next-button", "onboarding.tour-tor-onion-services.next-button");
        "onboarding-tour-tor-toolbar-next-button", "onboarding.tour-tor-toolbar-update-9.0.next-button");

      return div;
    },
−15.6 KiB (11.7 KiB)
Loading image diff...
Loading