morgan pushed to branch mullvad-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser

Commits:

4 changed files:

Changes:

  • browser/branding/mb-nightly/pref/firefox-branding.js
    ... ... @@ -4,7 +4,11 @@
    4 4
     
    
    5 5
     // This file contains branding-specific prefs.
    
    6 6
     
    
    7
    -pref("startup.homepage_override_url", "");
    
    7
    +// startup.homepage_override_url is used in about:mullvad-browser after an
    
    8
    +// update because app.releaseNotesURL.aboutDialog is about:blank for mb-nightly.
    
    9
    +// I.e. we want the update to show in about:mullvad-browser, whilst it is not
    
    10
    +// shown in the about dialog. See mullvad-browser#411.
    
    11
    +pref("startup.homepage_override_url", "https://nightlies.tbb.torproject.org/");
    
    8 12
     // app.update.url.manual: URL user can browse to manually if for some reason
    
    9 13
     // all update installation attempts fail.
    
    10 14
     // app.update.url.details: a default value for the "More information about this
    

  • browser/components/BrowserContentHandler.sys.mjs
    ... ... @@ -876,18 +876,19 @@ nsBrowserContentHandler.prototype = {
    876 876
                   "%OLD_BASE_BROWSER_VERSION%",
    
    877 877
                   old_forkVersion
    
    878 878
                 );
    
    879
    -            if (overridePage && AppConstants.BASE_BROWSER_UPDATE) {
    
    879
    +            if (AppConstants.BASE_BROWSER_UPDATE) {
    
    880
    +              // NOTE: We ignore any overridePage value, which can come from the
    
    881
    +              // openURL attribute within the updates.xml file.
    
    880 882
                   // Mullvad Browser, copied from tor-browser: Instead of opening
    
    881 883
                   // the post-update "override page" directly, we include a link in
    
    882 884
                   // about:mullvad-browser.
    
    883
    -              prefb.setCharPref("mullvadbrowser.post_update.url", overridePage);
    
    884 885
                   prefb.setBoolPref(
    
    885 886
                     "mullvadbrowser.post_update.shouldNotify",
    
    886 887
                     true
    
    887 888
                   );
    
    888
    -              // If the user's homepage is about:tor, we will inform them
    
    889
    -              // about the update on that page; otherwise, we arrange to
    
    890
    -              // open about:tor in a secondary tab.
    
    889
    +              // If the user's homepage is about:mullvad-browser, we will inform
    
    890
    +              // them about the update on that page; otherwise, we arrange to
    
    891
    +              // open about:mullvad-browser in a secondary tab.
    
    891 892
                   overridePage =
    
    892 893
                     startPage === "about:mullvad-browser"
    
    893 894
                       ? ""
    

  • browser/components/BrowserGlue.sys.mjs
    ... ... @@ -1515,6 +1515,9 @@ BrowserGlue.prototype = {
    1515 1515
         // Base Browser-specific version of _migrateUI.
    
    1516 1516
         this._migrateUIBB();
    
    1517 1517
     
    
    1518
    +    // Mullvad Browser-specific version of _migrateUI.
    
    1519
    +    this._migrateUIMB();
    
    1520
    +
    
    1518 1521
         if (!Services.prefs.prefHasUserValue(PREF_PDFJS_ISDEFAULT_CACHE_STATE)) {
    
    1519 1522
           lazy.PdfJs.checkIsDefault(this._isNewProfile);
    
    1520 1523
         }
    
    ... ... @@ -4694,6 +4697,37 @@ BrowserGlue.prototype = {
    4694 4697
         Services.prefs.setIntPref(MIGRATION_PREF, MIGRATION_VERSION);
    
    4695 4698
       },
    
    4696 4699
     
    
    4700
    +  // Use this method for any MB migration that can be run just before showing
    
    4701
    +  // the UI.
    
    4702
    +  // Anything that critically needs to be migrated earlier should not use this.
    
    4703
    +  _migrateUIMB() {
    
    4704
    +    // Version 1: Mullvad Browser 14.5a6: Clear home page update url preference
    
    4705
    +    //            (mullvad-browser#411).
    
    4706
    +    const MB_MIGRATION_VERSION = 1;
    
    4707
    +    const MIGRATION_PREF = "mullvadbrowser.migration.version";
    
    4708
    +
    
    4709
    +    // If we decide to force updating users to pass through any version
    
    4710
    +    // following 14.5, we can remove this check, and check only whether
    
    4711
    +    // MIGRATION_PREF has a user value, like Mozilla does.
    
    4712
    +    if (this._isNewProfile) {
    
    4713
    +      // Do not migrate fresh profiles
    
    4714
    +      Services.prefs.setIntPref(MIGRATION_PREF, MB_MIGRATION_VERSION);
    
    4715
    +      return;
    
    4716
    +    } else if (this._isNewProfile === undefined) {
    
    4717
    +      // If this happens, check if upstream updated their function and do not
    
    4718
    +      // set this member anymore!
    
    4719
    +      console.error("_migrateUIMB: this._isNewProfile is undefined.");
    
    4720
    +    }
    
    4721
    +
    
    4722
    +    const currentVersion = Services.prefs.getIntPref(MIGRATION_PREF, 0);
    
    4723
    +
    
    4724
    +    if (currentVersion < 1) {
    
    4725
    +      Services.prefs.clearUserPref("mullvadbrowser.post_update.url");
    
    4726
    +    }
    
    4727
    +
    
    4728
    +    Services.prefs.setIntPref(MIGRATION_PREF, MB_MIGRATION_VERSION);
    
    4729
    +  },
    
    4730
    +
    
    4697 4731
       async _showUpgradeDialog() {
    
    4698 4732
         const data = await lazy.OnboardingMessageProvider.getUpgradeMessage();
    
    4699 4733
         const { gBrowser } = lazy.BrowserWindowTracker.getTopWindow();
    

  • browser/components/mullvad-browser/AboutMullvadBrowserParent.sys.mjs
    ... ... @@ -5,21 +5,28 @@ export class AboutMullvadBrowserParent extends JSWindowActorParent {
    5 5
       receiveMessage(message) {
    
    6 6
         const shouldNotifyPref = "mullvadbrowser.post_update.shouldNotify";
    
    7 7
         switch (message.name) {
    
    8
    -      case "AboutMullvadBrowser:GetUpdateData":
    
    8
    +      case "AboutMullvadBrowser:GetUpdateData": {
    
    9 9
             if (!Services.prefs.getBoolPref(shouldNotifyPref, false)) {
    
    10 10
               return Promise.resolve(null);
    
    11 11
             }
    
    12 12
             Services.prefs.clearUserPref(shouldNotifyPref);
    
    13
    +        // Try use the same URL as the about dialog. See mullvad-browser#411.
    
    14
    +        let updateURL = Services.urlFormatter.formatURLPref(
    
    15
    +          "app.releaseNotesURL.aboutDialog"
    
    16
    +        );
    
    17
    +        if (updateURL === "about:blank") {
    
    18
    +          updateURL = Services.urlFormatter.formatURLPref(
    
    19
    +            "startup.homepage_override_url"
    
    20
    +          );
    
    21
    +        }
    
    22
    +
    
    13 23
             return Promise.resolve({
    
    14 24
               version: Services.prefs.getCharPref(
    
    15 25
                 "browser.startup.homepage_override.mullvadbrowser.version"
    
    16 26
               ),
    
    17
    -          url:
    
    18
    -            Services.prefs.getCharPref("mullvadbrowser.post_update.url", "") ||
    
    19
    -            Services.urlFormatter.formatURLPref(
    
    20
    -              "startup.homepage_override_url"
    
    21
    -            ),
    
    27
    +          url: updateURL,
    
    22 28
             });
    
    29
    +      }
    
    23 30
         }
    
    24 31
         return undefined;
    
    25 32
       }