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
Download
Threads by month
  • ----- 2025 -----
  • 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
  • 18530 discussions
[Git][tpo/applications/tor-browser] Pushed new tag tor-browser-128.8.0esr-14.5-1-build2
by ma1 (@ma1) 11 Mar '25

11 Mar '25
ma1 pushed new tag tor-browser-128.8.0esr-14.5-1-build2 at The Tor Project / Applications / Tor Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/tor-brows… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.8.0esr-14.5-1] 5 commits: Bug 1908488 - Improve dialogs. r=android-reviewers,gmalekpour, a=dmeehan [bp]
by ma1 (@ma1) 11 Mar '25

11 Mar '25
ma1 pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: 7b6625d5 by Tara at 2025-03-11T16:09:32+01:00 Bug 1908488 - Improve dialogs. r=android-reviewers,gmalekpour, a=dmeehan [bp] Differential Revision: https://phabricator.services.mozilla.com/D236606 - - - - - 3915453d by John Schanck at 2025-03-11T16:09:33+01:00 Bug 1922357 - disallow the fido: URI scheme. a=dmeehan Original Revision: https://phabricator.services.mozilla.com/D237313 Differential Revision: https://phabricator.services.mozilla.com/D238681 - - - - - 3d4b0928 by Jeff Boek at 2025-03-11T16:09:34+01:00 Bug 1928334 - Handles animating activities a=dmeehan Original Revision: https://phabricator.services.mozilla.com/D238342 Differential Revision: https://phabricator.services.mozilla.com/D238845 - - - - - 793ba006 by Tom Schuster at 2025-03-11T16:09:36+01:00 Bug 1942022 - Improve the about:protections CSP. r=firefox-desktop-core-reviewers ,mossop Differential Revision: https://phabricator.services.mozilla.com/D234507 - - - - - b4b62a4c by Tom Schuster at 2025-03-11T16:09:37+01:00 Bug 1942025 - Improve the about:privatebrowsing CSP. r=firefox-desktop-core-reviewers ,Gijs Differential Revision: https://phabricator.services.mozilla.com/D234508 - - - - - 11 changed files: - browser/components/privatebrowsing/content/aboutPrivateBrowsing.html - browser/components/protections/content/protections.html - mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt - mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt - mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt - mobile/android/android-components/components/feature/app-links/src/test/java/mozilla/components/feature/app/links/AppLinksUseCasesTest.kt - mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt - mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java - mobile/android/geckoview/src/test/java/org/mozilla/gecko/util/IntentUtilsTest.java Changes: ===================================== browser/components/privatebrowsing/content/aboutPrivateBrowsing.html ===================================== @@ -10,7 +10,7 @@ <meta charset="utf-8" /> <meta http-equiv="Content-Security-Policy" - content="default-src chrome: blob:; object-src 'none'" + content="default-src chrome:; img-src chrome: blob:; object-src 'none';" /> <meta name="color-scheme" content="light dark" /> <link rel="icon" href="chrome://browser/skin/privatebrowsing/favicon.svg" /> ===================================== browser/components/protections/content/protections.html ===================================== @@ -8,7 +8,7 @@ <meta charset="utf-8" /> <meta http-equiv="Content-Security-Policy" - content="default-src chrome: blob:; object-src 'none'" + content="default-src chrome:; object-src 'none'" /> <meta name="color-scheme" content="light dark" /> <link rel="localization" href="branding/brand.ftl" /> ===================================== mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt ===================================== @@ -1822,7 +1822,7 @@ class GeckoEngineSession( internal const val ABOUT_BLANK = "about:blank" internal const val JS_SCHEME = "javascript" internal val BLOCKED_SCHEMES = - listOf("file", "resource", JS_SCHEME) // See 1684761 and 1684947 + listOf("file", "resource", "fido", JS_SCHEME) // See 1684761 and 1684947 /** * Provides an ErrorType corresponding to the error code provided. ===================================== mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt ===================================== @@ -631,6 +631,11 @@ class GeckoEngineSessionTest { engineSession.loadUrl("RESOURCE://package/test.text") verify(geckoSession, never()).load(GeckoSession.Loader().uri("resource://package/test.text")) verify(geckoSession, never()).load(GeckoSession.Loader().uri("RESOURCE://package/test.text")) + + engineSession.loadUrl("fido:/12345678") + engineSession.loadUrl("FIDO:/12345678") + verify(geckoSession, never()).load(GeckoSession.Loader().uri("fido:/12345678")) + verify(geckoSession, never()).load(GeckoSession.Loader().uri("FIDO:/12345678")) } @Test ===================================== mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt ===================================== @@ -314,6 +314,7 @@ class AppLinksUseCases( "https", "moz-extension", "moz-safe-about", "resource", "view-source", "ws", "wss", "blob", ) - internal val ALWAYS_DENY_SCHEMES: Set<String> = setOf("jar", "file", "javascript", "data", "about", "content") + internal val ALWAYS_DENY_SCHEMES: Set<String> = + setOf("jar", "file", "javascript", "data", "about", "content", "fido") } } ===================================== mobile/android/android-components/components/feature/app-links/src/test/java/mozilla/components/feature/app/links/AppLinksUseCasesTest.kt ===================================== @@ -47,6 +47,7 @@ class AppLinksUseCasesTest { private val javascriptUrl = "javascript:'hello, world'" private val jarUrl = "jar:file://some/path/test.html" private val contentUrl = "content://media/external_primary/downloads/12345" + private val fidoPath = "fido:12345678" private val fileType = "audio/mpeg" private val layerUrl = "https://example.com" private val layerPackage = "com.example.app" @@ -215,6 +216,15 @@ class AppLinksUseCasesTest { assertFalse(redirect.isRedirect()) } + @Test + fun `A fido url is not an app link`() { + val context = createContext(Triple(fidoPath, appPackage, "")) + val subject = AppLinksUseCases(context, { true }) + + val redirect = subject.interceptedAppLinkRedirect(fidoPath) + assertFalse(redirect.isRedirect()) + } + @Test fun `Will not redirect app link if browser option set to false and scheme is supported`() { val context = createContext(Triple(appUrl, appPackage, "")) ===================================== mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt ===================================== @@ -9,6 +9,7 @@ import android.content.Intent import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting.Companion.PRIVATE import androidx.core.view.isVisible +import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import kotlinx.coroutines.CoroutineScope @@ -1094,7 +1095,15 @@ class PromptFeature private constructor( emitPromptDismissedFact(promptName = promptRequest::class.simpleName.ifNullOrEmpty { "" }) } + @VisibleForTesting + internal fun redirectDialogFragmentIsActive() = + (fragmentManager.findFragmentByTag("SHOULD_OPEN_APP_LINK_PROMPT_DIALOG") as? DialogFragment) != null + private fun canShowThisPrompt(promptRequest: PromptRequest): Boolean { + if (redirectDialogFragmentIsActive()) { + return false + } + return when (promptRequest) { is SingleChoice, is MultipleChoice, ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -905,7 +905,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn return false } - final override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { + override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { ProfilerMarkers.addForDispatchTouchEvent(components.core.engine.profiler, ev) return super.dispatchTouchEvent(ev) } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt ===================================== @@ -7,6 +7,7 @@ package org.mozilla.fenix.customtabs import android.app.assist.AssistContent import android.net.Uri import android.os.Build +import android.view.MotionEvent import androidx.annotation.RequiresApi import androidx.annotation.VisibleForTesting import mozilla.components.browser.state.selector.findCustomTab @@ -24,6 +25,8 @@ const val EXTRA_IS_SANDBOX_CUSTOM_TAB = "org.mozilla.fenix.customtabs.EXTRA_IS_S */ @Suppress("TooManyFunctions") open class ExternalAppBrowserActivity : HomeActivity() { + var isFinishedAnimating = false + override fun onResume() { super.onResume() @@ -74,4 +77,17 @@ open class ExternalAppBrowserActivity : HomeActivity() { val currentTabUrl = getExternalTab()?.content?.url outContent?.webUri = currentTabUrl?.let { Uri.parse(it) } } + + override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { + if (!isFinishedAnimating) { + return true + } + + return super.dispatchTouchEvent(ev) + } + + override fun onEnterAnimationComplete() { + super.onEnterAnimationComplete() + isFinishedAnimating = true + } } ===================================== mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java ===================================== @@ -76,6 +76,10 @@ public class IntentUtils { return getSafeIntent(aUri) != null; } + if ("fido".equals(scheme)) { + return false; + } + return true; } ===================================== mobile/android/geckoview/src/test/java/org/mozilla/gecko/util/IntentUtilsTest.java ===================================== @@ -63,4 +63,10 @@ public class IntentUtilsTest { final String uri = "intent:non_scheme_intent#Intent;end"; assertTrue(IntentUtils.isUriSafeForScheme(uri)); } + + @Test + public void unsafeFidoUri() { + final String uri = "fido:/12345678"; + assertFalse(IntentUtils.isUriSafeForScheme(uri)); + } } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/d2b56b… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/d2b56b… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser] Pushed new tag base-browser-128.8.0esr-14.5-1-build2
by ma1 (@ma1) 11 Mar '25

11 Mar '25
ma1 pushed new tag base-browser-128.8.0esr-14.5-1-build2 at The Tor Project / Applications / Tor Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/base-brow… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-128.8.0esr-14.5-1] 5 commits: Bug 1908488 - Improve dialogs. r=android-reviewers,gmalekpour, a=dmeehan [bp]
by ma1 (@ma1) 11 Mar '25

11 Mar '25
ma1 pushed to branch base-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: 21515074 by Tara at 2025-03-11T15:57:27+01:00 Bug 1908488 - Improve dialogs. r=android-reviewers,gmalekpour, a=dmeehan [bp] Differential Revision: https://phabricator.services.mozilla.com/D236606 - - - - - d5800762 by John Schanck at 2025-03-11T15:57:32+01:00 Bug 1922357 - disallow the fido: URI scheme. a=dmeehan Original Revision: https://phabricator.services.mozilla.com/D237313 Differential Revision: https://phabricator.services.mozilla.com/D238681 - - - - - 9faca754 by Jeff Boek at 2025-03-11T15:57:33+01:00 Bug 1928334 - Handles animating activities a=dmeehan Original Revision: https://phabricator.services.mozilla.com/D238342 Differential Revision: https://phabricator.services.mozilla.com/D238845 - - - - - 7759f889 by Tom Schuster at 2025-03-11T15:57:35+01:00 Bug 1942022 - Improve the about:protections CSP. r=firefox-desktop-core-reviewers ,mossop Differential Revision: https://phabricator.services.mozilla.com/D234507 - - - - - 0beebec4 by Tom Schuster at 2025-03-11T15:57:36+01:00 Bug 1942025 - Improve the about:privatebrowsing CSP. r=firefox-desktop-core-reviewers ,Gijs Differential Revision: https://phabricator.services.mozilla.com/D234508 - - - - - 11 changed files: - browser/components/privatebrowsing/content/aboutPrivateBrowsing.html - browser/components/protections/content/protections.html - mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt - mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt - mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt - mobile/android/android-components/components/feature/app-links/src/test/java/mozilla/components/feature/app/links/AppLinksUseCasesTest.kt - mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt - mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java - mobile/android/geckoview/src/test/java/org/mozilla/gecko/util/IntentUtilsTest.java Changes: ===================================== browser/components/privatebrowsing/content/aboutPrivateBrowsing.html ===================================== @@ -10,7 +10,7 @@ <meta charset="utf-8" /> <meta http-equiv="Content-Security-Policy" - content="default-src chrome: blob:; object-src 'none'" + content="default-src chrome:; img-src chrome: blob:; object-src 'none';" /> <meta name="color-scheme" content="light dark" /> <link rel="icon" href="chrome://browser/skin/privatebrowsing/favicon.svg" /> ===================================== browser/components/protections/content/protections.html ===================================== @@ -8,7 +8,7 @@ <meta charset="utf-8" /> <meta http-equiv="Content-Security-Policy" - content="default-src chrome: blob:; object-src 'none'" + content="default-src chrome:; object-src 'none'" /> <meta name="color-scheme" content="light dark" /> <link rel="localization" href="branding/brand.ftl" /> ===================================== mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt ===================================== @@ -1818,7 +1818,7 @@ class GeckoEngineSession( internal const val ABOUT_BLANK = "about:blank" internal const val JS_SCHEME = "javascript" internal val BLOCKED_SCHEMES = - listOf("file", "resource", JS_SCHEME) // See 1684761 and 1684947 + listOf("file", "resource", "fido", JS_SCHEME) // See 1684761 and 1684947 /** * Provides an ErrorType corresponding to the error code provided. ===================================== mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt ===================================== @@ -631,6 +631,11 @@ class GeckoEngineSessionTest { engineSession.loadUrl("RESOURCE://package/test.text") verify(geckoSession, never()).load(GeckoSession.Loader().uri("resource://package/test.text")) verify(geckoSession, never()).load(GeckoSession.Loader().uri("RESOURCE://package/test.text")) + + engineSession.loadUrl("fido:/12345678") + engineSession.loadUrl("FIDO:/12345678") + verify(geckoSession, never()).load(GeckoSession.Loader().uri("fido:/12345678")) + verify(geckoSession, never()).load(GeckoSession.Loader().uri("FIDO:/12345678")) } @Test ===================================== mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt ===================================== @@ -313,6 +313,7 @@ class AppLinksUseCases( "https", "moz-extension", "moz-safe-about", "resource", "view-source", "ws", "wss", "blob", ) - internal val ALWAYS_DENY_SCHEMES: Set<String> = setOf("jar", "file", "javascript", "data", "about", "content") + internal val ALWAYS_DENY_SCHEMES: Set<String> = + setOf("jar", "file", "javascript", "data", "about", "content", "fido") } } ===================================== mobile/android/android-components/components/feature/app-links/src/test/java/mozilla/components/feature/app/links/AppLinksUseCasesTest.kt ===================================== @@ -47,6 +47,7 @@ class AppLinksUseCasesTest { private val javascriptUrl = "javascript:'hello, world'" private val jarUrl = "jar:file://some/path/test.html" private val contentUrl = "content://media/external_primary/downloads/12345" + private val fidoPath = "fido:12345678" private val fileType = "audio/mpeg" private val layerUrl = "https://example.com" private val layerPackage = "com.example.app" @@ -215,6 +216,15 @@ class AppLinksUseCasesTest { assertFalse(redirect.isRedirect()) } + @Test + fun `A fido url is not an app link`() { + val context = createContext(Triple(fidoPath, appPackage, "")) + val subject = AppLinksUseCases(context, { true }) + + val redirect = subject.interceptedAppLinkRedirect(fidoPath) + assertFalse(redirect.isRedirect()) + } + @Test fun `Will not redirect app link if browser option set to false and scheme is supported`() { val context = createContext(Triple(appUrl, appPackage, "")) ===================================== mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt ===================================== @@ -9,6 +9,7 @@ import android.content.Intent import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting.Companion.PRIVATE import androidx.core.view.isVisible +import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import kotlinx.coroutines.CoroutineScope @@ -1094,7 +1095,15 @@ class PromptFeature private constructor( emitPromptDismissedFact(promptName = promptRequest::class.simpleName.ifNullOrEmpty { "" }) } + @VisibleForTesting + internal fun redirectDialogFragmentIsActive() = + (fragmentManager.findFragmentByTag("SHOULD_OPEN_APP_LINK_PROMPT_DIALOG") as? DialogFragment) != null + private fun canShowThisPrompt(promptRequest: PromptRequest): Boolean { + if (redirectDialogFragmentIsActive()) { + return false + } + return when (promptRequest) { is SingleChoice, is MultipleChoice, ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -798,7 +798,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { return false } - final override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { + override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { ProfilerMarkers.addForDispatchTouchEvent(components.core.engine.profiler, ev) return super.dispatchTouchEvent(ev) } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt ===================================== @@ -7,6 +7,7 @@ package org.mozilla.fenix.customtabs import android.app.assist.AssistContent import android.net.Uri import android.os.Build +import android.view.MotionEvent import androidx.annotation.RequiresApi import androidx.annotation.VisibleForTesting import mozilla.components.browser.state.selector.findCustomTab @@ -24,6 +25,8 @@ const val EXTRA_IS_SANDBOX_CUSTOM_TAB = "org.mozilla.fenix.customtabs.EXTRA_IS_S */ @Suppress("TooManyFunctions") open class ExternalAppBrowserActivity : HomeActivity() { + var isFinishedAnimating = false + override fun onResume() { super.onResume() @@ -74,4 +77,17 @@ open class ExternalAppBrowserActivity : HomeActivity() { val currentTabUrl = getExternalTab()?.content?.url outContent?.webUri = currentTabUrl?.let { Uri.parse(it) } } + + override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { + if (!isFinishedAnimating) { + return true + } + + return super.dispatchTouchEvent(ev) + } + + override fun onEnterAnimationComplete() { + super.onEnterAnimationComplete() + isFinishedAnimating = true + } } ===================================== mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java ===================================== @@ -76,6 +76,10 @@ public class IntentUtils { return getSafeIntent(aUri) != null; } + if ("fido".equals(scheme)) { + return false; + } + return true; } ===================================== mobile/android/geckoview/src/test/java/org/mozilla/gecko/util/IntentUtilsTest.java ===================================== @@ -63,4 +63,10 @@ public class IntentUtilsTest { final String uri = "intent:non_scheme_intent#Intent;end"; assertTrue(IntentUtils.isUriSafeForScheme(uri)); } + + @Test + public void unsafeFidoUri() { + final String uri = "fido:/12345678"; + assertFalse(IntentUtils.isUriSafeForScheme(uri)); + } } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/2aa783… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/2aa783… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser] Pushed new branch tor-browser-128.8.0esr-14.0-1
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed new branch tor-browser-128.8.0esr-14.0-1 at The Tor Project / Applications / Mullvad Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/tree/tor-b… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-128.8.0esr-14.5-1] fixup! MB 63: Customize some about pages for Mullvad Browser
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed to branch mullvad-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser Commits: 705d8618 by Henry Wilkes at 2025-03-11T12:54:10+00:00 fixup! MB 63: Customize some about pages for Mullvad Browser MB 404: Use aboutRightsMullvad.xhtml in place of aboutRights.xhtml. - - - - - 1 changed file: - toolkit/content/jar.mn Changes: ===================================== toolkit/content/jar.mn ===================================== @@ -16,7 +16,9 @@ toolkit.jar: content/global/aboutProfiles.xhtml #endif content/global/aboutRights.js -#ifdef MOZILLA_OFFICIAL +#ifdef MULLVAD_BROWSER + content/global/aboutRights.xhtml (aboutRightsMullvad.xhtml) +#elifdef MOZILLA_OFFICIAL content/global/aboutRights.xhtml #else content/global/aboutRights.xhtml (aboutRights-unbranded.xhtml) View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/705… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/705… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-128.8.0esr-14.5-1] 32 commits: MB 38: Mullvad Browser configuration
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed to branch mullvad-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser Commits: 2a456a27 by Pier Angelo Vendrame at 2025-03-10T11:28:45-06:00 MB 38: Mullvad Browser configuration - - - - - c3f3d4c6 by Pier Angelo Vendrame at 2025-03-10T11:28:45-06:00 MB 1: Mullvad Browser branding See also: mullvad-browser#5: Product name and directory customization mullvad-browser#12: Create new branding directories and integrate Mullvad icons+branding mullvad-browser#14: Remove Default Built-in bookmarks mullvad-browser#35: Add custom PDF icons for Windows builds mullvad-browser#48: Replace Mozilla copyright and legal trademarks in mullvadbrowser.exe metadata mullvad-browser#51: Update trademark string mullvad-browser#104: Update shipped dll metadata copyright/licensing info mullvad-browser#107: Add alpha and nightly icons - - - - - 5d9bbae4 by Henry Wilkes at 2025-03-10T11:28:46-06:00 fixup! MB 1: Mullvad Browser branding MB 312: Differentiate between release channels. We update the brand.ftl and brand.properties files to add "Alpha" and "Nightly" to the brand names. We update about-wordmark.svg to be different between channels and use context-fill to allow us to customise the appearance in about:mullvad-browser. We add mullvad-about-wordmark-en.ftl to provide the English text equivalent for the wordmark, to be used by screen readers in about:mullvad-browser. We add mullvad-branding.css to provide branding colors for about:mullvad-browser. We drop firefox-wordmark.svg changes since the asset should be unused in Mullvad Browser now that about:mullvad-browser uses about-wordmark instead. We drop unnecessary rules from branding aboutDialog.css and make sure the dialog is large enough to show the wordmark for alpha and nightly. - - - - - 2146695c by Henry Wilkes at 2025-03-10T11:28:46-06:00 Mullvad Browser strings This commit adds strings needed by the following Mullvad Browser patches. - - - - - 92aca1bb by Henry Wilkes at 2025-03-10T11:28:46-06:00 fixup! Mullvad Browser strings MB 312: Drop mullvad-browser string which has been replaced with mullvad-about-wordmark-en. - - - - - 7e934a44 by Pier Angelo Vendrame at 2025-03-10T11:28:47-06:00 MB 20: Allow packaged-addons in PBM. We install a few addons from the distribution directory, but they are not automatically enabled for PBM mode. This commit modifies the code that installs them to also add the PBM permission to the known ones. - - - - - 01d964a1 by Pier Angelo Vendrame at 2025-03-10T11:28:47-06:00 MB 63: Customize some about pages for Mullvad Browser Also: mullvad-browser#57: Purge unneeded about: pages - - - - - f2941bc2 by Pier Angelo Vendrame at 2025-03-10T11:28:47-06:00 MB 37: Customization for the about dialog - - - - - ed70935d by Henry Wilkes at 2025-03-10T11:28:48-06:00 MB 39: Add home page about:mullvad-browser - - - - - c4281e50 by Henry Wilkes at 2025-03-10T11:28:48-06:00 fixup! MB 39: Add home page about:mullvad-browser MB 312: Update the home page for different release channels. We use about-wordmark.svg instead of firefox-wordmark.svg. We use the colors from the mullvad-branding.css sheet to colour the background, link text and outline colors. We now properly support contrast themes, where we do not apply the branding colors. We tweak the sizing and spacing. We switch from XHTML to HTML. We consistently use kebab case for the DOM IDs, rather than camel case. We drop the Open Sans font. - - - - - d69b0130 by hackademix at 2025-03-10T11:28:48-06:00 MB 97: Remove UI cues to install new extensions. - - - - - eaa55b51 by hackademix at 2025-03-10T11:28:49-06:00 MB 47: uBlock Origin customization - - - - - 513327cd by Pier Angelo Vendrame at 2025-03-10T11:42:27-06:00 MB 21: Disable the password manager This commit disables the about:login page and removes the "Login and Password" section of about:preferences. We do not do anything to the real password manager of Firefox, that is in toolkit: it contains C++ parts that make it difficult to actually prevent it from being built.. Finally, we modify the the function that opens about:login to report an error in the console so that we can quickly get a backtrace to the code that tries to use it. - - - - - 99874c27 by Pier Angelo Vendrame at 2025-03-10T11:42:48-06:00 MB 112: Updater customization for Mullvad Browser MB 71: Set the updater base URL to Mullvad domain - - - - - 7cf7ac7a by Nicolas Vigier at 2025-03-10T11:42:49-06:00 MB 79: Add Mullvad Browser MAR signing keys MB 256: Add mullvad-browser nightly mar signing key - - - - - f6b6ec48 by Pier Angelo Vendrame at 2025-03-10T11:42:49-06:00 MB 34: Hide unsafe and unwanted preferences UI about:preferences allow to override some of our defaults, that could be fingeprintable or have some other unwanted consequences. - - - - - ee933853 by Pier Angelo Vendrame at 2025-03-10T11:42:49-06:00 MB 160: Disable the cookie exceptions button Besides disabling the "Delete on close checkbox", disable also the "Manage Exceptions" button when always using PBM. - - - - - 2d43c87a by hackademix at 2025-03-10T11:42:50-06:00 MB 163: prevent uBlock Origin from being uninstalled/disabled - - - - - 3c0517b6 by Richard Pospesel at 2025-03-10T11:42:50-06:00 MB 188: Customize Gitlab Issue and Merge templates - - - - - dfeb2818 by Morgan at 2025-03-10T11:42:50-06:00 fixup! MB 188: Customize Gitlab Issue and Merge templates add rebase template for rapid channel - - - - - 4091dbf3 by Morgan at 2025-03-10T11:42:50-06:00 fixup! MB 188: Customize Gitlab Issue and Merge templates tweak backport temlpate for mullvad-browser - - - - - a6bd37e9 by Morgan at 2025-03-10T11:42:51-06:00 fixup! MB 188: Customize Gitlab Issue and Merge templates add /label Apps::Type::Rebase to rebase issue template - - - - - ce6498b8 by Morgan at 2025-03-10T11:42:51-06:00 fixup! MB 188: Customize Gitlab Issue and Merge templates add backport template and tweak the uplift template - - - - - 43978767 by hackademix at 2025-03-10T11:42:51-06:00 fixup! MB 188: Customize Gitlab Issue and Merge templates TBB 41382: Replace gitlab templates ReleasePrep label references with Apps::Type::ReleasePreparation - - - - - e6ee15dc by rui hildt at 2025-03-10T11:42:52-06:00 MB 213: Customize the search engines list MB 328: Refactor the search engine patch. Upstream switched to a completely different search engine configuration between ESR 115 and ESR 128. We moved our configuration to a couple of JSON files that do not follow upstream's schemas, as they are overcomplicated for our needs. Also, we keep the old search engine extensions for now, as upstream also kept them, and planned of removing them with Bug 1885953. - - - - - ff0fe851 by Pier Angelo Vendrame at 2025-03-10T11:42:52-06:00 fixup! MB 213: Customize the search engines list MB 395: Make Leta the default search engine. - - - - - 0cd3a258 by hackademix at 2025-03-10T11:42:52-06:00 MB 214: Enable cross-tab identity leak protection in "quiet" mode - - - - - c337a046 by Pier Angelo Vendrame at 2025-03-10T11:42:53-06:00 MB 80: Enable Mullvad Browser as a default browser - - - - - 42f31630 by Pier Angelo Vendrame at 2025-03-10T11:42:53-06:00 MB 320: Temporarily disable WebRTC and WDBA on Windows. WebRTC should be re-enabled when tor-browser#42758 is resolved, and and the default browser agent when in general we make this feature work again. - - - - - 0e5b089a by Henry Wilkes at 2025-03-10T11:42:53-06:00 MB 329: Customize toolbar for mullvad-browser. - - - - - 80367e1e by Henry Wilkes at 2025-03-10T11:42:53-06:00 Add CI for Mullvad Browser - - - - - a5d58219 by Kershaw Chang at 2025-03-10T11:42:54-06:00 Bug 1910593 - Don't prefetch HTTPS RR if proxyDNS is enabled, r=necko-reviewers,valentin Differential Revision: https://phabricator.services.mozilla.com/D219528 - - - - - 275 changed files: - .gitlab/ci/jobs/update-translations.yml - .gitlab/issue_templates/Backport.md - .gitlab/issue_templates/Emergency Security Issue.md - + .gitlab/issue_templates/Rebase Browser - Alpha.md - + .gitlab/issue_templates/Rebase Browser - Rapid.md - + .gitlab/issue_templates/Rebase Browser - Stable.md - .gitlab/merge_request_templates/default.md - browser/app/Makefile.in - browser/app/macbuild/Contents/Info.plist.in - browser/app/module.ver - browser/app/firefox.exe.manifest → browser/app/mullvadbrowser.exe.manifest - + browser/app/profile/000-mullvad-browser.js - browser/app/profile/001-base-profile.js - browser/base/content/aboutDialog.xhtml - browser/base/content/appmenu-viewcache.inc.xhtml - browser/base/content/browser-menubar.inc - browser/base/content/browser-places.js - browser/base/content/browser.js - browser/base/content/default-bookmarks.html - browser/base/content/nsContextMenu.js - browser/base/content/overrides/app-license.html - browser/base/content/pageinfo/pageInfo.xhtml - browser/base/content/utilityOverlay.js - browser/branding/branding-common.mozbuild - + browser/branding/mb-alpha/VisualElements_150.png - + browser/branding/mb-alpha/VisualElements_70.png - + browser/branding/mb-alpha/configure.sh - + browser/branding/mb-alpha/content/about-logo.png - + browser/branding/mb-alpha/content/about-logo.svg - + browser/branding/mb-alpha/content/about-logo(a)2x.png - + browser/branding/mb-alpha/content/about-wordmark.svg - + browser/branding/mb-alpha/content/about.png - + browser/branding/mb-alpha/content/aboutDialog.css - + browser/branding/mb-alpha/content/firefox-wordmark.svg - + browser/branding/mb-alpha/content/icon128.png - + browser/branding/mb-alpha/content/icon16.png - + browser/branding/mb-alpha/content/icon256.png - + browser/branding/mb-alpha/content/icon32.png - + browser/branding/mb-alpha/content/icon48.png - + browser/branding/mb-alpha/content/icon64.png - + browser/branding/mb-alpha/content/jar.mn - + browser/branding/mb-alpha/content/moz.build - + browser/branding/mb-alpha/content/mullvad-branding.css - + browser/branding/mb-alpha/default128.png - + browser/branding/mb-alpha/default16.png - + browser/branding/mb-alpha/default22.png - + browser/branding/mb-alpha/default24.png - + browser/branding/mb-alpha/default256.png - + browser/branding/mb-alpha/default32.png - + browser/branding/mb-alpha/default48.png - + browser/branding/mb-alpha/default64.png - + browser/branding/mb-alpha/document.icns - + browser/branding/mb-alpha/document.ico - + browser/branding/mb-alpha/document_pdf.ico - + browser/branding/mb-alpha/firefox.icns - + browser/branding/mb-alpha/firefox.ico - + browser/branding/mb-alpha/firefox.svg - + browser/branding/mb-alpha/locales/en-US/brand.ftl - + browser/branding/mb-alpha/locales/en-US/brand.properties - + browser/branding/mb-alpha/locales/jar.mn - + browser/branding/mb-alpha/locales/moz.build - + browser/branding/mb-alpha/locales/mullvad-about-wordmark-en.ftl - + browser/branding/mb-alpha/moz.build - + browser/branding/mb-alpha/mullvadbrowser.VisualElementsManifest.xml - + browser/branding/mb-alpha/newtab.ico - + browser/branding/mb-alpha/newwindow.ico - + browser/branding/mb-alpha/pbmode.ico - + browser/branding/mb-alpha/pref/firefox-branding.js - + browser/branding/mb-nightly/VisualElements_150.png - + browser/branding/mb-nightly/VisualElements_70.png - + browser/branding/mb-nightly/configure.sh - + browser/branding/mb-nightly/content/about-logo.png - + browser/branding/mb-nightly/content/about-logo.svg - + browser/branding/mb-nightly/content/about-logo(a)2x.png - + browser/branding/mb-nightly/content/about-wordmark.svg - + browser/branding/mb-nightly/content/about.png - + browser/branding/mb-nightly/content/aboutDialog.css - + browser/branding/mb-nightly/content/firefox-wordmark.svg - + browser/branding/mb-nightly/content/icon128.png - + browser/branding/mb-nightly/content/icon16.png - + browser/branding/mb-nightly/content/icon256.png - + browser/branding/mb-nightly/content/icon32.png - + browser/branding/mb-nightly/content/icon48.png - + browser/branding/mb-nightly/content/icon64.png - + browser/branding/mb-nightly/content/jar.mn - + browser/branding/mb-nightly/content/moz.build - + browser/branding/mb-nightly/content/mullvad-branding.css - + browser/branding/mb-nightly/default128.png - + browser/branding/mb-nightly/default16.png - + browser/branding/mb-nightly/default22.png - + browser/branding/mb-nightly/default24.png - + browser/branding/mb-nightly/default256.png - + browser/branding/mb-nightly/default32.png - + browser/branding/mb-nightly/default48.png - + browser/branding/mb-nightly/default64.png - + browser/branding/mb-nightly/document.icns - + browser/branding/mb-nightly/document.ico - + browser/branding/mb-nightly/document_pdf.ico - + browser/branding/mb-nightly/firefox.icns - + browser/branding/mb-nightly/firefox.ico - + browser/branding/mb-nightly/firefox.svg - + browser/branding/mb-nightly/locales/en-US/brand.ftl - + browser/branding/mb-nightly/locales/en-US/brand.properties - + browser/branding/mb-nightly/locales/jar.mn - + browser/branding/mb-nightly/locales/moz.build - + browser/branding/mb-nightly/locales/mullvad-about-wordmark-en.ftl - + browser/branding/mb-nightly/moz.build - + browser/branding/mb-nightly/mullvadbrowser.VisualElementsManifest.xml - + browser/branding/mb-nightly/newtab.ico - + browser/branding/mb-nightly/newwindow.ico - + browser/branding/mb-nightly/pbmode.ico - + browser/branding/mb-nightly/pref/firefox-branding.js - + browser/branding/mb-release/VisualElements_150.png - + browser/branding/mb-release/VisualElements_70.png - + browser/branding/mb-release/configure.sh - + browser/branding/mb-release/content/about-logo.png - + browser/branding/mb-release/content/about-logo.svg - + browser/branding/mb-release/content/about-logo(a)2x.png - + browser/branding/mb-release/content/about-wordmark.svg - + browser/branding/mb-release/content/about.png - + browser/branding/mb-release/content/aboutDialog.css - + browser/branding/mb-release/content/firefox-wordmark.svg - + browser/branding/mb-release/content/icon128.png - + browser/branding/mb-release/content/icon16.png - + browser/branding/mb-release/content/icon256.png - + browser/branding/mb-release/content/icon32.png - + browser/branding/mb-release/content/icon48.png - + browser/branding/mb-release/content/icon64.png - + browser/branding/mb-release/content/jar.mn - + browser/branding/mb-release/content/moz.build - + browser/branding/mb-release/content/mullvad-branding.css - + browser/branding/mb-release/default128.png - + browser/branding/mb-release/default16.png - + browser/branding/mb-release/default22.png - + browser/branding/mb-release/default24.png - + browser/branding/mb-release/default256.png - + browser/branding/mb-release/default32.png - + browser/branding/mb-release/default48.png - + browser/branding/mb-release/default64.png - + browser/branding/mb-release/document.icns - + browser/branding/mb-release/document.ico - + browser/branding/mb-release/document_pdf.ico - + browser/branding/mb-release/firefox.icns - + browser/branding/mb-release/firefox.ico - + browser/branding/mb-release/firefox.svg - + browser/branding/mb-release/locales/en-US/brand.ftl - + browser/branding/mb-release/locales/en-US/brand.properties - + browser/branding/mb-release/locales/jar.mn - + browser/branding/mb-release/locales/moz.build - + browser/branding/mb-release/locales/mullvad-about-wordmark-en.ftl - + browser/branding/mb-release/moz.build - + browser/branding/mb-release/mullvadbrowser.VisualElementsManifest.xml - + browser/branding/mb-release/newtab.ico - + browser/branding/mb-release/newwindow.ico - + browser/branding/mb-release/pbmode.ico - + browser/branding/mb-release/pref/firefox-branding.js - browser/components/BrowserContentHandler.sys.mjs - browser/components/BrowserGlue.sys.mjs - browser/components/about/AboutRedirector.cpp - browser/components/about/components.conf - browser/components/customizableui/CustomizableUI.sys.mjs - browser/components/moz.build - + browser/components/mullvad-browser/AboutMullvadBrowserChild.sys.mjs - + browser/components/mullvad-browser/AboutMullvadBrowserParent.sys.mjs - + browser/components/mullvad-browser/content/2728-sparkles.svg - + browser/components/mullvad-browser/content/aboutMullvadBrowser.css - + browser/components/mullvad-browser/content/aboutMullvadBrowser.html - + browser/components/mullvad-browser/content/aboutMullvadBrowser.js - + browser/components/mullvad-browser/jar.mn - + browser/components/mullvad-browser/moz.build - browser/components/newtab/AboutNewTabService.sys.mjs - browser/components/preferences/home.inc.xhtml - browser/components/preferences/main.js - browser/components/preferences/preferences.xhtml - browser/components/preferences/privacy.inc.xhtml - browser/components/preferences/privacy.js - browser/components/preferences/search.inc.xhtml - + browser/components/search/extensions/brave/favicon.svg - + browser/components/search/extensions/brave/manifest.json - + browser/components/search/extensions/ddg-html/favicon.ico - + browser/components/search/extensions/ddg-html/manifest.json - browser/components/search/extensions/ddg/manifest.json - + browser/components/search/extensions/metager/favicon.ico - + browser/components/search/extensions/metager/manifest.json - + browser/components/search/extensions/mojeek/favicon.ico - + browser/components/search/extensions/mojeek/manifest.json - + browser/components/search/extensions/mullvad-leta/favicon.svg - + browser/components/search/extensions/mullvad-leta/manifest.json - + browser/components/search/extensions/startpage/favicon.png - + browser/components/search/extensions/startpage/manifest.json - browser/components/shell/ShellService.sys.mjs - browser/components/shell/WindowsDefaultBrowser.cpp - browser/components/shell/nsWindowsShellService.cpp - browser/config/mozconfigs/base-browser - + browser/config/mozconfigs/mullvad-browser - browser/confvars.sh - browser/installer/package-manifest.in - browser/installer/windows/nsis/updater_append.ini - browser/modules/HomePage.sys.mjs - browser/moz.build - config/create_rc.py - devtools/client/aboutdebugging/src/actions/runtimes.js - devtools/client/aboutdebugging/src/components/sidebar/Sidebar.js - devtools/client/jar.mn - devtools/client/themes/images/aboutdebugging-firefox-aurora.svg - devtools/client/themes/images/aboutdebugging-firefox-beta.svg - devtools/client/themes/images/aboutdebugging-firefox-logo.svg - devtools/client/themes/images/aboutdebugging-firefox-nightly.svg - devtools/client/themes/images/aboutdebugging-firefox-release.svg - + devtools/client/themes/images/aboutdebugging-mullvadbrowser-logo.svg - docshell/base/nsAboutRedirector.cpp - docshell/build/components.conf - dom/chrome-webidl/NetDashboard.webidl - moz.configure - mozconfig-linux-aarch64 - mozconfig-linux-aarch64-dev - mozconfig-linux-x86_64 - mozconfig-linux-x86_64-asan - mozconfig-linux-x86_64-dev - mozconfig-macos - mozconfig-macos-dev - mozconfig-windows-x86_64 - netwerk/base/Dashboard.cpp - netwerk/base/DashboardTypes.h - netwerk/dns/nsHostResolver.cpp - netwerk/protocol/http/nsHttp.cpp - netwerk/protocol/http/nsHttp.h - netwerk/protocol/http/nsHttpChannel.cpp - netwerk/protocol/http/nsHttpChannel.h - netwerk/protocol/http/nsHttpConnectionInfo.h - netwerk/protocol/http/nsHttpConnectionMgr.cpp - netwerk/protocol/http/nsHttpHandler.cpp - netwerk/protocol/http/nsHttpHandler.h - + netwerk/test/unit/test_proxyDNS_leak.js - netwerk/test/unit/xpcshell.toml - + other-licenses/nsis/Contrib/ApplicationID/Makefile - + other-licenses/nsis/Contrib/CityHash/Makefile - toolkit/components/extensions/child/ext-storage.js - toolkit/components/extensions/parent/ext-storage.js - toolkit/components/passwordmgr/LoginHelper.sys.mjs - toolkit/components/search/AppProvidedSearchEngine.sys.mjs - toolkit/components/search/SearchService.sys.mjs - + toolkit/components/search/content/brave.svg - + toolkit/components/search/content/duckduckgo.ico - + toolkit/components/search/content/metager.ico - + toolkit/components/search/content/mojeek.ico - + toolkit/components/search/content/mullvad-leta.svg - + toolkit/components/search/content/mullvadBrowserSearchEngineIcons.json - + toolkit/components/search/content/mullvadBrowserSearchEngines.json - + toolkit/components/search/content/startpage.png - + toolkit/components/search/jar.mn - toolkit/components/search/moz.build - toolkit/components/securitylevel/SecurityLevel.sys.mjs - toolkit/content/aboutNetworking.js - + toolkit/content/aboutRightsMullvad.xhtml - + toolkit/content/aboutTelemetryMullvad.xhtml - toolkit/content/jar.mn - toolkit/content/widgets/moz-support-link/moz-support-link.mjs - + toolkit/locales/en-US/toolkit/global/mullvad-browser.ftl - toolkit/mozapps/defaultagent/EventLog.h - toolkit/mozapps/defaultagent/SetDefaultBrowser.cpp - toolkit/mozapps/extensions/AddonManager.sys.mjs - toolkit/mozapps/extensions/content/aboutaddons.css - toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs - toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs - toolkit/mozapps/update/updater/nightly_aurora_level3_primary.der - toolkit/mozapps/update/updater/nightly_aurora_level3_secondary.der - toolkit/mozapps/update/updater/release_primary.der - toolkit/mozapps/update/updater/release_secondary.der - + toolkit/themes/shared/icons/mullvadbrowser.png - toolkit/themes/shared/minimal-toolkit.jar.inc.mn - toolkit/xre/nsAppRunner.cpp - tools/lint/fluent-lint/exclusions.yml - widget/windows/WinTaskbar.cpp - widget/windows/moz.build The diff was not included because it is too large. View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/2a… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/2a… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] 2 commits: Bug 41389: Always generate and load set-config.generated-config
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 4c29020e by Nicolas Vigier at 2025-03-10T13:44:39+01:00 Bug 41389: Always generate and load set-config.generated-config - - - - - 810e8e20 by Nicolas Vigier at 2025-03-10T13:44:39+01:00 Bug 41389: Remove set-config.tbb-version The signing script will now get the version information from rbm config. - - - - - 12 changed files: - .gitlab/issue_templates/Release Prep - Mullvad Browser Alpha.md - .gitlab/issue_templates/Release Prep - Tor Browser Alpha.md - tools/signing/dmg2mar - tools/signing/functions - tools/signing/linux-signer-authenticode-signing - tools/signing/linux-signer-gpg-sign - tools/signing/linux-signer-rcodesign-sign - tools/signing/linux-signer-sign-android-apks - tools/signing/linux-signer-signmars - tools/signing/set-config - − tools/signing/set-config.tbb-version - tools/signing/upload-update_responses-to-staticiforme Changes: ===================================== .gitlab/issue_templates/Release Prep - Mullvad Browser Alpha.md ===================================== @@ -137,7 +137,7 @@ Mullvad Browser Alpha (and Nightly) are on the `main` branch - pierov - [ ] Ensure all builders have matching builds - [ ] On `${STAGING_SERVER}`, ensure updated: - - **NOTE** Having a local git branch with `main` as the upstream branch with these values saved means you only need to periodically `git pull --rebase` and update the `set-config.tbb-version` file + - **NOTE** Having a local git branch with `main` as the upstream branch with these values saved means you only need to periodically `git pull --rebase` - [ ] `tor-browser-build` is on the right commit: `git tag -v mb-${MULLVAD_BROWSER_VERSION}-${MULLVAD_BROWSER_BUILD_N} && git checkout mb-${MULLVAD_BROWSER_VERSION}-${MULLVAD_BROWSER_BUILD_N}` - [ ] `tor-browser-build/tools/signing/set-config.hosts` - `ssh_host_builder`: ssh hostname of machine with unsigned builds @@ -147,10 +147,6 @@ Mullvad Browser Alpha (and Nightly) are on the `main` branch - `appstoreconnect_api_key_path`: path to json file containing appstoreconnect api key infos - [ ] `set-config.update-responses` - `update_responses_repository_dir`: directory where you cloned `git@gitlab.torproject.org:tpo/applications/mullvad-browser-update-responses.git` - - [ ] `tor-browser-build/tools/signing/set-config.tbb-version` - - `tbb_version`: mullvad browser version string, same as `var/torbrowser_version` in `rbm.conf` (examples: `11.5a12`, `11.0.13`) - - `tbb_version_build`: the tor-browser-build build number (if `var/torbrowser_build` in `rbm.conf` is `buildN` then this value is `N`) - - `tbb_version_type`: either `alpha` for alpha releases or `release` for stable releases - [ ] On `${STAGING_SERVER}` in a separate `screen` session, ensure tor daemon is running with SOCKS5 proxy on the default port 9050 - [ ] On `${STAGING_SERVER}` in a separate `screen` session, run do-all-signing script: - Run: ===================================== .gitlab/issue_templates/Release Prep - Tor Browser Alpha.md ===================================== @@ -192,7 +192,7 @@ Tor Browser Alpha (and Nightly) are on the `main` branch - pierov - [ ] Ensure all builders have matching builds - [ ] On `${STAGING_SERVER}`, ensure updated: - - **NOTE** Having a local git branch with `main` as the upstream branch with these values saved means you only need to periodically `git pull --rebase` and update the `set-config.tbb-version` file + - **NOTE** Having a local git branch with `main` as the upstream branch with these values saved means you only need to periodically `git pull --rebase` - [ ] `tor-browser-build` is on the right commit: `git tag -v tbb-${TOR_BROWSER_VERSION}-${TOR_BROWSER_BUILD_N} && git checkout tbb-${TOR_BROWSER_VERSION}-${TOR_BROWSER_BUILD_N}` - [ ] `tor-browser-build/tools/signing/set-config.hosts` - `ssh_host_builder`: ssh hostname of machine with unsigned builds @@ -202,10 +202,6 @@ Tor Browser Alpha (and Nightly) are on the `main` branch - `appstoreconnect_api_key_path`: path to json file containing appstoreconnect api key infos - [ ] `set-config.update-responses` - `update_responses_repository_dir`: directory where you cloned `git@gitlab.torproject.org:tpo/applications/tor-browser-update-responses.git` - - [ ] `tor-browser-build/tools/signing/set-config.tbb-version` - - `tbb_version`: tor browser version string, same as `var/torbrowser_version` in `rbm.conf` (examples: `11.5a12`, `11.0.13`) - - `tbb_version_build`: the tor-browser-build build number (if `var/torbrowser_build` in `rbm.conf` is `buildN` then this value is `N`) - - `tbb_version_type`: either `alpha` for alpha releases or `release` for stable releases - [ ] On `${STAGING_SERVER}` in a separate `screen` session, ensure tor daemon is running with SOCKS5 proxy on the default port 9050 - [ ] On `${STAGING_SERVER}` in a separate `screen` session, run do-all-signing script: - Run: ===================================== tools/signing/dmg2mar ===================================== @@ -13,10 +13,6 @@ cd "$script_dir/../.." # some initial checks to make sure directories and file counts are as expected... -version=$(./rbm/rbm showconf browser --target alpha --target $SIGNING_PROJECTNAME-linux-x86_64 var/torbrowser_version) -test "$version" = "$tbb_version" || \ - exit_error "Incorrect tor browser version: $version != $tbb_version" - test -d "$signed_version_dir" || \ exit_error "$signed_version_dir does not exist" ===================================== tools/signing/functions ===================================== @@ -13,12 +13,6 @@ function var_is_defined { done } -function check_torbrowser_version_var { - local tbver=$("$script_dir/../../rbm/rbm" showconf browser --target "$SIGNING_PROJECTNAME" var/torbrowser_version) - test "$tbver" != "$tbb_version" && exit_error "Wrong tbb_version: $tbver != $tbb_version" - return 0 -} - function check_update_responses_repository_dir { if test -z "$update_responses_repository_dir" || ! test -d "$update_responses_repository_dir" then @@ -36,44 +30,43 @@ function is_project { } function generate_config { - p1=$("$rbm" showconf browser var/project-name --target "$SIGNING_PROJECTNAME") - p2=$("$rbm" showconf browser var/Project_Name --target "$SIGNING_PROJECTNAME") - p3=$("$rbm" showconf browser var/ProjectName --target "$SIGNING_PROJECTNAME") - p4=$("$rbm" showconf browser var/display_name --target "$SIGNING_PROJECTNAME" --target "$tbb_version_type") - echo 'rbm_not_available=1' > "$script_dir/set-config.generated-config" - echo "SIGNING_PROJECTNAMES=(\"$p1\" \"$p2\" \"$p3\" \"$p4\")" >> "$script_dir/set-config.generated-config" + local p1=$("$rbm" showconf browser var/project-name --target \ + "$SIGNING_PROJECTNAME") + local p2=$("$rbm" showconf browser var/Project_Name --target \ + "$SIGNING_PROJECTNAME") + local p3=$("$rbm" showconf browser var/ProjectName --target \ + "$SIGNING_PROJECTNAME") + p4=$("$rbm" showconf browser var/display_name --target \ + "$SIGNING_PROJECTNAME" --target "$tbb_version_type") + echo "SIGNING_PROJECTNAMES=(\"$p1\" \"$p2\" \"$p3\" \"$p4\")" > \ + "$script_dir/set-config.generated-config" + local tbb_version_type=$("$rbm" showconf browser \ var/browser_default_channel \ + --target "$SIGNING_PROJECTNAME") + local tbb_version=$("$rbm" showconf browser var/torbrowser_version \ + --target "$SIGNING_PROJECTNAME" --target \ + "$tbb_version_type") + local tbb_version_build=$("$rbm" showconf browser var/torbrowser_build \ + --target "$SIGNING_PROJECTNAME" --target \ + "$tbb_version_type") + for v in tbb_version_type tbb_version tbb_version_build; do + echo "$v=$(shell-quote "${!v}")" >> "$script_dir/set-config.generated-config" + done } function project-name { - if test -n "${rbm_not_available+x}"; then - echo "${SIGNING_PROJECTNAMES[0]}" - else - "$rbm" showconf browser var/project-name --target "$SIGNING_PROJECTNAME" - fi + echo "${SIGNING_PROJECTNAMES[0]}" } function Project_Name { - if test -n "${rbm_not_available+x}"; then - echo "${SIGNING_PROJECTNAMES[1]}" - else - "$rbm" showconf browser var/Project_Name --target "$SIGNING_PROJECTNAME" - fi + echo "${SIGNING_PROJECTNAMES[1]}" } function ProjectName { - if test -n "${rbm_not_available+x}"; then - echo "${SIGNING_PROJECTNAMES[2]}" - else - "$rbm" showconf browser var/ProjectName --target "$SIGNING_PROJECTNAME" - fi + echo "${SIGNING_PROJECTNAMES[2]}" } function display_name { - if test -n "${rbm_not_available+x}"; then - echo "${SIGNING_PROJECTNAMES[3]}" - else - "$rbm" showconf browser var/display_name --target "$SIGNING_PROJECTNAME" --target "$tbb_version_type" - fi + echo "${SIGNING_PROJECTNAMES[3]}" } ===================================== tools/signing/linux-signer-authenticode-signing ===================================== @@ -1,6 +1,7 @@ #!/bin/bash set -e +no_generate_config=1 script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" ===================================== tools/signing/linux-signer-gpg-sign ===================================== @@ -1,6 +1,7 @@ #!/bin/bash set -e +no_generate_config=1 script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" ===================================== tools/signing/linux-signer-rcodesign-sign ===================================== @@ -1,9 +1,9 @@ #!/bin/bash set -e +no_generate_config=1 script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" -source "$script_dir/set-config.generated-config" # tbb_version_type is used in wrappers/sign-rcodesign, so we export it export tbb_version_type ===================================== tools/signing/linux-signer-sign-android-apks ===================================== @@ -1,9 +1,9 @@ #!/bin/bash set -e +no_generate_config=1 script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" -source "$script_dir/set-config.generated-config" topdir="$script_dir/../.." ARCHS="armv7 aarch64 x86 x86_64" ===================================== tools/signing/linux-signer-signmars ===================================== @@ -3,6 +3,7 @@ set -e set -u +no_generate_config=1 script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" ===================================== tools/signing/set-config ===================================== @@ -20,9 +20,11 @@ test "$SIGNING_PROJECTNAME" = 'torbrowser' \ export SIGNING_PROJECTNAME -test -z "${rbm_not_available+x}" && rbm="$script_dir/../../rbm/rbm" +rbm="$script_dir/../../rbm/rbm" -. "$script_dir/set-config.tbb-version" +test -z "$no_generate_config" && generate_config +. "$script_dir/set-config.generated-config" +export no_generate_config=1 test "$tbb_version_type" = 'release' \ || test "$tbb_version_type" = 'alpha' \ ===================================== tools/signing/set-config.tbb-version deleted ===================================== @@ -1,7 +0,0 @@ -# The following 3 lines should be uncommented and updated: - -#tbb_version=11.5a4 -#tbb_version_build=1 -#tbb_version_type=alpha - -var_is_defined tbb_version tbb_version_build tbb_version_type ===================================== tools/signing/upload-update_responses-to-staticiforme ===================================== @@ -4,8 +4,6 @@ script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" source "$script_dir/set-config.update-responses" -check_torbrowser_version_var - update_responses_tar_filename="update-responses-$tbb_version_type-$tbb_version.tar" update_responses_tar="$script_dir/../../$SIGNING_PROJECTNAME/$tbb_version_type/update-responses/$update_responses_tar_filename" test -f "$update_responses_tar" && \ View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.8.0esr-14.5-1] fixup! TB 41089: Add tor-browser build scripts + Makefile to tor-browser
by Dan Ballard (@dan) 10 Mar '25

10 Mar '25
Dan Ballard pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: d2b56be1 by clairehurst at 2025-03-10T19:25:21+00:00 fixup! TB 41089: Add tor-browser build scripts + Makefile to tor-browser Update android-env-macos-template.sh - - - - - 1 changed file: - tools/geckoview/android-env-macos-template.sh Changes: ===================================== tools/geckoview/android-env-macos-template.sh ===================================== @@ -1,6 +1,8 @@ -export JAVA_HOME=/opt/homebrew/opt/openjdk(a)11/libexec/openjdk.jdk/Contents/Home/ # for arm64. Or JAVA_HOME=/usr/local/opt/openjdk(a)11/libexec/openjdk.jdk/Contents/Home/ for x86_64. +export JAVA_HOME=/opt/homebrew/opt/openjdk(a)17/libexec/openjdk.jdk/Contents/Home/ # for arm64. Or JAVA_HOME=/usr/local/opt/openjdk(a)17/libexec/openjdk.jdk/Contents/Home/ for x86_64. export ANDROID_HOME=$HOME/Library/Android/sdk # or $HOME/.mozbuild/android-sdk-macosx/ -export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/23.2.8568313 # will need to download NDK 23.2.8568313 via android studio -export GRADLE_HOME=/opt/homebrew/Cellar/gradle(a)7/7.6.4 # for arm64 or /usr/local/Cellar/gradle(a)7/7.6.4 for x86_64. Make sure the version is up to date +export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/26.2.11394342 # will need to download the relevant NDK via android studio (e.g. 26.2.11394342) +GRADLE_DIR=/opt/homebrew/Cellar/gradle # for arm64, or /usr/local/Cellar/gradle for x86_64. Download via homebrew. +GRADLE_VERSION=`ls -1 "$GRADLE_DIR" | sort -hr | head -n 1` # Finds the latest gradle version in the specified GRADLE_DIR +export GRADLE_HOME=$GRADLE_DIR/$GRADLE_VERSION export LOCAL_DEV_BUILD=1 -export PATH=$ANDROID_HOME/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/:$PATH # prepend android studios latest ndk to the path so it's clang gets used to build geckoview. NDK 25.2.9519653 uses clang 14.0.7, ideally we'd use clang 16 (to be the same as Linux) but that's not an option yet for android studio. NDK 26.1.10909125 uses clang 17.0.2, which we should evaluate with the esr128 migration +export PATH=$ANDROID_HOME/ndk/26.2.11394342/toolchains/llvm/prebuilt/darwin-x86_64/bin/:$PATH # prepend android studios latest ndk to the path so it's clang gets used to build geckoview. Note that it doesn't need to be the same version as above View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d2b56be… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d2b56be… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.8.0esr-14.5-1] fixup! [android] Implement Android-native Connection Assist UI
by Dan Ballard (@dan) 10 Mar '25

10 Mar '25
Dan Ballard pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: d3a9fcd2 by clairehurst at 2025-03-10T10:52:05-06:00 fixup! [android] Implement Android-native Connection Assist UI tor-browser#43480 - - - - - 6 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt - + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapProgressViewModel.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt - + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/UrlQuickLoadViewModel.kt Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -155,7 +155,7 @@ import java.util.Locale import mozilla.components.browser.engine.gecko.GeckoEngine import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.home.HomeFragment -import org.mozilla.fenix.tor.TorConnectionAssistViewModel +import org.mozilla.fenix.tor.UrlQuickLoadViewModel import org.mozilla.geckoview.TorAndroidIntegration /** @@ -237,7 +237,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn private var dialog: RedirectDialogFragment? = null - private val torConnectionAssistViewModel: TorConnectionAssistViewModel by viewModels() + private val urlQuickLoadViewModel: UrlQuickLoadViewModel by viewModels() @Suppress("ComplexMethod") final override fun onCreate(savedInstanceState: Bundle?) { @@ -1124,7 +1124,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn .setText(getString(R.string.connection_assist_connect_to_tor_before_opening_links)) .setAllCapsForActionButton(false) .setAction(getString(R.string.connection_assist_connect_to_tor_before_opening_links_confirmation)) { - torConnectionAssistViewModel.handleConnect(searchTermOrURL) + urlQuickLoadViewModel.urlToLoadAfterConnecting.value = searchTermOrURL if (navHost.navController.previousBackStackEntry?.destination?.id == R.id.torConnectionAssistFragment) { supportFragmentManager.popBackStack() } else { ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt ===================================== @@ -158,13 +158,14 @@ import org.mozilla.fenix.search.toolbar.SearchSelectorMenu import org.mozilla.fenix.tabstray.Page import org.mozilla.fenix.tabstray.TabsTrayAccessPoint import org.mozilla.fenix.theme.FirefoxTheme -import org.mozilla.fenix.tor.TorConnectionAssistViewModel import org.mozilla.fenix.utils.Settings.Companion.TOP_SITES_PROVIDER_MAX_THRESHOLD import org.mozilla.fenix.utils.allowUndo import org.mozilla.fenix.wallpapers.Wallpaper import java.lang.ref.WeakReference import org.mozilla.fenix.GleanMetrics.TabStrip as TabStripMetrics +import org.mozilla.fenix.tor.UrlQuickLoadViewModel + @Suppress("TooManyFunctions", "LargeClass") class HomeFragment : Fragment(), UserInteractionHandler { private val args by navArgs<HomeFragmentArgs>() @@ -178,7 +179,7 @@ class HomeFragment : Fragment(), UserInteractionHandler { private val binding get() = _binding!! private val homeViewModel: HomeScreenViewModel by activityViewModels() - private val torConnectionAssistViewModel: TorConnectionAssistViewModel by activityViewModels() + private val urlQuickLoadViewModel: UrlQuickLoadViewModel by activityViewModels() private val snackbarAnchorView: View? get() = when (requireContext().settings().toolbarPosition) { @@ -892,14 +893,15 @@ class HomeFragment : Fragment(), UserInteractionHandler { view = view, ) - torConnectionAssistViewModel.urlToLoadAfterConnecting.also { - if(!it.isNullOrBlank()){ + urlQuickLoadViewModel.urlToLoadAfterConnecting.observe(viewLifecycleOwner) { + if (!it.isNullOrBlank()) { (requireActivity() as HomeActivity).openToBrowserAndLoad( searchTermOrURL = it, newTab = true, from = BrowserDirection.FromHome, ) - torConnectionAssistViewModel.urlToLoadAfterConnecting = null // Only load this url once + // Only load this url once + urlQuickLoadViewModel.urlToLoadAfterConnecting.value = null } } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapProgressViewModel.kt ===================================== @@ -0,0 +1,44 @@ +package org.mozilla.fenix.tor + +import android.app.Application +import androidx.lifecycle.AndroidViewModel +import androidx.lifecycle.MutableLiveData +import org.mozilla.fenix.ext.components +import org.mozilla.geckoview.TorAndroidIntegration.BootstrapStateChangeListener + +class TorBootstrapProgressViewModel( + application: Application, +) : AndroidViewModel(application), BootstrapStateChangeListener { + + private val torIntegrationAndroid = + application.components.core.geckoRuntime.torIntegrationController + + val progress: MutableLiveData<Int> by lazy { + MutableLiveData<Int>(0) + } + + init { + torIntegrationAndroid.registerBootstrapStateChangeListener(this) + } + + override fun onCleared() { + torIntegrationAndroid.unregisterBootstrapStateChangeListener(this) + super.onCleared() + } + + override fun onBootstrapStateChange(state: String?) {} + + override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) { + this.progress.value = progress.toInt() + } + + override fun onBootstrapComplete() {} + + override fun onBootstrapError( + code: String?, + message: String?, + phase: String?, + reason: String?, + ) { + } +} ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt ===================================== @@ -35,12 +35,14 @@ import org.mozilla.fenix.ext.hideToolbar class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { private val TAG = "TorConnectionAssistFrag" - private val viewModel: TorConnectionAssistViewModel by activityViewModels() + private val progressViewModel: TorBootstrapProgressViewModel by viewModels() + private val quickstartViewModel: QuickstartViewModel by activityViewModels() + private val torConnectionAssistViewModel : TorConnectionAssistViewModel by viewModels() + private val urlQuickLoadViewModel : UrlQuickLoadViewModel by activityViewModels() + private var _binding: FragmentTorConnectionAssistBinding? = null private val binding get() = _binding!! - private val quickstartViewModel: QuickstartViewModel by activityViewModels() - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -49,18 +51,23 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { _binding = FragmentTorConnectionAssistBinding.inflate( inflater, container, false, ) + viewLifecycleOwner.lifecycleScope.launch { repeatOnLifecycle(Lifecycle.State.STARTED) { - viewModel.collectLastKnownStatus() + torConnectionAssistViewModel.collectLastKnownStatus() } } - viewLifecycleOwner.lifecycleScope.launch { - repeatOnLifecycle(Lifecycle.State.STARTED) { - viewModel.torConnectScreen.collect { screen -> - Log.d(TAG, "torConnectScreen is $screen") - showScreen(screen) - } + torConnectionAssistViewModel.shouldOpenHome.observe(viewLifecycleOwner) { + Log.d(TAG, "shouldOpenHome = $it") + if (it) { + openHome() + } + } + + urlQuickLoadViewModel.urlToLoadAfterConnecting.observe(viewLifecycleOwner) { url -> + if (!url.isNullOrBlank()) { + torConnectionAssistViewModel.handleConnect() } } @@ -75,10 +82,13 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - viewModel.progress().observe( - viewLifecycleOwner, - ) { progress -> - setProgressBarCompat(progress) + viewLifecycleOwner.lifecycleScope.launch { + repeatOnLifecycle(Lifecycle.State.STARTED) { + torConnectionAssistViewModel.torConnectScreen.collect { screen -> + Log.d(TAG, "torConnectScreen is $screen") + showScreen(screen) + } + } } quickstartViewModel.quickstart().observe( @@ -87,13 +97,10 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { binding.quickstartSwitch.isChecked = it } - viewModel.shouldOpenHome().observe( + progressViewModel.progress.observe( viewLifecycleOwner, - ) { - Log.d(TAG, "shouldOpenHome() = $it") - if (it) { - openHome() - } + ) { progress -> + setProgressBarCompat(progress) } } @@ -142,7 +149,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { private fun setBackButton(screen: ConnectAssistUiState) { binding.backButton.visibility = if (screen.backButtonVisible) View.VISIBLE else View.INVISIBLE binding.backButton.setOnClickListener { - viewModel.handleBackButtonPressed() + torConnectionAssistViewModel.handleBackButtonPressed() } } @@ -204,10 +211,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { if (screen.torBootstrapButton1Visible) View.VISIBLE else View.GONE binding.torBootstrapButton1.text = getString(screen.torBootstrapButton1TextStringResource) binding.torBootstrapButton1.setOnClickListener { - viewModel.handleButton1Pressed( - screen, - lifecycleScope, - ) + torConnectionAssistViewModel.handleConnect() } } @@ -231,7 +235,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { } } binding.torBootstrapButton2.setOnClickListener { - viewModel.cancelTorBootstrap() + torConnectionAssistViewModel.cancelTorBootstrap() if (screen.torBootstrapButton2ShouldOpenSettings) { openTorConnectionSettings() } else if (screen.torBootstrapButton2ShouldRestartApp) { @@ -279,7 +283,9 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { private fun openHome() { Log.d(TAG, "openHome()") - viewModel.openHome(findNavController()) + findNavController().navigate( + TorConnectionAssistFragmentDirections.actionHome(), + ) } private fun openSettings(preferenceToScrollTo: String? = null) { @@ -308,7 +314,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { } override fun onBackPressed(): Boolean { - return viewModel.handleBackButtonPressed() + return torConnectionAssistViewModel.handleBackButtonPressed() } } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt ===================================== @@ -7,91 +7,42 @@ package org.mozilla.fenix.tor import android.app.Application import android.util.Log import androidx.lifecycle.AndroidViewModel -import androidx.lifecycle.LifecycleCoroutineScope -import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData -import androidx.navigation.NavController import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mozilla.fenix.ext.components class TorConnectionAssistViewModel( application: Application, -) : AndroidViewModel(application), TorEvents { +) : AndroidViewModel(application) { private val TAG = "torConnectionAssistVM" - private val components = getApplication<Application>().components - - private val _torController: TorControllerGV = components.torController + private val torIntegrationAndroid = + application.components.core.geckoRuntime.torIntegrationController + private val _torController: TorControllerGV = application.components.torController private val _torConnectScreen = MutableStateFlow(ConnectAssistUiState.Splash) internal val torConnectScreen: StateFlow<ConnectAssistUiState> = _torConnectScreen - private val _shouldOpenHome = MutableLiveData(false) - fun shouldOpenHome(): LiveData<Boolean> { - return _shouldOpenHome - } - - private val _progress = MutableLiveData(0) - fun progress(): LiveData<Int> { - return _progress - } - - init { - Log.d(TAG, "initiating TorConnectionAssistViewModel $this") - _torController.registerTorListener(this) - } - - var urlToLoadAfterConnecting: String? = null - - fun handleConnect( - urlToLoadAfterConnecting: String? = null, - withDebugLogging: Boolean = false, - lifecycleScope: LifecycleCoroutineScope? = null, - ) { - this.urlToLoadAfterConnecting = urlToLoadAfterConnecting - if (_torController.lastKnownStatus.value.isOff()) { - Log.d(TAG, "handleConnect() triggered, initiatingTorBootstrap") - _torController.initiateTorBootstrap( - withDebugLogging = withDebugLogging, - lifecycleScope = lifecycleScope, - ) - } + val shouldOpenHome: MutableLiveData<Boolean> by lazy { + MutableLiveData(false) } - fun handleButton1Pressed( - screen: ConnectAssistUiState, - lifecycleScope: LifecycleCoroutineScope?, - ) { - if (screen.torBootstrapButton1ShouldShowTryingABridge) { + fun handleConnect() { + if (_torConnectScreen.value.torBootstrapButton1ShouldShowTryingABridge) { tryABridge() } else { - handleConnect(lifecycleScope = lifecycleScope) + if (_torController.lastKnownStatus.value.isOff()) { + torIntegrationAndroid.beginBootstrap() + } } } fun cancelTorBootstrap() { - _torController.stopTor() + torIntegrationAndroid.cancelBootstrap() _torController.setTorStopped() } - override fun onTorConnecting() { - Log.d(TAG, "onTorConnecting()") - } - - override fun onTorConnected() { - Log.d(TAG, "onTorConnected()") - _torController.unregisterTorListener(this) - } - - override fun onTorStatusUpdate(entry: String?, status: String?, progress: Double?) { - Log.d(TAG, "onTorStatusUpdate($entry, $status, $progress)") - if (progress != null) { - _progress.value = progress.toInt() - } - - } - suspend fun collectLastKnownStatus() { _torController.lastKnownStatus.collect { when (it) { @@ -99,8 +50,8 @@ class TorConnectionAssistViewModel( TorConnectState.Configuring -> handleConfiguring() TorConnectState.AutoBootstrapping -> handleBootstrap() TorConnectState.Bootstrapping -> handleBootstrap() - TorConnectState.Bootstrapped -> _shouldOpenHome.value = true - TorConnectState.Disabled -> _shouldOpenHome.value = true + TorConnectState.Bootstrapped -> shouldOpenHome.value = true + TorConnectState.Disabled -> shouldOpenHome.value = true TorConnectState.Error -> handleError() } } @@ -145,10 +96,7 @@ class TorConnectionAssistViewModel( } else -> _torConnectScreen.value = - ConnectAssistUiState.Connecting.also { connectAssistUiState -> - // covers the case of when the bootstrap is already in progress when the UiState "catches up" - connectAssistUiState.progress = _progress.value ?: 0 - } + ConnectAssistUiState.Connecting } } @@ -184,10 +132,6 @@ class TorConnectionAssistViewModel( _torConnectScreen.value = ConnectAssistUiState.InternetError } - override fun onTorStopped() { - Log.d(TAG, "onTorStopped()") - } - private fun tryABridge() { if (!locationFound()) { _torConnectScreen.value = ConnectAssistUiState.LocationError @@ -198,7 +142,7 @@ class TorConnectionAssistViewModel( _torController.bridgeTransport = TorBridgeTransportConfig.BUILTIN_SNOWFLAKE // TODO select based on country } - handleConnect(withDebugLogging = true) + torIntegrationAndroid.beginBootstrap() } private fun locationFound(): Boolean { @@ -249,10 +193,4 @@ class TorConnectionAssistViewModel( } return true } - - fun openHome(navController: NavController) { - navController.navigate( - TorConnectionAssistFragmentDirections.actionHome(), - ) - } } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/UrlQuickLoadViewModel.kt ===================================== @@ -0,0 +1,10 @@ +package org.mozilla.fenix.tor + +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel + +class UrlQuickLoadViewModel : ViewModel() { + val urlToLoadAfterConnecting: MutableLiveData<String?> by lazy { + MutableLiveData<String?>(null) + } +} View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d3a9fcd… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d3a9fcd… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • ...
  • 1853
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.