tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit f7ff201b5daf7b7d45b15be857d44cf6eee0e225
parent 7a78468a72ff18675a2e051e64165ef8f7a33bb1
Author: Julian <julianwels@jwels.berlin>
Date:   Tue, 16 Dec 2025 23:00:51 +0000

Bug 2000740 - Updated Windows stub installer brand assets and styles. r=browser-installer-reviewers,bolsson,cdupuis

Differential Revision: https://phabricator.services.mozilla.com/D274990

Diffstat:
Mbrowser/branding/aurora/stubinstaller/bgstub.jpg | 0
Mbrowser/branding/aurora/stubinstaller/installing_page.css | 20+++++---------------
Mbrowser/branding/aurora/stubinstaller/profile_cleanup_page.css | 7-------
Mbrowser/branding/nightly/stubinstaller/bgstub.jpg | 0
Mbrowser/branding/nightly/stubinstaller/installing_page.css | 20+++++---------------
Mbrowser/branding/nightly/stubinstaller/profile_cleanup_page.css | 7-------
Mbrowser/branding/official/stubinstaller/bgstub.jpg | 0
Mbrowser/branding/official/stubinstaller/installing_page.css | 75++++++++++++++++++++-------------------------------------------------------
Mbrowser/branding/official/stubinstaller/profile_cleanup_page.css | 66+++++++++++++-----------------------------------------------------
Mbrowser/branding/unofficial/stubinstaller/bgstub.jpg | 0
Mbrowser/branding/unofficial/stubinstaller/installing_page.css | 20+++++---------------
Mbrowser/branding/unofficial/stubinstaller/profile_cleanup_page.css | 7-------
Mbrowser/installer/windows/nsis/content/installing.html | 34++++++++++++----------------------
Mbrowser/installer/windows/nsis/content/installing.js | 9++-------
Mbrowser/installer/windows/nsis/content/profile_cleanup.html | 18+++++++-----------
Mbrowser/installer/windows/nsis/content/profile_cleanup.js | 1-
Mbrowser/installer/windows/nsis/content/stub_common.js | 6------
Mbrowser/installer/windows/nsis/stub.nsh | 42++++++++++++++++++++++++------------------
Mbrowser/locales/en-US/installer/nsisstrings.properties | 34+++++++++++++++++-----------------
19 files changed, 110 insertions(+), 256 deletions(-)

diff --git a/browser/branding/aurora/stubinstaller/bgstub.jpg b/browser/branding/aurora/stubinstaller/bgstub.jpg Binary files differ. diff --git a/browser/branding/aurora/stubinstaller/installing_page.css b/browser/branding/aurora/stubinstaller/installing_page.css @@ -23,7 +23,9 @@ body { margin: 0 auto; width: 60%; height: 24px; - background-color: white; + background-color: #f5cbf6; + border-radius: 8px; + padding: 3px; } body.high-contrast #progress_background { @@ -35,7 +37,8 @@ body.high-contrast #progress_background { width: 0%; max-width: 100%; height: 100%; - background-color: #00aaff; + background-color: #7543e3; + border-radius: 6px; } /* In high contrast mode, fill the entire progress bar with its border. */ @@ -45,19 +48,6 @@ body.high-contrast #progress_bar { box-sizing: border-box; } -/* This layout doesn't want the header or content text. */ -#header, -#content { - display: none; -} - #blurb { font-size: 20px; } - -/* The footer goes in the bottom right corner. */ -#footer { - position: fixed; - right: 50px; - bottom: 59px; -} diff --git a/browser/branding/aurora/stubinstaller/profile_cleanup_page.css b/browser/branding/aurora/stubinstaller/profile_cleanup_page.css @@ -33,10 +33,3 @@ body { padding: 8px 40px; font-size: 15px; } - -/* The footer goes in the bottom right corner. */ -#footer { - position: fixed; - right: 50px; - bottom: 59px; -} diff --git a/browser/branding/nightly/stubinstaller/bgstub.jpg b/browser/branding/nightly/stubinstaller/bgstub.jpg Binary files differ. diff --git a/browser/branding/nightly/stubinstaller/installing_page.css b/browser/branding/nightly/stubinstaller/installing_page.css @@ -23,7 +23,9 @@ body { margin: 0 auto; width: 60%; height: 24px; - background-color: white; + background-color: #f5cbf6; + border-radius: 8px; + padding: 3px; } body.high-contrast #progress_background { @@ -34,7 +36,8 @@ body.high-contrast #progress_background { margin: 0; width: 0%; height: 100%; - background-color: #00aaff; + background-color: #7543e3; + border-radius: 6px; } /* In high contrast mode, fill the entire progress bar with its border. */ @@ -44,19 +47,6 @@ body.high-contrast #progress_bar { box-sizing: border-box; } -/* This layout doesn't want the header or content text. */ -#header, -#content { - display: none; -} - #blurb { font-size: 20px; } - -/* The footer goes in the bottom right corner. */ -#footer { - position: fixed; - right: 50px; - bottom: 59px; -} diff --git a/browser/branding/nightly/stubinstaller/profile_cleanup_page.css b/browser/branding/nightly/stubinstaller/profile_cleanup_page.css @@ -33,10 +33,3 @@ body { padding: 8px 40px; font-size: 15px; } - -/* The footer goes in the bottom right corner. */ -#footer { - position: fixed; - right: 50px; - bottom: 59px; -} diff --git a/browser/branding/official/stubinstaller/bgstub.jpg b/browser/branding/official/stubinstaller/bgstub.jpg Binary files differ. diff --git a/browser/branding/official/stubinstaller/installing_page.css b/browser/branding/official/stubinstaller/installing_page.css @@ -3,63 +3,29 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ body { - color: black; -} - -/* - * We want to treat the two pieces of text in the left column as one unit and - center that unit vertically in the window. In order to make IE8 do that, - we have to wrap the two bits of text in a container and make that a - table-cell (which means we need an outer container that's display: table). - So that's what this mess is doing. - */ -#text_column { - position: fixed; - height: 100%; - margin-left: 30px; - width: 40%; - display: table; -} - -#text_column_container { - display: table-cell; - vertical-align: middle; - padding-top: 60px; -} - -#header { - font-size: 24px; - font-weight: 700; - margin-top: 0; -} - -#content { - font-size: 22px; + color: white; } -#installing { - position: fixed; - right: 30px; - bottom: 55%; - margin-top: auto; - margin-bottom: auto; - width: 35%; +#label, +#progress_background, +#blurb { + text-align: center; + margin: 20px 30px; } #label { - color: white; - - position: relative; - top: 50px; - - text-align: center; - font-size: 20px; + font-size: 40px; + margin-top: 100px; + margin-bottom: 20px; } #progress_background { - width: 100%; - height: 20px; - background-color: white; + margin: 0 auto; + width: 60%; + height: 24px; + background-color: #f5cbf6; + border-radius: 8px; + padding: 3px; } body.high-contrast #progress_background { @@ -70,18 +36,17 @@ body.high-contrast #progress_background { margin: 0; width: 0%; height: 100%; - background-color: #00aaff; + background-color: #7543e3; + border-radius: 6px; } /* In high contrast mode, fill the entire progress bar with its border. */ body.high-contrast #progress_bar { /* This border should be the height of progress_background. */ - border-top: 20px solid; + border-top: 24px solid; box-sizing: border-box; } -/* No blurb or footer for this layout. */ -#blurb, -#footer { - visibility: hidden; +#blurb { + font-size: 20px; } diff --git a/browser/branding/official/stubinstaller/profile_cleanup_page.css b/browser/branding/official/stubinstaller/profile_cleanup_page.css @@ -3,73 +3,33 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ body { - color: black; -} - -/* - * We want to treat the two pieces of text in the left column as one unit and - center that unit vertically in the window. In order to make IE8 do that, - we have to wrap the two bits of text in a container and make that a - table-cell (which means we need an outer container that's display: table). - So that's what this mess is doing. - */ -#profileRefreshForm { - position: fixed; - height: 100%; - margin-left: 30px; - width: 40%; - display: table; -} - -#profileRefreshContainer { - display: table-cell; - vertical-align: middle; + color: white; } +#header, #refreshCheckboxContainer, #refreshButtonContainer { - margin-top: 20px; + text-align: center; + margin-left: 40px; + margin-right: 40px; + margin-bottom: 30px; } #header { - font-size: 25px; - font-weight: 600; -} - -#refreshCheckboxContainer { - position: relative; + font-size: 35px; + font-weight: normal; + margin-top: 45px; } #refreshCheckbox { - position: absolute; - top: 1px; + vertical-align: middle; } #checkboxLabel { - font-size: 14px; - display: block; -} - -.checkboxLabel-ltr { - margin-left: 25px; -} - -.checkboxLabel-rtl { - margin-right: 25px; + font-size: 13px; } #refreshButton { - padding: 8px 70px; - font-size: 16px; - background: #005ccc; - color: white; -} - -body.normal-contrast #refreshButton { - border: none; -} - -/* No footer for this layout. */ -#footer { - visibility: hidden; + padding: 8px 40px; + font-size: 15px; } diff --git a/browser/branding/unofficial/stubinstaller/bgstub.jpg b/browser/branding/unofficial/stubinstaller/bgstub.jpg Binary files differ. diff --git a/browser/branding/unofficial/stubinstaller/installing_page.css b/browser/branding/unofficial/stubinstaller/installing_page.css @@ -23,7 +23,9 @@ body { margin: 0 auto; width: 60%; height: 24px; - background-color: white; + background-color: #f5cbf6; + border-radius: 8px; + padding: 3px; } body.high-contrast #progress_background { @@ -34,7 +36,8 @@ body.high-contrast #progress_background { margin: 0; width: 0%; height: 100%; - background-color: #00aaff; + background-color: #7543e3; + border-radius: 6px; } /* In high contrast mode, fill the entire progress bar with its border. */ @@ -44,19 +47,6 @@ body.high-contrast #progress_bar { box-sizing: border-box; } -/* This layout doesn't want the header or content text. */ -#header, -#content { - display: none; -} - #blurb { font-size: 20px; } - -/* The footer goes in the bottom right corner. */ -#footer { - position: fixed; - right: 50px; - bottom: 60px; -} diff --git a/browser/branding/unofficial/stubinstaller/profile_cleanup_page.css b/browser/branding/unofficial/stubinstaller/profile_cleanup_page.css @@ -33,10 +33,3 @@ body { padding: 8px 40px; font-size: 15px; } - -/* The footer goes in the bottom right corner. */ -#footer { - position: fixed; - right: 50px; - bottom: 59px; -} diff --git a/browser/installer/windows/nsis/content/installing.html b/browser/installer/windows/nsis/content/installing.html @@ -18,30 +18,20 @@ <body> <img id="background" src="bgstub.jpg" alt="" role="presentation" /> - <div id="text_column"> - <div id="text_column_container"> - <h1 id="header"></h1> - <div id="content"></div> - </div> - </div> - - <div id="installing"> - <div id="label" tabindex="0"></div> - <div id="progress_background"> - <div - id="progress_bar" - role="progressbar" - aria-labelledby="label" - aria-valuemin="0" - aria-valuemax="100" - aria-valuenow="0" - tabindex="0" - ></div> - </div> + <div id="label" tabindex="0"></div> + + <div id="progress_background"> + <div + id="progress_bar" + role="progressbar" + aria-labelledby="label" + aria-valuemin="0" + aria-valuemax="100" + aria-valuenow="0" + tabindex="0" + ></div> </div> <div id="blurb"></div> - - <div id="footer"></div> </body> </html> diff --git a/browser/installer/windows/nsis/content/installing.js b/browser/installer/windows/nsis/content/installing.js @@ -10,18 +10,13 @@ var BLURB_CYCLE_MS = 20000; var PROGRESS_BAR_INTERVAL_MS = 250; window.attachEvent("onload", function () { - // Set direction on the two components of the layout. + // Set direction on the page body. var direction = external.getTextDirection(); - document.getElementById("text_column").style.direction = direction; - document.getElementById("installing").style.direction = direction; + document.body.style.direction = direction; // Get this page's static strings. var label = document.getElementById("label"); label.innerText = external.getUIString("installing_label"); - document.getElementById("header").innerText = - external.getUIString("installing_header"); - document.getElementById("content").innerText = - external.getUIString("installing_content"); // Poll and update the progress bar percentage. setInterval(function () { diff --git a/browser/installer/windows/nsis/content/profile_cleanup.html b/browser/installer/windows/nsis/content/profile_cleanup.html @@ -19,20 +19,16 @@ <img id="background" src="bgstub.jpg" alt="" role="presentation" /> <form id="profileRefreshForm"> - <div id="profileRefreshContainer"> - <h1 id="header"></h1> + <h1 id="header"></h1> - <div id="refreshCheckboxContainer"> - <input id="refreshCheckbox" type="checkbox" checked /> - <label id="checkboxLabel" for="refreshCheckbox"></label> - </div> + <div id="refreshCheckboxContainer"> + <input id="refreshCheckbox" type="checkbox" checked /> + <label id="checkboxLabel" for="refreshCheckbox"></label> + </div> - <div id="refreshButtonContainer"> - <button type="submit" id="refreshButton"></button> - </div> + <div id="refreshButtonContainer"> + <button type="submit" id="refreshButton"></button> </div> </form> - - <div id="footer"></div> </body> </html> diff --git a/browser/installer/windows/nsis/content/profile_cleanup.js b/browser/installer/windows/nsis/content/profile_cleanup.js @@ -8,7 +8,6 @@ window.attachEvent("onload", function () { var profileRefreshForm = document.getElementById("profileRefreshForm"); profileRefreshForm.style.direction = direction; var checkboxLabel = document.getElementById("checkboxLabel"); - checkboxLabel.className += " checkboxLabel-" + direction; // Get this page's static strings. document.getElementById("header").innerText = diff --git a/browser/installer/windows/nsis/content/stub_common.js b/browser/installer/windows/nsis/content/stub_common.js @@ -5,16 +5,10 @@ window.attachEvent("onload", function () { if (parseInt(external.getIsHighContrast())) { document.body.className += " high-contrast"; - } else { - document.body.className += " normal-contrast"; } document.body.style.fontFamily = external.getFontName() + ", sans-serif"; - // All pages have the global footer (or don't, depending on the branding). - document.getElementById("footer").innerText = - external.getUIString("global_footer"); - // Disallow dragging of the "background" image. document.getElementById("background").attachEvent("ondragstart", function () { return false; diff --git a/browser/installer/windows/nsis/stub.nsh b/browser/installer/windows/nsis/stub.nsh @@ -372,9 +372,9 @@ Function getUIString ${Select} $0 ${Case} "cleanup_header" ${If} $ProfileCleanupPromptType == 1 - Push "$(STUB_CLEANUP_REINSTALL_HEADER2)" + Push "$(STUB_CLEANUP_REINSTALL_HEADER3)" ${Else} - Push "$(STUB_CLEANUP_PAVEOVER_HEADER2)" + Push "$(STUB_CLEANUP_PAVEOVER_HEADER3)" ${EndIf} ${Case} "cleanup_button" ${If} $ProfileCleanupPromptType == 1 @@ -383,21 +383,27 @@ Function getUIString Push "$(STUB_CLEANUP_PAVEOVER_BUTTON2)" ${EndIf} ${Case} "cleanup_checkbox" - Push "$(STUB_CLEANUP_CHECKBOX_LABEL2)" - ${Case} "installing_header" - Push "$(STUB_INSTALLING_HEADLINE2)" + Push "$(STUB_CLEANUP_CHECKBOX_LABEL3)" ${Case} "installing_label" Push "$(STUB_INSTALLING_LABEL2)" - ${Case} "installing_content" - Push "$(STUB_INSTALLING_BODY2)" ${Case} "installing_blurb_0" - Push "$(STUB_BLURB_FIRST1)" + !ifdef DEV_EDITION + Push "$(STUB_BLURB_FIRST2_DEVEDITION)" + !else + Push "$(STUB_BLURB_FIRST2)" + !endif ${Case} "installing_blurb_1" - Push "$(STUB_BLURB_SECOND1)" + !ifdef DEV_EDITION + Push "$(STUB_BLURB_SECOND2_DEVEDITION)" + !else + Push "$(STUB_BLURB_SECOND2)" + !endif ${Case} "installing_blurb_2" - Push "$(STUB_BLURB_THIRD1)" - ${Case} "global_footer" - Push "$(STUB_BLURB_FOOTER2)" + !ifdef DEV_EDITION + Push "$(STUB_BLURB_THIRD2_DEVEDITION)" + !else + Push "$(STUB_BLURB_THIRD2)" + !endif ${Default} Push "" ${EndSelect} @@ -1225,7 +1231,7 @@ Function DisplayDownloadError ${ITBL3SetProgressValue} "100" "100" ${ITBL3SetProgressState} "${TBPF_ERROR}" - MessageBox MB_OKCANCEL|MB_ICONSTOP "$(ERROR_DOWNLOAD_CONT)" IDCANCEL +2 IDOK +1 + MessageBox MB_OKCANCEL|MB_ICONSTOP "$(ERROR_DOWNLOAD_CONT2)" IDCANCEL +2 IDOK +1 Call LaunchHelpPage Call SendPing FunctionEnd @@ -1569,9 +1575,9 @@ Function CommonOnInit ${Unless} ${AtLeastWin10} StrCpy $ExitCode "${ERR_PREINSTALL_SYS_OS_REQ}" ${If} "$CpuSupportsSSE" == "0" - strCpy $R7 "$(WARN_MIN_SUPPORTED_OSVER_CPU_MSG)" + strCpy $R7 "$(WARN_MIN_SUPPORTED_OSVER_CPU_MSG2)" ${Else} - strCpy $R7 "$(WARN_MIN_SUPPORTED_OSVER_MSG)" + strCpy $R7 "$(WARN_MIN_SUPPORTED_OSVER_MSG2)" ${EndIf} MessageBox MB_OKCANCEL|MB_ICONSTOP "$R7" /SD IDCANCEL IDCANCEL +2 ExecShell "open" "${URLWinPre10NeedsEsr115}" @@ -1582,7 +1588,7 @@ Function CommonOnInit ; SSE2 CPU support ${If} "$CpuSupportsSSE" == "0" StrCpy $ExitCode "${ERR_PREINSTALL_SYS_HW_REQ}" - MessageBox MB_OKCANCEL|MB_ICONSTOP "$(WARN_MIN_SUPPORTED_CPU_MSG)" /SD IDCANCEL IDCANCEL +2 + MessageBox MB_OKCANCEL|MB_ICONSTOP "$(WARN_MIN_SUPPORTED_CPU_MSG2)" /SD IDCANCEL IDCANCEL +2 ExecShell "open" "${URLSystemRequirements}" StrCpy $AbortInstallation "true" Return @@ -1728,7 +1734,7 @@ Function CommonOnInit Call CanWrite ${If} "$CanWriteToInstallDir" == "false" StrCpy $ExitCode "${ERR_PREINSTALL_NOT_WRITABLE}" - MessageBox MB_OK|MB_ICONEXCLAMATION "$(WARN_WRITE_ACCESS_QUIT)$\n$\n$INSTDIR" /SD IDOK + MessageBox MB_OK|MB_ICONEXCLAMATION "$(WARN_WRITE_ACCESS_QUIT2)$\n$\n$INSTDIR" /SD IDOK StrCpy $AbortInstallation "true" Return ${EndIf} @@ -1738,7 +1744,7 @@ Function CommonOnInit Call CheckSpace ${If} "$HasRequiredSpaceAvailable" == "false" StrCpy $ExitCode "${ERR_PREINSTALL_SPACE}" - MessageBox MB_OK|MB_ICONEXCLAMATION "$(WARN_DISK_SPACE_QUIT)" + MessageBox MB_OK|MB_ICONEXCLAMATION "$(WARN_DISK_SPACE_QUIT2)" StrCpy $AbortInstallation "true" Return ${EndIf} diff --git a/browser/locales/en-US/installer/nsisstrings.properties b/browser/locales/en-US/installer/nsisstrings.properties @@ -18,27 +18,27 @@ INSTALLER_WIN_CAPTION=$BrandShortName Installer -STUB_CLEANUP_PAVEOVER_HEADER2=$BrandShortName is already installed. Let’s update it. -STUB_CLEANUP_REINSTALL_HEADER2=$BrandShortName has been installed before. Let’s get you a new copy. +STUB_CLEANUP_PAVEOVER_HEADER3=You already installed $BrandShortName. Let’s power up with the latest version. +STUB_CLEANUP_REINSTALL_HEADER3=You already installed $BrandShortName. Let’s get you a fresh copy. STUB_CLEANUP_PAVEOVER_BUTTON2=Update STUB_CLEANUP_REINSTALL_BUTTON2=Re-install -STUB_CLEANUP_CHECKBOX_LABEL2=Restore default settings and remove old add-ons for optimal performance +STUB_CLEANUP_CHECKBOX_LABEL3=Clean up and speed up. Go back to default settings and delete old add-ons. STUB_INSTALLING_LABEL2=Now installing… -STUB_INSTALLING_HEADLINE2=Optimizing your settings for speed, privacy, and safety. -STUB_INSTALLING_BODY2=$BrandShortName will be ready in just a few moments. -STUB_BLURB_FIRST1=The fastest, most responsive $BrandShortName yet -STUB_BLURB_SECOND1=Faster page loading and tab switching -STUB_BLURB_THIRD1=Powerful private browsing -STUB_BLURB_FOOTER2=Built for people, not for profit - -WARN_MIN_SUPPORTED_OSVER_MSG=Sorry, $BrandShortName can’t be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer. Please click the OK button for additional information. -WARN_MIN_SUPPORTED_CPU_MSG=Sorry, $BrandShortName can’t be installed. This version of $BrandShortName requires a processor with ${MinSupportedCPU} support. Please click the OK button for additional information. -WARN_MIN_SUPPORTED_OSVER_CPU_MSG=Sorry, $BrandShortName can’t be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer and a processor with ${MinSupportedCPU} support. Please click the OK button for additional information. -WARN_WRITE_ACCESS_QUIT=You don’t have access to write to the installation directory -WARN_DISK_SPACE_QUIT=You don’t have sufficient disk space to install. - -ERROR_DOWNLOAD_CONT=Hmm. For some reason, we could not install $BrandShortName.\nChoose OK to start over. +STUB_BLURB_FIRST2=Get ready to run free on the open web +STUB_BLURB_SECOND2=Speedy. Safe. Blocks trackers automatically. +STUB_BLURB_THIRD2=Thanks for building a better web with us +STUB_BLURB_FIRST2_DEVEDITION=Get ready to build for the open web +STUB_BLURB_SECOND2_DEVEDITION=Powerful. Private. Made for developers. +STUB_BLURB_THIRD2_DEVEDITION=Thank you for being part of the $BrandShortName community + +WARN_MIN_SUPPORTED_OSVER_MSG2=It looks like $BrandShortName can’t be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer. Please click the OK button for additional information. +WARN_MIN_SUPPORTED_CPU_MSG2=It looks like $BrandShortName can’t be installed. This version of $BrandShortName requires a processor with ${MinSupportedCPU} support. Please click the OK button for additional information. +WARN_MIN_SUPPORTED_OSVER_CPU_MSG2=It looks like $BrandShortName can’t be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer and a processor with ${MinSupportedCPU} support. Please click the OK button for additional information. +WARN_WRITE_ACCESS_QUIT2=It looks like you’re not allowed to install to that file location. +WARN_DISK_SPACE_QUIT2=It looks like you don’t have enough storage on your device to install $BrandShortName. + +ERROR_DOWNLOAD_CONT2=It looks like $BrandShortName couldn’t be installed. Choose OK to start over. STUB_CANCEL_PROMPT_HEADING=Do you want to install $BrandShortName? STUB_CANCEL_PROMPT_MESSAGE=If you cancel, $BrandShortName will not be installed.