lists.torproject.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

tbb-commits

Thread Start a new thread
Threads by month
  • ----- 2025 -----
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
tbb-commits@lists.torproject.org

  • 1 participants
  • 18808 discussions
[Git][tpo/applications/tor-browser][tor-browser-102.6.0esr-12.5-1] fixup! Bug 40933: Add tor-launcher functionality
by Richard Pospesel (@richard) 10 Jan '23

10 Jan '23
Richard Pospesel pushed to branch tor-browser-102.6.0esr-12.5-1 at The Tor Project / Applications / Tor Browser Commits: c20e9ad7 by Pier Angelo Vendrame at 2023-01-10T19:17:03+00:00 fixup! Bug 40933: Add tor-launcher functionality Bug 41549: Correctly handle tor's stdout Subprocess.jsm manages stdout through a pipe, which we never emptied. As a result, it tor filled it completely, a lot of other stuff stalled. The previous implementation dumped tor's stdout to the browser's one, so this commit restores this behavior. - - - - - 1 changed file: - toolkit/components/tor-launcher/TorProcess.jsm Changes: ===================================== toolkit/components/tor-launcher/TorProcess.jsm ===================================== @@ -133,9 +133,10 @@ class TorProcess { arguments: this._args, environment, environmentAppend: true, - stderr: "pipe", + stderr: "stdout", }; this._subprocess = await Subprocess.call(options); + this._dumpStdout(); this._watchProcess(); this._status = TorProcessStatus.Running; this._torProcessStartTime = Date.now(); @@ -173,6 +174,16 @@ class TorProcess { this._didConnectToTorControlPort = true; } + async _dumpStdout() { + let string; + while ( + this._subprocess && + (string = await this._subprocess.stdout.readString()) + ) { + dump(string); + } + } + async _watchProcess() { const watched = this._subprocess; if (!watched) { View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/c20e9ad… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/c20e9ad… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-102.6.0esr-12.5-1] 5 commits: dropme! Partial revert of Bug 13252
by Richard Pospesel (@richard) 10 Jan '23

10 Jan '23
Richard Pospesel pushed to branch tor-browser-102.6.0esr-12.5-1 at The Tor Project / Applications / Tor Browser Commits: 5858c308 by Pier Angelo Vendrame at 2023-01-10T18:10:55+01:00 dropme! Partial revert of Bug 13252 I need to modify Bug 9173. So, I am removing a few changes from 13252 to make both the modifications and the rebase easier. - - - - - acdcfcae by Pier Angelo Vendrame at 2023-01-10T18:11:04+01:00 fixup! Bug 2176: Rebrand Firefox to TorBrowser This commit adds TorProject as the vendor of Tor Browser. This should be visible both in the Windows binaries, and will be used to create the profile directory if we disable the portable mode. - - - - - 5c5e44d0 by Pier Angelo Vendrame at 2023-01-10T18:13:36+01:00 fixup! Bug 9173: Change the default Firefox profile directory to be relative. Bug 20497: Make it possible to disable portable mode 9173 is the patch that enables portable mode for Tor Browser. We modified it to make it optional, but it still used to remove a few important parts that made it compulsory to define a profile directory in the application.ini (through the mozconfig). This commit restores these parts, and makes it hopefully possible to disable portable mode without filling the home directory with TBB files. A few parts are then disabled in a following commit, since they are TBB-legacy behavior, but we might not want them for base-browser and for privacy-browser. Also, this commit changes the configure flag from --with-relative-profile-directory to --with-relative-data-dir, because the data directories can contain the profile and the local data such as caches, not only the profile. Still, we are assuming we are using the same data directory for the profile and for the caches, which is not the case on Windows (where the profile is roaming, and the caches are local) and on Linux (where the profile is in the home, and the cache is in ~/.cache). - - - - - 458fbecf by Pier Angelo Vendrame at 2023-01-10T18:13:44+01:00 fixup! TB3: Tor Browser&#39;s official .mozconfigs. Change relative-profile-directory with relative-data-dir. - - - - - a958edce by Pier Angelo Vendrame at 2023-01-10T18:13:45+01:00 fixup! Bug 13252: Do not store data in the app bundle Bug 20497: Make it possible to use Tor Browser in non-portable mode Add back some legacy Tor Browser-specific behaviors that we restored in 9173. Bug 41535: Remove the old, unused and undocumented &quot;-invisible&quot; macOS CLI flag - - - - - 6 changed files: - browser/config/mozconfigs/tor-browser - browser/confvars.sh - moz.configure - toolkit/xre/nsAppRunner.cpp - toolkit/xre/nsXREDirProvider.cpp - xpcom/io/nsAppFileLocationProvider.cpp Changes: ===================================== browser/config/mozconfigs/tor-browser ===================================== @@ -1,8 +1,15 @@ . $topsrcdir/browser/config/mozconfigs/base-browser +export MOZ_APP_BASENAME="TorBrowser" mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser" -ac_add_options --with-relative-profile=TorBrowser/Data/Browser +ac_add_options --with-relative-data-dir=TorBrowser/Data/Browser +# This is not needed with the relative data directory, but it is when you +# disable it, otherwise it is "Mozilla" (on Windows and macOS) or ".mozilla" on +# Unix systems. +# It is used, for example, for GetProductDirectory. +# ac_add_options --with-user-appdir=TorProject +# ac_add_options --with-user-appdir=.torproject ac_add_options --enable-tor-browser-update ac_add_options --enable-verify-mar ===================================== browser/confvars.sh ===================================== @@ -3,7 +3,7 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -MOZ_APP_VENDOR=Mozilla +MOZ_APP_VENDOR="Tor Project" BROWSER_CHROME_URL=chrome://browser/content/browser.xhtml ===================================== moz.configure ===================================== @@ -1026,22 +1026,22 @@ set_define("BASE_BROWSER", True, when="--enable-base-browser") option( - "--with-relative-profile", + "--with-relative-data-dir", nargs=1, - help="Sets the directory of the profile, relative to the application directory" + help="Sets the data directories to be relative to the application directory" ) -@depends("--with-relative-profile", target) +@depends("--with-relative-data-dir", target) @imports("json") -def relative_profile(value, target): +def relative_data_dir(value, target): if value and target.os == "Android": - die("--with-relative-profile is not supported on Android") + die("--with-relative-data-dir is not supported on Android") if value: return json.dumps(value[0]) -set_define("RELATIVE_PROFILE_DIRECTORY", relative_profile) +set_define("RELATIVE_DATA_DIR", relative_data_dir) # Tor additions. ===================================== toolkit/xre/nsAppRunner.cpp ===================================== @@ -4158,14 +4158,6 @@ int XREMain::XRE_mainInit(bool* aExitFlag) { if (PR_GetEnv("XRE_MAIN_BREAK")) NS_BREAK(); #endif -#if defined(XP_MACOSX) && defined(TOR_BROWSER_DATA_OUTSIDE_APP_DIR) - bool hideDockIcon = (CheckArg("invisible") == ARG_FOUND); - if (hideDockIcon) { - ProcessSerialNumber psn = {0, kCurrentProcess}; - TransformProcessType(&psn, kProcessTransformToBackgroundApplication); - } -#endif - mozilla::startup::IncreaseDescriptorLimits(); #ifdef USE_GLX_TEST @@ -5222,6 +5214,14 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) { if (CheckArg("test-process-updates")) { SaveToEnv("MOZ_TEST_PROCESS_UPDATES=1"); } +# ifndef TOR_BROWSER_DATA_OUTSIDE_APP_DIR + nsCOMPtr<nsIFile> exeFile, exeDir; + rv = mDirProvider.GetFile(XRE_EXECUTABLE_FILE, &persistent, + getter_AddRefs(exeFile)); + NS_ENSURE_SUCCESS(rv, 1); + rv = exeFile->GetParent(getter_AddRefs(exeDir)); +# endif + # ifdef TOR_BROWSER_UPDATE nsAutoCString compatVersion(TOR_BROWSER_VERSION_QUOTED); # endif ===================================== toolkit/xre/nsXREDirProvider.cpp ===================================== @@ -236,6 +236,11 @@ nsresult nsXREDirProvider::GetUserProfilesRootDir(nsIFile** aResult) { nsresult rv = GetUserDataDirectory(getter_AddRefs(file), false); if (NS_SUCCEEDED(rv)) { + // For some reason, we have decided not to append "Profiles" in Tor Browser. + // So, let's keep removing it, or we should somehow migrate the profile. +#if !defined(TOR_BROWSER_VERSION) && (!defined(XP_UNIX) || defined(XP_MACOSX)) + rv = file->AppendNative("Profiles"_ns); +#endif // We must create the profile directory here if it does not exist. nsresult tmp = EnsureDirectoryExists(file); if (NS_FAILED(tmp)) { @@ -251,6 +256,9 @@ nsresult nsXREDirProvider::GetUserProfilesLocalDir(nsIFile** aResult) { nsresult rv = GetUserDataDirectory(getter_AddRefs(file), true); if (NS_SUCCEEDED(rv)) { +#if !defined(TOR_BROWSER_VERSION) && (!defined(XP_UNIX) || defined(XP_MACOSX)) + rv = file->AppendNative("Profiles"_ns); +#endif // We must create the profile directory here if it does not exist. nsresult tmp = EnsureDirectoryExists(file); if (NS_FAILED(tmp)) { @@ -1366,8 +1374,7 @@ nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile, return gDataDirHome->Clone(aFile); } -#if defined(RELATIVE_PROFILE_DIRECTORY) || \ - defined(TOR_BROWSER_DATA_OUTSIDE_APP_DIR) +#if defined(RELATIVE_DATA_DIR) || defined(TOR_BROWSER_DATA_OUTSIDE_APP_DIR) # ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR rv = GetTorBrowserUserDataDir(getter_AddRefs(localDir)); NS_ENSURE_SUCCESS(rv, rv); @@ -1379,10 +1386,10 @@ nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile, } rv = singleton->GetAppRootDir(getter_AddRefs(localDir)); NS_ENSURE_SUCCESS(rv, rv); - nsAutoCString profileDir(RELATIVE_PROFILE_DIRECTORY); + nsAutoCString profileDir(RELATIVE_DATA_DIR); rv = localDir->SetRelativePath(localDir.get(), profileDir); NS_ENSURE_SUCCESS(rv, rv); -#endif +# endif if (aLocal) { rv = localDir->AppendNative("Caches"_ns); NS_ENSURE_SUCCESS(rv, rv); @@ -1555,7 +1562,7 @@ nsresult nsXREDirProvider::GetAppRootDir(nsIFile** aFile) { #endif while (levelsToRemove-- > 0) { rv = file->GetParent(getter_AddRefs(appRootDir)); - NS_ENSURE_SUCCESS(rv, rv); + NS_ENSURE_SUCCESS(rv, rv); file = appRootDir; } return appRootDir->Clone(aFile); @@ -1612,8 +1619,13 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) { } nsAutoCString profile; + nsAutoCString appName; + nsAutoCString vendor; if (gAppData->profile) { profile = gAppData->profile; + } else { + appName = gAppData->name; + vendor = gAppData->vendor; } nsresult rv = NS_OK; @@ -1621,12 +1633,27 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) { #if defined(XP_MACOSX) if (!profile.IsEmpty()) { rv = AppendProfileString(aFile, profile.get()); +# ifndef RELATIVE_DATA_DIR + } else { + // Note that MacOS ignores the vendor when creating the profile hierarchy - + // all application preferences directories live alongside one another in + // ~/Library/Application Support/ + rv = aFile->AppendNative(appName); +# endif } NS_ENSURE_SUCCESS(rv, rv); #elif defined(XP_WIN) if (!profile.IsEmpty()) { rv = AppendProfileString(aFile, profile.get()); +# ifndef RELATIVE_DATA_DIR + } else { + if (!vendor.IsEmpty()) { + rv = aFile->AppendNative(vendor); + NS_ENSURE_SUCCESS(rv, rv); + } + rv = aFile->AppendNative(appName); +# endif } NS_ENSURE_SUCCESS(rv, rv); @@ -1638,21 +1665,48 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) { rv = aFile->AppendNative(nsDependentCString("mozilla")); NS_ENSURE_SUCCESS(rv, rv); #elif defined(XP_UNIX) + nsAutoCString folder; + // Make it hidden (by starting with "."), except when local (the + // profile is already under ~/.cache or XDG_CACHE_HOME). +# ifndef RELATIVE_DATA_DIR + if (!aLocal) folder.Assign('.'); +# endif + if (!profile.IsEmpty()) { // Skip any leading path characters const char* profileStart = profile.get(); while (*profileStart == '/' || *profileStart == '\\') profileStart++; +# ifndef RELATIVE_DATA_DIR // On the off chance that someone wanted their folder to be hidden don't // let it become ".." - if (*profileStart == '.') profileStart++; + if (*profileStart == '.' && !aLocal) profileStart++; +# endif - // Make it hidden (by starting with "."). - nsAutoCString folder("."); folder.Append(profileStart); ToLowerCase(folder); rv = AppendProfileString(aFile, folder.BeginReading()); +# ifndef RELATIVE_DATA_DIR + } else { + if (!vendor.IsEmpty()) { + folder.Append(vendor); + ToLowerCase(folder); + + rv = aFile->AppendNative(folder); + NS_ENSURE_SUCCESS(rv, rv); + + folder.Truncate(); + } + + // This can be the case in tests. + if (!appName.IsEmpty()) { + folder.Append(appName); + ToLowerCase(folder); + + rv = aFile->AppendNative(folder); + } +# endif } NS_ENSURE_SUCCESS(rv, rv); ===================================== xpcom/io/nsAppFileLocationProvider.cpp ===================================== @@ -249,8 +249,7 @@ nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile, bool exists; nsCOMPtr<nsIFile> localDir; -#if defined(RELATIVE_PROFILE_DIRECTORY) || \ - defined(TOR_BROWSER_DATA_OUTSIDE_APP_DIR) +#if defined(RELATIVE_DATA_DIR) || defined(TOR_BROWSER_DATA_OUTSIDE_APP_DIR) nsCOMPtr<nsIProperties> directoryService( do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv)); NS_ENSURE_SUCCESS(rv, rv); @@ -263,26 +262,24 @@ nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile, rv = file->Normalize(); NS_ENSURE_SUCCESS(rv, rv); int levelsToRemove = 1; -#if defined(XP_MACOSX) +# if defined(XP_MACOSX) levelsToRemove += 2; -#endif +# endif while (levelsToRemove-- > 0) { rv = file->GetParent(getter_AddRefs(appRootDir)); NS_ENSURE_SUCCESS(rv, rv); file = appRootDir; } -#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR +# ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR rv = TorBrowser_GetUserDataDir(appRootDir, getter_AddRefs(localDir)); NS_ENSURE_SUCCESS(rv, rv); rv = localDir->AppendNative("Browser"_ns); -#else +# else localDir = appRootDir; - nsAutoCString profileDir(RELATIVE_PROFILE_DIRECTORY); + nsAutoCString profileDir(RELATIVE_DATA_DIR); rv = localDir->SetRelativePath(localDir.get(), profileDir); - NS_ENSURE_SUCCESS(rv, rv); -#endif - +# endif NS_ENSURE_SUCCESS(rv, rv); if (aLocal) { @@ -329,6 +326,12 @@ nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile, # error dont_know_how_to_get_product_dir_on_your_platform #endif +#if !defined(RELATIVE_DATA_DIR) && !defined(TOR_BROWSER_VERSION) + rv = localDir->AppendRelativeNativePath(DEFAULT_PRODUCT_DIR); + if (NS_FAILED(rv)) { + return rv; + } +#endif rv = localDir->Exists(&exists); if (NS_SUCCEEDED(rv) && !exists) { @@ -362,6 +365,26 @@ nsresult nsAppFileLocationProvider::GetDefaultUserProfileRoot( return rv; } +#if defined(MOZ_WIDGET_COCOA) || defined(XP_WIN) + // These 3 platforms share this part of the path - do them as one +# ifndef TOR_BROWSER_VERSION + // Legacy: we do not use "Profiles" on Tor Browser. + rv = localDir->AppendRelativeNativePath("Profiles"_ns); + if (NS_FAILED(rv)) { + return rv; + } +# endif + + bool exists; + rv = localDir->Exists(&exists); + if (NS_SUCCEEDED(rv) && !exists) { + rv = localDir->Create(nsIFile::DIRECTORY_TYPE, 0775); + } + if (NS_FAILED(rv)) { + return rv; + } +#endif + localDir.forget(aLocalFile); return rv; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/060e2d… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/060e2d… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-102.6.0esr-12.5-1] fixup! Add TorStrings module for localization
by Pier Angelo Vendrame (@pierov) 10 Jan '23

10 Jan '23
Pier Angelo Vendrame pushed to branch tor-browser-102.6.0esr-12.5-1 at The Tor Project / Applications / Tor Browser Commits: 060e2d72 by Pier Angelo Vendrame at 2023-01-10T16:38:50+00:00 fixup! Add TorStrings module for localization Bug 41563: Fix old placeholders in TorStrings.jsm - - - - - 1 changed file: - browser/modules/TorStrings.jsm Changes: ===================================== browser/modules/TorStrings.jsm ===================================== @@ -137,7 +137,7 @@ const Loader = { bridgeCurrent: "Your Current Bridges", bridgeCurrentDescription: "You can keep one or more bridges saved, and Tor will choose which one to use when you connect. Tor will automatically switch to use another bridge when needed.", - bridgeId: "#1 bridge: #2", + bridgeId: "%1$S bridge: %2$S", remove: "Remove", bridgeDisableBuiltIn: "Disable built-in bridges", bridgeShare: @@ -247,16 +247,16 @@ const Loader = { couldNotConnect: "Tor Browser could not connect to Tor", configureConnection: "configure your connection", assistDescription: - "If Tor is blocked in your location, trying a bridge may help. Connection assist can choose one for you using your location, or you can #1 manually instead.", + "If Tor is blocked in your location, trying a bridge may help. Connection assist can choose one for you using your location, or you can %S manually instead.", tryingBridge: "Trying a bridge…", tryingBridgeAgain: "Trying one more time…", errorLocation: "Tor Browser couldn’t locate you", errorLocationDescription: - "Tor Browser needs to know your location in order to choose the right bridge for you. If you’d rather not share your location, #1 manually instead.", + "Tor Browser needs to know your location in order to choose the right bridge for you. If you’d rather not share your location, %S manually instead.", isLocationCorrect: "Are these location settings correct?", isLocationCorrectDescription: - "Tor Browser still couldn’t connect to Tor. Please check your location settings are correct and try again, or #1 instead.", + "Tor Browser still couldn’t connect to Tor. Please check your location settings are correct and try again, or %S instead.", finalError: "Tor Browser still cannot connect", finalErrorDescription: View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/060e2d7… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/060e2d7… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-102.6.0esr-12.5-1] fixup! Bug 40209: Implement Basic Crypto Safety
by Pier Angelo Vendrame (@pierov) 10 Jan '23

10 Jan '23
Pier Angelo Vendrame pushed to branch tor-browser-102.6.0esr-12.5-1 at The Tor Project / Applications / Tor Browser Commits: 221b7a49 by Henry Wilkes at 2023-01-10T10:21:09+00:00 fixup! Bug 40209: Implement Basic Crypto Safety Bug 41539: Remove all whitespace from copied text before testing if it looks like a crypto address. - - - - - 1 changed file: - browser/actors/CryptoSafetyChild.jsm Changes: ===================================== browser/actors/CryptoSafetyChild.jsm ===================================== @@ -74,7 +74,7 @@ class CryptoSafetyChild extends JSWindowActorChild { if (event.type == "copy" || event.type == "cut") { this.contentWindow.navigator.clipboard.readText().then(clipText => { - const selection = clipText.trim(); + const selection = clipText.replace(/\s+/g, ""); if (looksLikeCryptoAddress(selection)) { this.sendAsyncMessage("CryptoSafety:CopiedText", { selection, View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/221b7a4… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/221b7a4… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-102.6.0esr-12.5-1] fixup! Bug 32308: use direct browser sizing for letterboxing.
by Pier Angelo Vendrame (@pierov) 10 Jan '23

10 Jan '23
Pier Angelo Vendrame pushed to branch tor-browser-102.6.0esr-12.5-1 at The Tor Project / Applications / Tor Browser Commits: 1340b399 by hackademix at 2023-01-09T22:50:42+01:00 fixup! Bug 32308: use direct browser sizing for letterboxing. Bug 45162: do not force letterboxing on API-initiated fullscreen. - - - - - 2 changed files: - browser/base/content/browser.css - layout/style/res/ua.css Changes: ===================================== browser/base/content/browser.css ===================================== @@ -111,8 +111,8 @@ body { outline: initial; } -.letterboxing-ready .browserStack:not(.exclude-letterboxing) { - place-content: start center; +:root:not([inDOMFullscreen]) .letterboxing-ready .browserStack:not(.exclude-letterboxing) { + place-content: start center; } /* extend down the toolbar's colors when letterboxing is enabled */ ===================================== layout/style/res/ua.css ===================================== @@ -356,8 +356,8 @@ left: 0 !important; right: 0 !important; bottom: 0 !important; - width: 100%; - height: 100%; + width: 100% !important; + height: 100% !important; margin: 0 !important; min-width: 0 !important; max-width: none !important; @@ -368,11 +368,6 @@ transform: none !important; } -*|*:fullscreen:not(:root, .letterboxing .browserStack:not(.exclude-letterboxing) > browser) { - width: 100% !important; - height: 100% !important; -} - xul|*:fullscreen:not(:root, [hidden="true"]) { /* The position: fixed; property above used to force the computed display * value to block. It is no longer the case now, so we manually set it here to View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1340b39… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1340b39… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-102.6.0esr-12.5-1] fixup! Bug 40925: Implemented the Security Level component
by Richard Pospesel (@richard) 09 Jan '23

09 Jan '23
Richard Pospesel pushed to branch tor-browser-102.6.0esr-12.5-1 at The Tor Project / Applications / Tor Browser Commits: 90395b29 by Henry Wilkes at 2023-01-09T20:41:54+00:00 fixup! Bug 40925: Implemented the Security Level component Bug 32274: Make the security level settings more accessible: + We remove the &quot;Restore Defaults&quot; link that was between each radio option and place it separately as a button, with some notification text. + We set the `aria-describedby` attribute on the radio options to point to the description. + We change the security level popup&#39;s button text from &quot;Change&quot; to &quot;Change Setting&quot; to give users more of a hint that clicking the button will land them in the middle of about:preferences. We also tidied up the javascript, CSS and xhtml. - - - - - 5 changed files: - browser/components/preferences/privacy.js - browser/components/securitylevel/content/securityLevel.js - browser/components/securitylevel/content/securityLevelPreferences.css - browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml - browser/components/securitylevel/locale/en-US/securityLevel.properties Changes: ===================================== browser/components/preferences/privacy.js ===================================== @@ -341,11 +341,9 @@ var gPrivacyPane = { */ _initSecurityLevel() { SecurityLevelPreferences.init(); - let unload = () => { - window.removeEventListener("unload", unload); - SecurityLevelPreferences.uninit(); - }; - window.addEventListener("unload", unload); + window.addEventListener("unload", () => SecurityLevelPreferences.uninit(), { + once: true, + }); }, /** ===================================== browser/components/securitylevel/content/securityLevel.js ===================================== @@ -17,13 +17,14 @@ XPCOMUtils.defineLazyGetter(this, "SecurityLevelStrings", () => { security_level_restore: "Restore Defaults", security_level_learn_more: "Learn more", // Panel - security_level_change: "Change…", + security_level_change_setting: "Change Setting…", security_level_standard_summary: "All browser and website features are enabled.", security_level_safer_summary: "Disables website features that are often dangerous, causing some sites to lose functionality.", security_level_safest_summary: "Only allows website features required for static sites and basic services. These changes affect images, media, and scripts.", + security_level_custom_heading: "Warning!", security_level_custom_summary: "Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels.", // Security level section in about:preferences#privacy @@ -259,7 +260,7 @@ var SecurityLevelPanel = { this._elements.restoreDefaultsButton.textContent = SecurityLevelStrings.security_level_restore; this._elements.settingsButton.textContent = - SecurityLevelStrings.security_level_change; + SecurityLevelStrings.security_level_change_setting; this._elements.restoreDefaultsButton.addEventListener("command", () => { this.restoreDefaults(); @@ -367,120 +368,112 @@ var SecurityLevelPanel = { var SecurityLevelPreferences = { _securityPrefsBranch: null, + /** + * The notification box shown when the user has a custom security setting. + * + * @type {Element} + */ + _customNotification: null, + /** + * The radiogroup for this preference. + * + * @type {Element} + */ + _radiogroup: null, + /** + * A list of radio options and their containers. + * + * @type {Array<Object>} + */ + _radioOptions: null, _populateXUL() { - const groupbox = document.querySelector("#securityLevel-groupbox"); - const radiogroup = groupbox.querySelector("#securityLevel-radiogroup"); - radiogroup.addEventListener( - "command", - SecurityLevelPreferences.selectSecurityLevel + this._customNotification = document.getElementById( + "securityLevel-customNotification" ); + this._radiogroup = document.getElementById("securityLevel-radiogroup"); - groupbox.querySelector("h2").textContent = + document.querySelector("#securityLevel-groupbox h2").textContent = SecurityLevelStrings.security_level; - groupbox.querySelector("#securityLevel-overview").textContent = + document.getElementById("securityLevel-overview").textContent = SecurityLevelStrings.security_level_overview; - groupbox - .querySelector("#securityLevel-learnMore") + document + .getElementById("securityLevel-learnMore") .setAttribute("value", SecurityLevelStrings.security_level_learn_more); - const populateRadioElements = (level, descr) => { - const vbox = groupbox.querySelector(`#securityLevel-vbox-${level}`); - vbox - .querySelector("radio") - .setAttribute("label", SecurityLevelStrings[`security_level_${level}`]); - vbox - .querySelector(".securityLevel-customWarning") - .setAttribute("value", SecurityLevelStrings.security_level_custom); - vbox.querySelector(".summary").textContent = - SecurityLevelStrings[`security_level_${level}_summary`]; - const labelRestoreDefaults = vbox.querySelector( - ".securityLevel-restoreDefaults" - ); - labelRestoreDefaults.setAttribute( - "value", - SecurityLevelStrings.security_level_restore + document.getElementById("securityLevel-customHeading").textContent = + SecurityLevelStrings.security_level_custom_heading; + document.getElementById("securityLevel-customDescription").textContent = + SecurityLevelStrings.security_level_custom_summary; + const restoreDefaultsButton = document.getElementById( + "securityLevel-restoreDefaults" + ); + restoreDefaultsButton.textContent = + SecurityLevelStrings.security_level_restore; + + this._radioOptions = Array.from( + this._radiogroup.querySelectorAll(".securityLevel-radio-option"), + container => { + return { container, radio: container.querySelector("radio") }; + } + ); + const descListItemsMap = { + safer: [ + SecurityLevelStrings.security_level_js_https_only, + SecurityLevelStrings.security_level_limit_typography, + SecurityLevelStrings.security_level_limit_media, + ], + safest: [ + SecurityLevelStrings.security_level_js_disabled, + SecurityLevelStrings.security_level_limit_typography_svg, + SecurityLevelStrings.security_level_limit_media, + ], + }; + for (const { container, radio } of this._radioOptions) { + const level = radio.value; + radio.setAttribute( + "label", + SecurityLevelStrings[`security_level_${level}`] ); - labelRestoreDefaults.addEventListener( - "click", - SecurityLevelStrings.restoreDefaults + container.querySelector(".summary").textContent = + SecurityLevelStrings[`security_level_${level}_summary`]; + const descListItems = descListItemsMap[level]; + if (!descListItems) { + continue; + } + const descrList = container.querySelector( + ".securityLevel-descriptionList" ); - if (descr) { - const descrList = vbox.querySelector(".securityLevel-descriptionList"); - // TODO: Add the elements in securityLevelPreferences.inc.xhtml again - // when we switch to Fluent - for (const text of descr) { - let elem = document.createXULElement("description"); - elem.textContent = text; - elem.className = "indent"; - descrList.append(elem); - } + // TODO: Add the elements in securityLevelPreferences.inc.xhtml again + // when we switch to Fluent + for (const text of descListItems) { + let elem = document.createXULElement("description"); + elem.textContent = text; + elem.className = "indent"; + descrList.append(elem); } - }; - populateRadioElements("standard"); - populateRadioElements("safer", [ - SecurityLevelStrings.security_level_js_https_only, - SecurityLevelStrings.security_level_limit_typography, - SecurityLevelStrings.security_level_limit_media, - ]); - populateRadioElements("safest", [ - SecurityLevelStrings.security_level_js_disabled, - SecurityLevelStrings.security_level_limit_typography_svg, - SecurityLevelStrings.security_level_limit_media, - ]); + } + + restoreDefaultsButton.addEventListener("command", () => { + SecurityLevelPrefs.securityCustom = false; + }); + this._radiogroup.addEventListener("select", () => { + SecurityLevelPrefs.securityLevel = this._radiogroup.value; + }); }, _configUIFromPrefs() { - // read our prefs - const securityLevel = SecurityLevelPrefs.securityLevel; - const securityCustom = SecurityLevelPrefs.securityCustom; - - // get our elements - const groupbox = document.querySelector("#securityLevel-groupbox"); - let radiogroup = groupbox.querySelector("#securityLevel-radiogroup"); - let labelStandardCustom = groupbox.querySelector( - "#securityLevel-vbox-standard label.securityLevel-customWarning" - ); - let labelSaferCustom = groupbox.querySelector( - "#securityLevel-vbox-safer label.securityLevel-customWarning" - ); - let labelSafestCustom = groupbox.querySelector( - "#securityLevel-vbox-safest label.securityLevel-customWarning" - ); - let labelStandardRestoreDefaults = groupbox.querySelector( - "#securityLevel-vbox-standard label.securityLevel-restoreDefaults" - ); - let labelSaferRestoreDefaults = groupbox.querySelector( - "#securityLevel-vbox-safer label.securityLevel-restoreDefaults" - ); - let labelSafestRestoreDefaults = groupbox.querySelector( - "#securityLevel-vbox-safest label.securityLevel-restoreDefaults" - ); - - // hide custom label by default until we know which level we're at - labelStandardCustom.hidden = true; - labelSaferCustom.hidden = true; - labelSafestCustom.hidden = true; - - labelStandardRestoreDefaults.hidden = true; - labelSaferRestoreDefaults.hidden = true; - labelSafestRestoreDefaults.hidden = true; - - radiogroup.value = securityLevel; - - switch (securityLevel) { - case "standard": - labelStandardCustom.hidden = !securityCustom; - labelStandardRestoreDefaults.hidden = !securityCustom; - break; - case "safer": - labelSaferCustom.hidden = !securityCustom; - labelSaferRestoreDefaults.hidden = !securityCustom; - break; - case "safest": - labelSafestCustom.hidden = !securityCustom; - labelSafestRestoreDefaults.hidden = !securityCustom; - break; + this._radiogroup.value = SecurityLevelPrefs.securityLevel; + const isCustom = SecurityLevelPrefs.securityCustom; + this._radiogroup.disabled = isCustom; + this._customNotification.hidden = !isCustom; + // Have the container's selection CSS class match the selection state of the + // radio elements. + for (const { container, radio } of this._radioOptions) { + container.classList.toggle( + "securityLevel-radio-option-selected", + radio.selected + ); } }, @@ -514,17 +507,4 @@ var SecurityLevelPreferences = { break; } }, - - selectSecurityLevel() { - // radio group elements - let radiogroup = document.getElementById("securityLevel-radiogroup"); - - // update pref based on selected radio option - SecurityLevelPrefs.securityLevel = radiogroup.value; - SecurityLevelPreferences.restoreDefaults(); - }, - - restoreDefaults() { - SecurityLevelPrefs.securityCustom = false; - }, }; /* SecurityLevelPreferences */ ===================================== browser/components/securitylevel/content/securityLevelPreferences.css ===================================== @@ -1,51 +1,58 @@ -label.securityLevel-customWarning { - border-radius: 4px; - background-color: var(--yellow-50); - color: black; - font-size: 1em; - height: 1.6em; - padding: 0.4em 0.5em; +#securityLevel-groupbox { + --section-highlight-background-color: color-mix(in srgb, var(--in-content-accent-color) 20%, transparent); +} + +#securityLevel-customNotification { + /* Spacing similar to #fpiIncompatibilityWarning. */ + margin-block: 16px; +} + +.info-icon.securityLevel-custom-warning-icon { + list-style-image: url("chrome://global/skin/icons/warning.svg"); +} + +#securityLevel-customHeading { + font-weight: bold; } -radiogroup#securityLevel-radiogroup description { - color: var(--in-content-page-color)!important; +/* Overwrite indent rule from preferences.css */ +#securityLevel-radiogroup description.indent { + color: var(--in-content-page-color); } -radiogroup#securityLevel-radiogroup radio { +#securityLevel-radiogroup radio { font-weight: bold; } -radiogroup#securityLevel-radiogroup > vbox { +#securityLevel-radiogroup[disabled] { + opacity: 0.5; +} + +/* Overwrite the rule in common-shared.css so we don't get 0.25 opacity overall + * on the radio text. */ +#securityLevel-radiogroup[disabled] radio[disabled] { + opacity: 1.0; +} + +.securityLevel-radio-option { border: 1px solid var(--in-content-box-border-color); border-radius: 4px; margin: 3px 0; padding: 9px; } -radiogroup#securityLevel-radiogroup[value=standard] > vbox#securityLevel-vbox-standard, -radiogroup#securityLevel-radiogroup[value=safer] > vbox#securityLevel-vbox-safer, -radiogroup#securityLevel-radiogroup[value=safest] > vbox#securityLevel-vbox-safest { - --section-highlight-background-color: color-mix(in srgb, var(--in-content-accent-color) 20%, transparent); +.securityLevel-radio-option.securityLevel-radio-option-selected { background-color: var(--section-highlight-background-color); border: 1px solid var(--in-content-accent-color); } -vbox.securityLevel-descriptionList { +.securityLevel-radio-option:not( + .securityLevel-radio-option-selected +) .securityLevel-descriptionList { display: none; } -radiogroup#securityLevel-radiogroup[value=safer] vbox#securityLevel-vbox-safer vbox.securityLevel-descriptionList, -radiogroup#securityLevel-radiogroup[value=safest] vbox#securityLevel-vbox-safest vbox.securityLevel-descriptionList { - display: inherit; -} - -vbox.securityLevel-descriptionList description { +.securityLevel-descriptionList description { display: list-item; } - -vbox#securityLevel-vbox-standard, -vbox#securityLevel-vbox-safer, -vbox#securityLevel-vbox-safest { - margin-top: 0.4em; -} ===================================== browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml ===================================== @@ -2,62 +2,58 @@ data-category="panePrivacy" data-subcategory="securitylevel" hidden="true"> - <label><html:h2/></label> + <label><html:h2></html:h2></label> <vbox flex="1"> <description flex="1"> - <html:span id="securityLevel-overview" class="tail-with-learn-more"/> + <html:span id="securityLevel-overview" class="tail-with-learn-more"> + </html:span> <label id="securityLevel-learnMore" class="learnMore text-link" is="text-link" href="about:manual#security-settings" useoriginprincipal="true"/> </description> + <hbox id="securityLevel-customNotification" + class="info-box-container" + flex="1"> + <hbox class="info-icon-container"> + <image class="info-icon securityLevel-custom-warning-icon"/> + </hbox> + <vbox flex="1"> + <label id="securityLevel-customHeading"/> + <description id="securityLevel-customDescription" flex="1"/> + </vbox> + <hbox align="center"> + <button id="securityLevel-restoreDefaults"/> + </hbox> + </hbox> <radiogroup id="securityLevel-radiogroup"> - <vbox id="securityLevel-vbox-standard"> - <hbox> - <radio value="standard"/> - <vbox> - <spacer flex="1"/> - <label class="securityLevel-customWarning"/> - <spacer flex="1"/> - </vbox> - <spacer flex="1"/> - </hbox> - <description flex="1" class="indent"> - <html:span class="summary tail-with-learn-more"/> - <label class="securityLevel-restoreDefaults learnMore text-link"/> - </description> + <vbox class="securityLevel-radio-option"> + <radio value="standard" + aria-describedby="securityLevelSummary-standard"/> + <vbox id="securityLevelSummary-standard"> + <description class="summary indent" flex="1"/> + </vbox> </vbox> - <vbox id="securityLevel-vbox-safer"> - <hbox> - <radio value="safer"/> - <vbox> - <spacer flex="1"/> - <label class="securityLevel-customWarning"/> - <spacer flex="1"/> - </vbox> - </hbox> - <description flex="1" class="indent"> - <html:span class="summary tail-with-learn-more"/> - <label class="securityLevel-restoreDefaults learnMore text-link"/> - </description> - <vbox class="securityLevel-descriptionList indent"> + <vbox class="securityLevel-radio-option"> + <!-- NOTE: We point the accessible description to the wrapping vbox + - rather than its first description element. This means that when the + - securityLevel-descriptionList is shown or hidden, its text content + - is included or excluded from the accessible description, + - respectively. --> + <radio value="safer" + aria-describedby="securityLevelSummary-safer"/> + <vbox id="securityLevelSummary-safer"> + <description class="summary indent" flex="1"/> + <vbox class="securityLevel-descriptionList indent"/> </vbox> </vbox> - <vbox id="securityLevel-vbox-safest"> - <hbox> - <radio value="safest"/> - <vbox> - <spacer flex="1"/> - <label class="securityLevel-customWarning"/> - <spacer flex="1"/> - </vbox> - </hbox> - <description flex="1" class="indent"> - <html:span class="summary tail-with-learn-more"/> - <label class="securityLevel-restoreDefaults learnMore text-link"/> - </description> - <vbox class="securityLevel-descriptionList indent"> + <vbox class="securityLevel-radio-option"> + <radio value="safest" + aria-describedby="securityLevelSummary-safest"/> + <vbox id="securityLevelSummary-safest"> + <description class="summary indent" flex="1"/> + <vbox class="securityLevel-descriptionList indent"/> </vbox> </vbox> </radiogroup> ===================================== browser/components/securitylevel/locale/en-US/securityLevel.properties ===================================== @@ -13,9 +13,11 @@ security_level_learn_more = Learn more # Panel security_level_change = Change… +security_level_change_setting = Change Setting… security_level_standard_summary = All browser and website features are enabled. security_level_safer_summary = Disables website features that are often dangerous, causing some sites to lose functionality. security_level_safest_summary = Only allows website features required for static sites and basic services. These changes affect images, media, and scripts. +security_level_custom_heading = Warning! security_level_custom_summary = Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels. ## Security level section in about:preferences#privacy View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/90395b2… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/90395b2… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-102.6.0esr-12.0-1] 2 commits: fixup! Bug 16940: After update, load local change notes.
by Richard Pospesel (@richard) 09 Jan '23

09 Jan '23
Richard Pospesel pushed to branch tor-browser-102.6.0esr-12.0-1 at The Tor Project / Applications / Tor Browser Commits: 4b8dca0d by Pier Angelo Vendrame at 2023-01-09T20:34:21+00:00 fixup! Bug 16940: After update, load local change notes. Bug 41524: Read changelogs as UTF-8 - - - - - 7774a06e by Henry Wilkes at 2023-01-09T20:34:31+00:00 fixup! Bug 16940: After update, load local change notes. We make a number of related changed to improve the semantics and accessibility of the about:tbupdate page: + We parse and show the release notes as a bullet list. + We use paragraphs, headings and bullet list to structure content. + We stop using fixed &quot;px&quot; font sizes and use relative sizes instead. + Add a lang=&quot;en-US&quot; and dir=&quot;ltr&quot; attribute to the english text. - - - - - 4 changed files: - browser/actors/AboutTBUpdateParent.jsm - browser/base/content/abouttbupdate/aboutTBUpdate.css - browser/base/content/abouttbupdate/aboutTBUpdate.js - browser/base/content/abouttbupdate/aboutTBUpdate.xhtml Changes: ===================================== browser/actors/AboutTBUpdateParent.jsm ===================================== @@ -8,7 +8,6 @@ this.EXPORTED_SYMBOLS = ["AboutTBUpdateParent"]; const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); -const { NetUtil } = ChromeUtils.import("resource://gre/modules/NetUtil.jsm"); const { AppConstants } = ChromeUtils.import( "resource://gre/modules/AppConstants.jsm" ); @@ -22,9 +21,9 @@ const kRequestUpdateMessageName = "FetchUpdateData"; * implementation. */ class AboutTBUpdateParent extends JSWindowActorParent { - receiveMessage(aMessage) { + async receiveMessage(aMessage) { if (aMessage.name == kRequestUpdateMessageName) { - return this.releaseNoteInfo; + return this.getReleaseNoteInfo(); } return undefined; } @@ -51,7 +50,7 @@ class AboutTBUpdateParent extends JSWindowActorParent { // On Mac OS, when building with --enable-tor-browser-data-outside-app-dir // to support Gatekeeper signing, the ChangeLog.txt file is located in // TorBrowser.app/Contents/Resources/TorBrowser/Docs/. - get releaseNoteInfo() { + async getReleaseNoteInfo() { let info = { moreInfoURL: this.moreInfoURL }; try { @@ -74,46 +73,72 @@ class AboutTBUpdateParent extends JSWindowActorParent { f.append("Docs"); f.append("ChangeLog.txt"); - let fs = Cc["@mozilla.org/network/file-input-stream;1"].createInstance( - Ci.nsIFileInputStream - ); - fs.init(f, -1, 0, 0); - let s = NetUtil.readInputStreamToString(fs, fs.available()); - fs.close(); - - // Truncate at the first empty line. - s = s.replace(/[\r\n][\r\n][\s\S]*$/m, ""); - - // Split into first line (version plus releaseDate) and - // remainder (releaseNotes). - // This first match() uses multiline mode with two capture groups: - // first line: (.*$) - // remaining lines: ([\s\S]+) - // [\s\S] matches all characters including end of line. This trick - // is needed because when using JavaScript regex in multiline mode, - // . does not match an end of line character. - let matchArray = s.match(/(.*$)\s*([\s\S]+)/m); - if (matchArray && matchArray.length == 3) { - info.releaseNotes = matchArray[2]; - let line1 = matchArray[1]; - // Extract the version and releaseDate. The first line looks like: - // Tor Browser 8.5 -- May 1 2019 - // The regex uses two capture groups: - // text that does not include a hyphen: (^[^-]*) - // remaining text: (.*$) - // In between we match optional whitespace, one or more hyphens, and - // optional whitespace by using: \s*-+\s* - matchArray = line1.match(/(^[^-]*)\s*-+\s*(.*$)/); - if (matchArray && matchArray.length == 3) { - info.version = matchArray[1]; - info.releaseDate = matchArray[2]; + // NOTE: We load in the entire file, but only use the first few lines + // before the first blank line. + const logLines = (await IOUtils.readUTF8(f.path)) + .replace(/\n\r?\n.*/ms, "") + .split(/\n\r?/); + + // Read the first line to get the version and date. + // Assume everything after the last "-" is the date. + const firstLine = logLines.shift(); + const match = firstLine?.match(/(.*)-+(.*)/); + if (match) { + info.version = match[1].trim(); + info.releaseDate = match[2].trim(); + } else { + // No date. + info.version = firstLine?.trim(); + } + + // We want to read the rest of the release notes as a tree. Each entry + // will contain the text for that line. + // We choose a negative index for the top node of this tree to ensure no + // line will appear less indented. + const topEntry = { indent: -1, children: undefined }; + let prevEntry = topEntry; + + for (let line of logLines) { + const indent = line.match(/^ */)[0]; + line = line.trim(); + if (line.startsWith("*")) { + // Treat as a bullet point. + let entry = { + text: line.replace(/^\*\s/, ""), + indent: indent.length, + }; + let parentEntry; + if (entry.indent > prevEntry.indent) { + // A sub-list of the previous item. + prevEntry.children = []; + parentEntry = prevEntry; + } else { + // Same list or end of sub-list. + // Search for the first parent whose indent comes before ours. + parentEntry = prevEntry.parent; + while (entry.indent <= parentEntry.indent) { + parentEntry = parentEntry.parent; + } + } + entry.parent = parentEntry; + parentEntry.children.push(entry); + prevEntry = entry; + } else if (prevEntry === topEntry) { + // Unexpected, missing bullet point on first line. + // Place as its own bullet point instead, and set as prevEntry for the + // next loop. + prevEntry = { text: line, indent: indent.length, parent: topEntry }; + topEntry.children = [prevEntry]; } else { - info.version = line1; // Match failed: return entire line in version. + // Append to the previous bullet point. + prevEntry.text += ` ${line}`; } - } else { - info.releaseNotes = s; // Only one line: use as releaseNotes. } - } catch (e) {} + + info.releaseNotes = topEntry.children; + } catch (e) { + Cu.reportError(e); + } return info; } ===================================== browser/base/content/abouttbupdate/aboutTBUpdate.css ===================================== @@ -14,61 +14,54 @@ body { font-family: Helvetica, Arial, sans-serif; color: var(--abouttor-text-color); background-color: var(--abouttor-bg-toron-color); - background-attachment: fixed; - background-size: 100% 100%; -} - -a { - color: var(--abouttor-text-color); -} - -.two-column-grid { - display: inline-grid; + margin-block: 40px; + margin-inline: 50px; + display: grid; grid-template-columns: auto auto; - grid-column-gap: 50px; - margin: 10px 0px 0px 50px; + align-items: baseline; + gap: 40px 50px; } -.two-column-grid div { - margin-top: 40px; - align-self: baseline; /* Align baseline of text across the row. */ +body > *:not([hidden]) { + display: contents; } .label-column { - font-size: 14px; - font-weight: 400; + grid-column: 1; } -/* - * Use a reduced top margin to bring the row that contains the - * "visit our website" link closer to the row that precedes it. This - * looks better because the "visit our website" row does not have a - * label in the left column. - */ -div.more-info-row { - margin-top: 5px; - font-size: 14px; +.content { + grid-column: 2; + font-family: monospace; + line-height: 1.4; +} + +.label-column, .content { + margin: 0; + padding: 0; + font-size: 1rem; + font-weight: normal; } -#version-content { - font-size: 50px; - font-weight: 300; +a { + color: inherit; } -body:not([havereleasedate]) .release-date-cell { - display: none; +.no-line-break { + white-space: nowrap; } -#releasedate-content { - font-size: 17px; +ul { + padding-inline: 1em 0; } -#releasenotes-label { - align-self: start; /* Anchor "Release Notes" label at the top. */ +h3, h4 { + font-size: 1.1rem; + font-weight: bold; } -#releasenotes-content { - font-family: monospace; - font-size: 15px; - white-space: pre; +h3.build-system-heading { + font-size: 1.5rem; + font-weight: normal; + margin-block-start: 3em; } ===================================== browser/base/content/abouttbupdate/aboutTBUpdate.js ===================================== @@ -5,23 +5,105 @@ /* eslint-env mozilla/frame-script */ -// aData may contain the following string properties: -// version -// releaseDate -// moreInfoURL -// releaseNotes -function onUpdate(aData) { - document.getElementById("version-content").textContent = aData.version; - if (aData.releaseDate) { - document.body.setAttribute("havereleasedate", "true"); - document.getElementById("releasedate-content").textContent = - aData.releaseDate; +/** + * An object representing a bullet point in the release notes. + * + * typedef {Object} ReleaseBullet + * @property {string} text - The text for this bullet point. + * @property {?Array<ReleaseBullet>} children - A sub-list of bullet points. + */ + +/** + * Fill an element with the given list of release bullet points. + * + * @param {Element} container - The element to fill with bullet points. + * @param {Array<ReleaseBullet>} bulletPoints - The list of bullet points. + * @param {string} [childTag="h3"] - The element tag name to use for direct + * children. Initially, the children are h3 sub-headings. + */ +function fillReleaseNotes(container, bulletPoints, childTag = "h3") { + for (const { text, children } of bulletPoints) { + const childEl = document.createElement(childTag); + // Keep dashes like "[tor-browser]" on the same line by nowrapping the word. + for (const [index, part] of text.split(/(\S+-\S+)/).entries()) { + if (!part) { + continue; + } + const span = document.createElement("span"); + span.textContent = part; + span.classList.toggle("no-line-break", index % 2); + childEl.appendChild(span); + } + container.appendChild(childEl); + if (children) { + if (childTag == "h3" && text.toLowerCase() === "build system") { + // Special case: treat the "Build System" heading's children as + // sub-headings. + childEl.classList.add("build-system-heading"); + fillReleaseNotes(container, children, "h4"); + } else { + const listEl = document.createElement("ul"); + fillReleaseNotes(listEl, children, "li"); + if (childTag == "li") { + // Insert within the "li" element. + childEl.appendChild(listEl); + } else { + container.appendChild(listEl); + } + } + } + } +} + +/** + * Set the content for the specified container, or hide it if we have no + * content. + * + * @template C + * @param {string} containerId - The id for the container. + * @param {?C} content - The content for this container, or a falsey value if + * the container has no content. + * @param {function(contentEl: Elemenet, content: C)} [fillContent] - A function + * to fill the ".content" contentEl with the given 'content'. If unspecified, + * the 'content' will become the contentEl's textContent. + */ +function setContent(containerId, content, fillContent) { + const container = document.getElementById(containerId); + if (!content) { + container.hidden = true; + return; } + const contentEl = container.querySelector(".content"); + // Release notes are only in English. + contentEl.setAttribute("lang", "en-US"); + contentEl.setAttribute("dir", "ltr"); + if (fillContent) { + fillContent(contentEl, content); + } else { + contentEl.textContent = content; + } +} + +/** + * Callback when we receive the update details. + * + * @param {Object} aData - The update details. + * @param {?string} aData.version - The update version. + * @param {?string} aData.releaseDate - The release date. + * @param {?string} aData.moreInfoURL - A URL for more info. + * @param {?Array<ReleaseBullet>} aData.releaseNotes - Release notes as bullet + * points. + */ +function onUpdate(aData) { + setContent("version-row", aData.version); + setContent("releasedate-row", aData.releaseDate); + setContent("releasenotes", aData.releaseNotes, fillReleaseNotes); + if (aData.moreInfoURL) { document.getElementById("infolink").setAttribute("href", aData.moreInfoURL); + } else { + document.getElementById("fullinfo").hidden = true; } - document.getElementById("releasenotes-content").textContent = - aData.releaseNotes; } RPMSendQuery("FetchUpdateData").then(onUpdate); ===================================== browser/base/content/abouttbupdate/aboutTBUpdate.xhtml ===================================== @@ -21,19 +21,26 @@ type="text/javascript"/> </head> <body dir="&locale.dir;"> -<div class="two-column-grid"> - <div class="label-column">&aboutTBUpdate.version;</div> - <div id="version-content"/> - - <div class="label-column release-date-cell">&aboutTBUpdate.releaseDate;</div> - <div id="releasedate-content" class="release-date-cell"/> - - <div class="more-info-row"/> - <div class="more-info-row">&aboutTBUpdate.linkPrefix;<a id="infolink">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix;</div> - - <div id="releasenotes-label" - class="label-column">&aboutTBUpdate.releaseNotes;</div> - <div id="releasenotes-content"></div> -</div> + <!-- NOTE: We don't use the <dl>, <dt> and <dd> elements to form name-value + - pairs because this semantics is relatively new, whilst firefox + - currently still maps these to the more limited "definitionlist", "term" + - and "definition" roles. --> + <div id="version-row"> + <span class="label-column">&aboutTBUpdate.version;</span> + <span class="content"></span> + </div> + <div id="releasedate-row"> + <span class="label-column">&aboutTBUpdate.releaseDate;</span> + <span class="content"></span> + </div> + <div id="fullinfo"> + <p class="content"> + &aboutTBUpdate.linkPrefix;<a id="infolink">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix; + </p> + </div> + <section id="releasenotes"> + <h2 class="label-column">&aboutTBUpdate.releaseNotes;</h2> + <div class="content"></div> + </section> </body> </html> View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/4177d7… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/4177d7… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-102.6.0esr-12.5-1] fixup! Bug 16940: After update, load local change notes.
by Richard Pospesel (@richard) 09 Jan '23

09 Jan '23
Richard Pospesel pushed to branch tor-browser-102.6.0esr-12.5-1 at The Tor Project / Applications / Tor Browser Commits: 9714187f by Henry Wilkes at 2023-01-09T20:07:59+00:00 fixup! Bug 16940: After update, load local change notes. We make a number of related changed to improve the semantics and accessibility of the about:tbupdate page: + We parse and show the release notes as a bullet list. + We use paragraphs, headings and bullet list to structure content. + We stop using fixed &quot;px&quot; font sizes and use relative sizes instead. + Add a lang=&quot;en-US&quot; and dir=&quot;ltr&quot; attribute to the english text. - - - - - 4 changed files: - browser/actors/AboutTBUpdateParent.jsm - browser/base/content/abouttbupdate/aboutTBUpdate.css - browser/base/content/abouttbupdate/aboutTBUpdate.js - browser/base/content/abouttbupdate/aboutTBUpdate.xhtml Changes: ===================================== browser/actors/AboutTBUpdateParent.jsm ===================================== @@ -8,7 +8,6 @@ this.EXPORTED_SYMBOLS = ["AboutTBUpdateParent"]; const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); -const { NetUtil } = ChromeUtils.import("resource://gre/modules/NetUtil.jsm"); const { AppConstants } = ChromeUtils.import( "resource://gre/modules/AppConstants.jsm" ); @@ -74,41 +73,72 @@ class AboutTBUpdateParent extends JSWindowActorParent { f.append("Docs"); f.append("ChangeLog.txt"); - let s = await IOUtils.readUTF8(f.path); - - // Truncate at the first empty line. - s = s.replace(/[\r\n][\r\n][\s\S]*$/m, ""); - - // Split into first line (version plus releaseDate) and - // remainder (releaseNotes). - // This first match() uses multiline mode with two capture groups: - // first line: (.*$) - // remaining lines: ([\s\S]+) - // [\s\S] matches all characters including end of line. This trick - // is needed because when using JavaScript regex in multiline mode, - // . does not match an end of line character. - let matchArray = s.match(/(.*$)\s*([\s\S]+)/m); - if (matchArray && matchArray.length == 3) { - info.releaseNotes = matchArray[2]; - let line1 = matchArray[1]; - // Extract the version and releaseDate. The first line looks like: - // Tor Browser 8.5 -- May 1 2019 - // The regex uses two capture groups: - // text that does not include a hyphen: (^[^-]*) - // remaining text: (.*$) - // In between we match optional whitespace, one or more hyphens, and - // optional whitespace by using: \s*-+\s* - matchArray = line1.match(/(^[^-]*)\s*-+\s*(.*$)/); - if (matchArray && matchArray.length == 3) { - info.version = matchArray[1]; - info.releaseDate = matchArray[2]; + // NOTE: We load in the entire file, but only use the first few lines + // before the first blank line. + const logLines = (await IOUtils.readUTF8(f.path)) + .replace(/\n\r?\n.*/ms, "") + .split(/\n\r?/); + + // Read the first line to get the version and date. + // Assume everything after the last "-" is the date. + const firstLine = logLines.shift(); + const match = firstLine?.match(/(.*)-+(.*)/); + if (match) { + info.version = match[1].trim(); + info.releaseDate = match[2].trim(); + } else { + // No date. + info.version = firstLine?.trim(); + } + + // We want to read the rest of the release notes as a tree. Each entry + // will contain the text for that line. + // We choose a negative index for the top node of this tree to ensure no + // line will appear less indented. + const topEntry = { indent: -1, children: undefined }; + let prevEntry = topEntry; + + for (let line of logLines) { + const indent = line.match(/^ */)[0]; + line = line.trim(); + if (line.startsWith("*")) { + // Treat as a bullet point. + let entry = { + text: line.replace(/^\*\s/, ""), + indent: indent.length, + }; + let parentEntry; + if (entry.indent > prevEntry.indent) { + // A sub-list of the previous item. + prevEntry.children = []; + parentEntry = prevEntry; + } else { + // Same list or end of sub-list. + // Search for the first parent whose indent comes before ours. + parentEntry = prevEntry.parent; + while (entry.indent <= parentEntry.indent) { + parentEntry = parentEntry.parent; + } + } + entry.parent = parentEntry; + parentEntry.children.push(entry); + prevEntry = entry; + } else if (prevEntry === topEntry) { + // Unexpected, missing bullet point on first line. + // Place as its own bullet point instead, and set as prevEntry for the + // next loop. + prevEntry = { text: line, indent: indent.length, parent: topEntry }; + topEntry.children = [prevEntry]; } else { - info.version = line1; // Match failed: return entire line in version. + // Append to the previous bullet point. + prevEntry.text += ` ${line}`; } - } else { - info.releaseNotes = s; // Only one line: use as releaseNotes. } - } catch (e) {} + + info.releaseNotes = topEntry.children; + } catch (e) { + Cu.reportError(e); + } return info; } ===================================== browser/base/content/abouttbupdate/aboutTBUpdate.css ===================================== @@ -14,61 +14,54 @@ body { font-family: Helvetica, Arial, sans-serif; color: var(--abouttor-text-color); background-color: var(--abouttor-bg-toron-color); - background-attachment: fixed; - background-size: 100% 100%; -} - -a { - color: var(--abouttor-text-color); -} - -.two-column-grid { - display: inline-grid; + margin-block: 40px; + margin-inline: 50px; + display: grid; grid-template-columns: auto auto; - grid-column-gap: 50px; - margin: 10px 0px 0px 50px; + align-items: baseline; + gap: 40px 50px; } -.two-column-grid div { - margin-top: 40px; - align-self: baseline; /* Align baseline of text across the row. */ +body > *:not([hidden]) { + display: contents; } .label-column { - font-size: 14px; - font-weight: 400; + grid-column: 1; } -/* - * Use a reduced top margin to bring the row that contains the - * "visit our website" link closer to the row that precedes it. This - * looks better because the "visit our website" row does not have a - * label in the left column. - */ -div.more-info-row { - margin-top: 5px; - font-size: 14px; +.content { + grid-column: 2; + font-family: monospace; + line-height: 1.4; +} + +.label-column, .content { + margin: 0; + padding: 0; + font-size: 1rem; + font-weight: normal; } -#version-content { - font-size: 50px; - font-weight: 300; +a { + color: inherit; } -body:not([havereleasedate]) .release-date-cell { - display: none; +.no-line-break { + white-space: nowrap; } -#releasedate-content { - font-size: 17px; +ul { + padding-inline: 1em 0; } -#releasenotes-label { - align-self: start; /* Anchor "Release Notes" label at the top. */ +h3, h4 { + font-size: 1.1rem; + font-weight: bold; } -#releasenotes-content { - font-family: monospace; - font-size: 15px; - white-space: pre; +h3.build-system-heading { + font-size: 1.5rem; + font-weight: normal; + margin-block-start: 3em; } ===================================== browser/base/content/abouttbupdate/aboutTBUpdate.js ===================================== @@ -5,23 +5,105 @@ /* eslint-env mozilla/frame-script */ -// aData may contain the following string properties: -// version -// releaseDate -// moreInfoURL -// releaseNotes -function onUpdate(aData) { - document.getElementById("version-content").textContent = aData.version; - if (aData.releaseDate) { - document.body.setAttribute("havereleasedate", "true"); - document.getElementById("releasedate-content").textContent = - aData.releaseDate; +/** + * An object representing a bullet point in the release notes. + * + * typedef {Object} ReleaseBullet + * @property {string} text - The text for this bullet point. + * @property {?Array<ReleaseBullet>} children - A sub-list of bullet points. + */ + +/** + * Fill an element with the given list of release bullet points. + * + * @param {Element} container - The element to fill with bullet points. + * @param {Array<ReleaseBullet>} bulletPoints - The list of bullet points. + * @param {string} [childTag="h3"] - The element tag name to use for direct + * children. Initially, the children are h3 sub-headings. + */ +function fillReleaseNotes(container, bulletPoints, childTag = "h3") { + for (const { text, children } of bulletPoints) { + const childEl = document.createElement(childTag); + // Keep dashes like "[tor-browser]" on the same line by nowrapping the word. + for (const [index, part] of text.split(/(\S+-\S+)/).entries()) { + if (!part) { + continue; + } + const span = document.createElement("span"); + span.textContent = part; + span.classList.toggle("no-line-break", index % 2); + childEl.appendChild(span); + } + container.appendChild(childEl); + if (children) { + if (childTag == "h3" && text.toLowerCase() === "build system") { + // Special case: treat the "Build System" heading's children as + // sub-headings. + childEl.classList.add("build-system-heading"); + fillReleaseNotes(container, children, "h4"); + } else { + const listEl = document.createElement("ul"); + fillReleaseNotes(listEl, children, "li"); + if (childTag == "li") { + // Insert within the "li" element. + childEl.appendChild(listEl); + } else { + container.appendChild(listEl); + } + } + } + } +} + +/** + * Set the content for the specified container, or hide it if we have no + * content. + * + * @template C + * @param {string} containerId - The id for the container. + * @param {?C} content - The content for this container, or a falsey value if + * the container has no content. + * @param {function(contentEl: Elemenet, content: C)} [fillContent] - A function + * to fill the ".content" contentEl with the given 'content'. If unspecified, + * the 'content' will become the contentEl's textContent. + */ +function setContent(containerId, content, fillContent) { + const container = document.getElementById(containerId); + if (!content) { + container.hidden = true; + return; } + const contentEl = container.querySelector(".content"); + // Release notes are only in English. + contentEl.setAttribute("lang", "en-US"); + contentEl.setAttribute("dir", "ltr"); + if (fillContent) { + fillContent(contentEl, content); + } else { + contentEl.textContent = content; + } +} + +/** + * Callback when we receive the update details. + * + * @param {Object} aData - The update details. + * @param {?string} aData.version - The update version. + * @param {?string} aData.releaseDate - The release date. + * @param {?string} aData.moreInfoURL - A URL for more info. + * @param {?Array<ReleaseBullet>} aData.releaseNotes - Release notes as bullet + * points. + */ +function onUpdate(aData) { + setContent("version-row", aData.version); + setContent("releasedate-row", aData.releaseDate); + setContent("releasenotes", aData.releaseNotes, fillReleaseNotes); + if (aData.moreInfoURL) { document.getElementById("infolink").setAttribute("href", aData.moreInfoURL); + } else { + document.getElementById("fullinfo").hidden = true; } - document.getElementById("releasenotes-content").textContent = - aData.releaseNotes; } RPMSendQuery("FetchUpdateData").then(onUpdate); ===================================== browser/base/content/abouttbupdate/aboutTBUpdate.xhtml ===================================== @@ -21,19 +21,26 @@ type="text/javascript"/> </head> <body dir="&locale.dir;"> -<div class="two-column-grid"> - <div class="label-column">&aboutTBUpdate.version;</div> - <div id="version-content"/> - - <div class="label-column release-date-cell">&aboutTBUpdate.releaseDate;</div> - <div id="releasedate-content" class="release-date-cell"/> - - <div class="more-info-row"/> - <div class="more-info-row">&aboutTBUpdate.linkPrefix;<a id="infolink">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix;</div> - - <div id="releasenotes-label" - class="label-column">&aboutTBUpdate.releaseNotes;</div> - <div id="releasenotes-content"></div> -</div> + <!-- NOTE: We don't use the <dl>, <dt> and <dd> elements to form name-value + - pairs because this semantics is relatively new, whilst firefox + - currently still maps these to the more limited "definitionlist", "term" + - and "definition" roles. --> + <div id="version-row"> + <span class="label-column">&aboutTBUpdate.version;</span> + <span class="content"></span> + </div> + <div id="releasedate-row"> + <span class="label-column">&aboutTBUpdate.releaseDate;</span> + <span class="content"></span> + </div> + <div id="fullinfo"> + <p class="content"> + &aboutTBUpdate.linkPrefix;<a id="infolink">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix; + </p> + </div> + <section id="releasenotes"> + <h2 class="label-column">&aboutTBUpdate.releaseNotes;</h2> + <div class="content"></div> + </section> </body> </html> View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/9714187… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/9714187… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-102.6.0esr-12.0-1] Bug 41506: Distrust TrustCor root certificates after 2022-11-30.
by Richard Pospesel (@richard) 09 Jan '23

09 Jan '23
Richard Pospesel pushed to branch tor-browser-102.6.0esr-12.0-1 at The Tor Project / Applications / Tor Browser Commits: 4177d7e9 by hackademix at 2023-01-09T19:39:13+00:00 Bug 41506: Distrust TrustCor root certificates after 2022-11-30. (cherry picked from commit fb7cbedd86fd6960639e87f8ed6692ba4c1d3068) - - - - - 1 changed file: - security/nss/lib/ckfw/builtins/certdata.txt Changes: ===================================== security/nss/lib/ckfw/builtins/certdata.txt ===================================== @@ -15730,8 +15730,14 @@ CKA_VALUE MULTILINE_OCTAL \132\171\054\031 END CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE +# For Server Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END +# For Email Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END # Trust for "TrustCor RootCert CA-1" # Issuer: CN=TrustCor RootCert CA-1,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA @@ -15923,8 +15929,15 @@ CKA_VALUE MULTILINE_OCTAL \326\354\011 END CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE +# For Server Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END +# For Email Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END + # Trust for "TrustCor RootCert CA-2" # Issuer: CN=TrustCor RootCert CA-2,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA @@ -16081,8 +16094,14 @@ CKA_VALUE MULTILINE_OCTAL \264\237\327\346 END CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE +# For Server Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END +# For Email Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END # Trust for "TrustCor ECA-1" # Issuer: CN=TrustCor ECA-1,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/4177d7e… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/4177d7e… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-102.6.0esr-12.5-1] Bug 41506: Distrust TrustCor root certificates after 2022-11-30.
by Richard Pospesel (@richard) 09 Jan '23

09 Jan '23
Richard Pospesel pushed to branch tor-browser-102.6.0esr-12.5-1 at The Tor Project / Applications / Tor Browser Commits: fb7cbedd by hackademix at 2023-01-09T20:29:33+01:00 Bug 41506: Distrust TrustCor root certificates after 2022-11-30. - - - - - 1 changed file: - security/nss/lib/ckfw/builtins/certdata.txt Changes: ===================================== security/nss/lib/ckfw/builtins/certdata.txt ===================================== @@ -15730,8 +15730,14 @@ CKA_VALUE MULTILINE_OCTAL \132\171\054\031 END CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE +# For Server Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END +# For Email Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END # Trust for "TrustCor RootCert CA-1" # Issuer: CN=TrustCor RootCert CA-1,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA @@ -15923,8 +15929,15 @@ CKA_VALUE MULTILINE_OCTAL \326\354\011 END CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE +# For Server Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END +# For Email Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END + # Trust for "TrustCor RootCert CA-2" # Issuer: CN=TrustCor RootCert CA-2,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA @@ -16081,8 +16094,14 @@ CKA_VALUE MULTILINE_OCTAL \264\237\327\346 END CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE +# For Server Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END +# For Email Distrust After: Wed Nov 30 00:00:00 2022 +CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL +\062\062\061\061\063\060\060\060\060\060\060\060\132 +END # Trust for "TrustCor ECA-1" # Issuer: CN=TrustCor ECA-1,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/fb7cbed… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/fb7cbed… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • ...
  • 1881
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.