Pier Angelo Vendrame pushed to branch tor-browser-152.0a1-16.0-2 at The Tor Project / Applications / Tor Browser
Commits:
-
e7b0489a
by Pier Angelo Vendrame at 2026-06-01T18:06:43+02:00
-
7309a181
by Dan Ballard at 2026-06-01T18:13:33+02:00
-
14c9fd38
by Dan Ballard at 2026-06-01T18:13:36+02:00
-
8a8b65ed
by Dan Ballard at 2026-06-03T10:18:19+02:00
-
b3b67947
by clairehurst at 2026-06-03T10:18:23+02:00
-
7f21c905
by clairehurst at 2026-06-03T10:18:24+02:00
-
5c3bfce1
by Beatriz Rizental at 2026-06-03T10:18:29+02:00
-
23d5b38e
by Beatriz Rizental at 2026-06-03T10:18:29+02:00
-
239f4b05
by Beatriz Rizental at 2026-06-03T10:18:30+02:00
-
dc70ecda
by Beatriz Rizental at 2026-06-03T10:18:30+02:00
-
d0e9391d
by Beatriz Rizental at 2026-06-03T10:18:31+02:00
-
1f29f770
by Beatriz Rizental at 2026-06-03T10:18:31+02:00
-
e7971e7d
by Pier Angelo Vendrame at 2026-06-03T10:18:31+02:00
-
1f0e24f2
by Pier Angelo Vendrame at 2026-06-03T10:18:32+02:00
-
612d5910
by Pier Angelo Vendrame at 2026-06-03T10:18:32+02:00
-
f3d3808f
by Henry Wilkes at 2026-06-03T10:18:33+02:00
-
b3ce8889
by Henry Wilkes at 2026-06-03T10:18:33+02:00
-
c5061ebc
by clairehurst at 2026-06-03T10:18:34+02:00
-
07ea23e2
by clairehurst at 2026-06-03T10:25:02+02:00
-
fcc28e78
by hackademix at 2026-06-03T10:50:46+02:00
30 changed files:
- .gitlab/ci/containers/base/Containerfile
- .gitlab/ci/jobs/update-containers.yml
- .gitlab/ci/mixins.yml
- browser/app/profile/000-tor-browser.js
- browser/components/downloads/content/downloads.css
- browser/components/torcircuit/content/torCircuitPanel.css
- dom/media/webrtc/transport/nricestunaddr.cpp
- mobile/android/android-components/components/browser/state/src/main/java/mozilla/components/browser/state/state/TranslationsBrowserState.kt
- mobile/android/android-components/components/concept/ai-controls/src/main/java/mozilla/components/concept/ai/controls/AIFeatureBlock.kt
- mobile/android/android-components/components/lib/ai-controls/src/main/java/mozilla/components/lib/ai/controls/AIFeatureBlockStorage.kt
- mobile/android/fenix/app/nimbus.fml.yaml
- mobile/android/fenix/app/src/beta/res/drawable-hdpi/fenix_search_widget.png
- mobile/android/fenix/app/src/debug/res/drawable-hdpi/fenix_search_widget.png
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.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/TorSecurityLevelFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationsAIControllableFeature.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationsEnabledSettings.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/settings/TranslationsSettingsState.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
- mobile/android/fenix/app/src/main/res/drawable-hdpi/fenix_search_widget.png
- mobile/android/fenix/app/src/main/res/layout/fragment_tor_security_level_preferences.xml
- mobile/android/fenix/app/src/main/res/values/colors.xml
- mobile/android/fenix/app/src/nightly/res/drawable-hdpi/fenix_search_widget.png
- mobile/android/fenix/app/src/release/res/drawable-hdpi/fenix_search_widget.png
- toolkit/components/lox/Lox.sys.mjs
- toolkit/components/tor-launcher/TorControlPort.sys.mjs
- toolkit/components/tor-launcher/TorProvider.sys.mjs
- toolkit/modules/DomainFrontedRequests.sys.mjs
- toolkit/modules/Moat.sys.mjs
Changes:
| ... | ... | @@ -22,18 +22,27 @@ RUN cd tor-browser && \ |
| 22 | 22 | yes | MOZBUILD_STATE_PATH=/var/tmp/mozbuild ./mach bootstrap --application-choice "$APPLICATION_CHOICE" && \
|
| 23 | 23 | cd ..
|
| 24 | 24 | |
| 25 | -ENV PATH="/var/tmp/mozbuild/clang/bin:/root/.cargo/bin:$PATH"
|
|
| 25 | +RUN rm -rf tor-browser && \
|
|
| 26 | + rm -rf /var/lib/apt/lists/* && \
|
|
| 27 | + apt-get clean && \
|
|
| 28 | + rm -rf /var/tmp/mozbuild/toolchains && \
|
|
| 29 | + rm -rf /var/tmp/mozbuild/indices && \
|
|
| 30 | + rm -rf /var/tmp/mozbuild/android-device && \
|
|
| 31 | + rm -rf /var/root/.cargo && \
|
|
| 32 | + rm -rf /var/root/.rustup
|
|
| 33 | + |
|
| 34 | +RUN adduser --uid 1000 --disabled-password --gecos "" gitlab-runner && \
|
|
| 35 | + chown -R 1000:1000 /var/tmp/mozbuild/
|
|
| 36 | + |
|
| 37 | +USER gitlab-runner
|
|
| 38 | +WORKDIR /home/gitlab-runner
|
|
| 26 | 39 | |
| 40 | +# Install Rust for the gitlab-runner user.
|
|
| 41 | +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
|
| 42 | +ENV PATH="/var/tmp/mozbuild/clang/bin:/home/gitlab-runner/.cargo/bin:$PATH"
|
|
| 27 | 43 | RUN echo "$APPLICATION_CHOICE" | grep -qi android && \
|
| 28 | 44 | rustup target add armv7-linux-androideabi \
|
| 29 | 45 | aarch64-linux-android \
|
| 30 | 46 | i686-linux-android \
|
| 31 | 47 | x86_64-linux-android \
|
| 32 | 48 | || true |
| 33 | - |
|
| 34 | -RUN rm -rf tor-browser && \
|
|
| 35 | - apt-get clean && \
|
|
| 36 | - rm -rf /var/lib/apt/lists/* && \
|
|
| 37 | - rm -rf /var/tmp/mozbuild/toolchains && \
|
|
| 38 | - rm -rf /var/tmp/mozbuild/indices && \
|
|
| 39 | - rm -rf /var/tmp/mozbuild/android-device |
| 1 | 1 | build-image:
|
| 2 | 2 | stage: update-container-images
|
| 3 | 3 | interruptible: true
|
| 4 | - image: containers.torproject.org/tpo/tpa/base-images/podman:bookworm
|
|
| 4 | + image: containers.torproject.org/tpo/tpa/base-images/podman:trixie
|
|
| 5 | 5 | parallel:
|
| 6 | 6 | matrix:
|
| 7 | 7 | - PLATFORM: desktop
|
| ... | ... | @@ -2,7 +2,12 @@ |
| 2 | 2 | variables:
|
| 3 | 3 | GIT_STRATEGY: "none"
|
| 4 | 4 | FETCH_TIMEOUT: 180 # 3 minutes
|
| 5 | + |
|
| 6 | + GIT_CONFIG_GLOBAL: "/tmp/gitconfig"
|
|
| 5 | 7 | before_script:
|
| 8 | + - |
|
|
| 9 | + echo "[safe]" > "$GIT_CONFIG_GLOBAL"
|
|
| 10 | + echo " directory = *" >> "$GIT_CONFIG_GLOBAL"
|
|
| 6 | 11 | - git init
|
| 7 | 12 | - git remote add local "$LOCAL_REPO_PATH"
|
| 8 | 13 | - |
|
| ... | ... | @@ -126,8 +126,7 @@ pref("extensions.torlauncher.torrc_path", ""); |
| 126 | 126 | pref("extensions.torlauncher.tordatadir_path", "");
|
| 127 | 127 | |
| 128 | 128 | // BridgeDB-related preferences (used for Moat).
|
| 129 | -pref("extensions.torlauncher.bridgedb_front", "vuejs.org");
|
|
| 130 | -pref("extensions.torlauncher.bridgedb_reflector", "https://bespoke-strudel-c243cc.netlify.app");
|
|
| 129 | +pref("extensions.torlauncher.bridgedb_targets", "https://1723079976.rsc.cdn77.org|cdn.zk.mk+www.cdn77.com");
|
|
| 131 | 130 | pref("extensions.torlauncher.moat_service", "https://bridges.torproject.org/moat");
|
| 132 | 131 | |
| 133 | 132 | // Log levels
|
| ... | ... | @@ -96,7 +96,7 @@ |
| 96 | 96 | }
|
| 97 | 97 | |
| 98 | 98 | #downloadsPanelTorWarning {
|
| 99 | - margin-block-end: var(--arrowpanel-menuitem-padding-block);
|
|
| 99 | + margin-block-end: var(--panel-menuitem-padding-block);
|
|
| 100 | 100 | }
|
| 101 | 101 | |
| 102 | 102 | #downloadsPanelTorWarningWrapper {
|
| ... | ... | @@ -61,7 +61,7 @@ |
| 61 | 61 | |
| 62 | 62 | #tor-circuit-alias:not([hidden]) {
|
| 63 | 63 | /* Same as padding for .panel-header */
|
| 64 | - margin-block-start: var(--arrowpanel-menuitem-margin-inline);
|
|
| 64 | + margin-block-start: var(--panel-menuitem-margin-inline);
|
|
| 65 | 65 | display: flex;
|
| 66 | 66 | align-items: center;
|
| 67 | 67 | }
|
| ... | ... | @@ -84,9 +84,9 @@ |
| 84 | 84 | /* May grow larger than 480px if we have a long domain name or ip address. */
|
| 85 | 85 | min-width: 480px;
|
| 86 | 86 | /* Line up with the button at the bottom of the panel. */
|
| 87 | - margin: var(--arrowpanel-menuitem-margin);
|
|
| 88 | - padding: var(--arrowpanel-menuitem-padding);
|
|
| 89 | - gap: var(--arrowpanel-menuitem-padding-block);
|
|
| 87 | + margin: var(--panel-menuitem-margin);
|
|
| 88 | + padding: var(--panel-menuitem-padding);
|
|
| 89 | + gap: var(--panel-menuitem-padding-block);
|
|
| 90 | 90 | }
|
| 91 | 91 | |
| 92 | 92 | #tor-circuit-node-list-name,
|
| ... | ... | @@ -96,7 +96,7 @@ |
| 96 | 96 | |
| 97 | 97 | #tor-circuit-node-list {
|
| 98 | 98 | list-style: none;
|
| 99 | - padding-inline-start: var(--arrowpanel-menuitem-margin-inline);
|
|
| 99 | + padding-inline-start: var(--panel-menuitem-margin-inline);
|
|
| 100 | 100 | /* Do not allow an item to wrap since this would break the circuit diagram. */
|
| 101 | 101 | white-space: nowrap;
|
| 102 | 102 | }
|
| ... | ... | @@ -27,8 +27,8 @@ NrIceStunAddr::NrIceStunAddr(const nr_local_addr* addr) |
| 27 | 27 | fqdn_(addr->addr.fqdn),
|
| 28 | 28 | is_proxied_(addr->addr.is_proxied),
|
| 29 | 29 | tls_(addr->addr.tls),
|
| 30 | - interface_type_(static_cast<InterfaceType>(addr->interface.type)),
|
|
| 31 | - estimated_speed_(addr->interface.estimated_speed),
|
|
| 30 | + interface_type_(static_cast<InterfaceType>(addr->iface.type)),
|
|
| 31 | + estimated_speed_(addr->iface.estimated_speed),
|
|
| 32 | 32 | temporary_((addr->flags & NR_ADDR_FLAG_TEMPORARY) != 0) {}
|
| 33 | 33 | |
| 34 | 34 | NrIceStunAddr::Protocol NrIceStunAddr::protocolFromNrTransportAddr(
|
| ... | ... | @@ -101,8 +101,8 @@ void NrIceStunAddr::toNrLocalAddr(nr_local_addr& addr) const { |
| 101 | 101 | // generate as_string
|
| 102 | 102 | nr_transport_addr_fmt_addr_string(&addr.addr);
|
| 103 | 103 | |
| 104 | - addr.interface.type = static_cast<int>(interface_type_);
|
|
| 105 | - addr.interface.estimated_speed = estimated_speed_;
|
|
| 104 | + addr.iface.type = static_cast<int>(interface_type_);
|
|
| 105 | + addr.iface.estimated_speed = estimated_speed_;
|
|
| 106 | 106 | |
| 107 | 107 | if (temporary_) {
|
| 108 | 108 | addr.flags |= NR_ADDR_FLAG_TEMPORARY;
|
| ... | ... | @@ -25,7 +25,7 @@ import mozilla.components.concept.engine.translate.TranslationSupport |
| 25 | 25 | * See [TranslationsState.translationError] for session level errors.
|
| 26 | 26 | */
|
| 27 | 27 | data class TranslationsBrowserState(
|
| 28 | - val isTranslationsEnabled: Boolean = true,
|
|
| 28 | + val isTranslationsEnabled: Boolean = false,
|
|
| 29 | 29 | val isEngineSupported: Boolean? = null,
|
| 30 | 30 | val offerTranslation: Boolean? = null,
|
| 31 | 31 | val supportedLanguages: TranslationSupport? = null,
|
| ... | ... | @@ -32,7 +32,7 @@ interface AIFeatureBlock { |
| 32 | 32 | }
|
| 33 | 33 | |
| 34 | 34 | private class InMemoryAIFeatureBlock(initialBlocked: Boolean) : AIFeatureBlock {
|
| 35 | - private val _isBlocked = MutableStateFlow(initialBlocked)
|
|
| 35 | + private val _isBlocked = MutableStateFlow(true)
|
|
| 36 | 36 | override val isBlocked: Flow<Boolean> = _isBlocked
|
| 37 | 37 | |
| 38 | 38 | override suspend fun block() {
|
| ... | ... | @@ -40,6 +40,6 @@ private class InMemoryAIFeatureBlock(initialBlocked: Boolean) : AIFeatureBlock { |
| 40 | 40 | }
|
| 41 | 41 | |
| 42 | 42 | override suspend fun unblock() {
|
| 43 | - _isBlocked.value = false
|
|
| 43 | + _isBlocked.value = true
|
|
| 44 | 44 | }
|
| 45 | 45 | } |
| ... | ... | @@ -28,11 +28,11 @@ internal interface AIFeatureBlockStorage { |
| 28 | 28 | }
|
| 29 | 29 | |
| 30 | 30 | private class InMemoryAiFeatureBlockStorage(initialBlocked: Boolean) : AIFeatureBlockStorage {
|
| 31 | - private val _isBlocked = MutableStateFlow(initialBlocked)
|
|
| 31 | + private val _isBlocked = MutableStateFlow(true)
|
|
| 32 | 32 | override val isBlocked: Flow<Boolean> = _isBlocked
|
| 33 | 33 | |
| 34 | 34 | override suspend fun setBlocked(isBlocked: Boolean) {
|
| 35 | - _isBlocked.value = isBlocked
|
|
| 35 | + _isBlocked.value = true
|
|
| 36 | 36 | }
|
| 37 | 37 | }
|
| 38 | 38 | |
| ... | ... | @@ -46,13 +46,13 @@ internal class DataStoreBackedAIFeatureBlockStorage( |
| 46 | 46 | |
| 47 | 47 | override val isBlocked: Flow<Boolean>
|
| 48 | 48 | get() = dataStore.data.map { preferences ->
|
| 49 | - preferences[isBlockedKey] ?: false
|
|
| 49 | + true
|
|
| 50 | 50 | }
|
| 51 | 51 | |
| 52 | 52 | override suspend fun setBlocked(isBlocked: Boolean) {
|
| 53 | 53 | dataStore.updateData {
|
| 54 | 54 | it.toMutablePreferences().also { preferences ->
|
| 55 | - preferences[isBlockedKey] = isBlocked
|
|
| 55 | + preferences[isBlockedKey] = true
|
|
| 56 | 56 | }
|
| 57 | 57 | }
|
| 58 | 58 | }
|
| ... | ... | @@ -43,28 +43,28 @@ features: |
| 43 | 43 | type: Map<HomeScreenSection, Boolean>
|
| 44 | 44 | default:
|
| 45 | 45 | {
|
| 46 | - "top-sites": true,
|
|
| 47 | - "jump-back-in": true,
|
|
| 46 | + "top-sites": false,
|
|
| 47 | + "jump-back-in": false,
|
|
| 48 | 48 | "bookmarks": true,
|
| 49 | - "recent-explorations": true,
|
|
| 50 | - "pocket": true,
|
|
| 51 | - "pocket-sponsored-stories": true,
|
|
| 52 | - "synced-tabs": true,
|
|
| 53 | - "collections": true,
|
|
| 54 | - "privacy-report": true,
|
|
| 49 | + "recent-explorations": false,
|
|
| 50 | + "pocket": false,
|
|
| 51 | + "pocket-sponsored-stories": false,
|
|
| 52 | + "synced-tabs": false,
|
|
| 53 | + "collections": false,
|
|
| 54 | + "privacy-report": false,
|
|
| 55 | 55 | }
|
| 56 | 56 | defaults:
|
| 57 | 57 | - channel: nightly
|
| 58 | 58 | value: {
|
| 59 | 59 | "sections-enabled": {
|
| 60 | - "top-sites": true,
|
|
| 61 | - "jump-back-in": true,
|
|
| 60 | + "top-sites": false,
|
|
| 61 | + "jump-back-in": false,
|
|
| 62 | 62 | "bookmarks": true,
|
| 63 | - "recent-explorations": true,
|
|
| 64 | - "pocket": true,
|
|
| 65 | - "synced-tabs": true,
|
|
| 66 | - "collections": true,
|
|
| 67 | - "privacy-report": true,
|
|
| 63 | + "recent-explorations": false,
|
|
| 64 | + "pocket": false,
|
|
| 65 | + "synced-tabs": false,
|
|
| 66 | + "collections": false,
|
|
| 67 | + "privacy-report": false,
|
|
| 68 | 68 | }
|
| 69 | 69 | }
|
| 70 | 70 | nimbus-validation:
|
| ... | ... | @@ -221,7 +221,7 @@ features: |
| 221 | 221 | |
| 222 | 222 | glean:
|
| 223 | 223 | description: "A feature that provides server-side configurations for Glean metrics (aka Server Knobs)."
|
| 224 | - allow-coenrollment: true
|
|
| 224 | + allow-coenrollment: false
|
|
| 225 | 225 | variables:
|
| 226 | 226 | gleanMetricConfiguration:
|
| 227 | 227 | description: Configuration for Glean Server Knobs
|
| ... | ... | @@ -230,7 +230,7 @@ features: |
| 230 | 230 | enable-event-timestamps:
|
| 231 | 231 | description: "Enables precise event timestamps for Glean events"
|
| 232 | 232 | type: Boolean
|
| 233 | - default: true
|
|
| 233 | + default: false
|
|
| 234 | 234 | delay-ping-lifetime-io:
|
| 235 | 235 | description: "Glean will delay io for ping lifetime metrics"
|
| 236 | 236 | type: Boolean
|
| ... | ... | @@ -308,7 +308,7 @@ features: |
| 308 | 308 | defaults:
|
| 309 | 309 | - channel: developer
|
| 310 | 310 | value:
|
| 311 | - enabled: true
|
|
| 311 | + enabled: false
|
|
| 312 | 312 | template-message: sent_from_firefox_template
|
| 313 | 313 | download-link: "[Download Link]"
|
| 314 | 314 | show-snackbar: true
|
| ... | ... | @@ -323,13 +323,13 @@ features: |
| 323 | 323 | defaults:
|
| 324 | 324 | - channel: developer
|
| 325 | 325 | value:
|
| 326 | - enabled: true
|
|
| 326 | + enabled: false
|
|
| 327 | 327 | - channel: nightly
|
| 328 | 328 | value:
|
| 329 | - enabled: true
|
|
| 329 | + enabled: false
|
|
| 330 | 330 | - channel: beta
|
| 331 | 331 | value:
|
| 332 | - enabled: true
|
|
| 332 | + enabled: false
|
|
| 333 | 333 | |
| 334 | 334 | setup-checklist:
|
| 335 | 335 | description: A feature on the home page that allows the user to track onboarding setup progress.
|
| ... | ... | @@ -384,11 +384,11 @@ features: |
| 384 | 384 | defaults:
|
| 385 | 385 | - channel: developer
|
| 386 | 386 | value:
|
| 387 | - enabled: true
|
|
| 388 | - boost-amp-wiki: true
|
|
| 387 | + enabled: false
|
|
| 388 | + boost-amp-wiki: false
|
|
| 389 | 389 | - channel: nightly
|
| 390 | 390 | value:
|
| 391 | - enabled: true
|
|
| 391 | + enabled: false
|
|
| 392 | 392 | |
| 393 | 393 | nimbus-is-ready:
|
| 394 | 394 | description: >
|
| ... | ... | @@ -407,42 +407,42 @@ features: |
| 407 | 407 | description: >
|
| 408 | 408 | Show the primary toolbar entry point into the translations feature. (Translations icon on URL toolbar.)
|
| 409 | 409 | type: Boolean
|
| 410 | - default: true
|
|
| 410 | + default: false
|
|
| 411 | 411 | main-flow-browser-menu-enabled:
|
| 412 | 412 | description: >
|
| 413 | 413 | Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.)
|
| 414 | 414 | type: Boolean
|
| 415 | - default: true
|
|
| 415 | + default: false
|
|
| 416 | 416 | page-settings-enabled:
|
| 417 | 417 | description: >
|
| 418 | 418 | Show the page settings entry point within the translations feature. (Gear icon on the translations main flow page.)
|
| 419 | 419 | 'main-flow-toolbar-enabled' or 'main-flow-browser-menu-enabled' must also be enabled for users to access this feature.
|
| 420 | 420 | type: Boolean
|
| 421 | - default: true
|
|
| 421 | + default: false
|
|
| 422 | 422 | global-settings-enabled:
|
| 423 | 423 | description: >
|
| 424 | 424 | Show the global settings entry point within the translations feature. ('Translation Settings' on the page settings view.)
|
| 425 | 425 | 'page-settings-enabled' must also be enabled for users to access this feature.
|
| 426 | 426 | type: Boolean
|
| 427 | - default: true
|
|
| 427 | + default: false
|
|
| 428 | 428 | global-lang-settings-enabled:
|
| 429 | 429 | description: >
|
| 430 | 430 | Show the global language options entry point for automatically translating. ('Automatic Translation' on the global settings view.)
|
| 431 | 431 | 'global-settings-enabled' must also be enabled for users to access this feature.
|
| 432 | 432 | type: Boolean
|
| 433 | - default: true
|
|
| 433 | + default: false
|
|
| 434 | 434 | global-site-settings-enabled:
|
| 435 | 435 | description: >
|
| 436 | 436 | Show the global never translate this site options entry point for site management. ('Never translate these sites' on the global settings view.)
|
| 437 | 437 | 'global-settings-enabled' must also be enabled for users to access this feature.
|
| 438 | 438 | type: Boolean
|
| 439 | - default: true
|
|
| 439 | + default: false
|
|
| 440 | 440 | downloads-enabled:
|
| 441 | 441 | description: >
|
| 442 | 442 | Show the global language model download options entry point for translations. ('Download languages' on the global settings view.)
|
| 443 | 443 | 'global-settings-enabled' must also be enabled for users to access this feature.
|
| 444 | 444 | type: Boolean
|
| 445 | - default: true
|
|
| 445 | + default: false
|
|
| 446 | 446 | |
| 447 | 447 | navigation-toolbar:
|
| 448 | 448 | description: Feature for navigation toolbar.
|
| ... | ... | @@ -455,10 +455,10 @@ features: |
| 455 | 455 | defaults:
|
| 456 | 456 | - channel: developer
|
| 457 | 457 | value:
|
| 458 | - enabled: true
|
|
| 458 | + enabled: false
|
|
| 459 | 459 | - channel: nightly
|
| 460 | 460 | value:
|
| 461 | - enabled: true
|
|
| 461 | + enabled: false
|
|
| 462 | 462 | |
| 463 | 463 | minimal-addressbar:
|
| 464 | 464 | description: Show a smaller height bottom addressbar with just the URL.
|
| ... | ... | @@ -510,7 +510,7 @@ features: |
| 510 | 510 | show a "close" button for tabs that are currently open on other supported devices
|
| 511 | 511 | in the synced tabs tray.
|
| 512 | 512 | type: Boolean
|
| 513 | - default: true
|
|
| 513 | + default: false
|
|
| 514 | 514 | |
| 515 | 515 | fission:
|
| 516 | 516 | description: The feature that controls whether fission is enabled or not in Gecko.
|
| ... | ... | @@ -575,7 +575,7 @@ features: |
| 575 | 575 | description: >
|
| 576 | 576 | Enables / disables fingerprinting protection in private browsing mode.
|
| 577 | 577 | type: Boolean
|
| 578 | - default: true
|
|
| 578 | + default: false
|
|
| 579 | 579 | overrides:
|
| 580 | 580 | description: >
|
| 581 | 581 | The protection overrides to add or remove fingerprinting protection
|
| ... | ... | @@ -629,7 +629,7 @@ features: |
| 629 | 629 | description: >
|
| 630 | 630 | Enables / disables third-party cookie blocking in private browsing mode.
|
| 631 | 631 | type: Boolean
|
| 632 | - default: true
|
|
| 632 | + default: false
|
|
| 633 | 633 | |
| 634 | 634 | safe-browsing-v5:
|
| 635 | 635 | description: Control Safe Browsing V5.
|
| ... | ... | @@ -903,7 +903,7 @@ features: |
| 903 | 903 | description: >
|
| 904 | 904 | Uses search configuration from remote servers .
|
| 905 | 905 | type: Boolean
|
| 906 | - default: true
|
|
| 906 | + default: false
|
|
| 907 | 907 | same-document-navigation-overrides-load-type:
|
| 908 | 908 | description: Control whether the same document navigation overrides the load type.
|
| 909 | 909 | variables:
|
| ... | ... | @@ -924,7 +924,7 @@ features: |
| 924 | 924 | description: >
|
| 925 | 925 | When `true`, include DoH settings in the settings UI.
|
| 926 | 926 | type: Boolean
|
| 927 | - default: true
|
|
| 927 | + default: false
|
|
| 928 | 928 | autoselect-enabled:
|
| 929 | 929 | description: >
|
| 930 | 930 | Controls the network.android_doh.autoselect_enabled pref and automatically chooses a DoH provider when Default Protection mode is selected.
|
| ... | ... | @@ -938,7 +938,7 @@ features: |
| 938 | 938 | description: >
|
| 939 | 939 | Whether or not to enable private browsing mode lock.
|
| 940 | 940 | type: Boolean
|
| 941 | - default: true
|
|
| 941 | + default: false
|
|
| 942 | 942 | |
| 943 | 943 | app-links:
|
| 944 | 944 | description: Control behavior of app links handling in the browser.
|
| ... | ... | @@ -1204,10 +1204,10 @@ features: |
| 1204 | 1204 | defaults:
|
| 1205 | 1205 | - channel: developer
|
| 1206 | 1206 | value:
|
| 1207 | - enabled: true
|
|
| 1207 | + enabled: false
|
|
| 1208 | 1208 | - channel: nightly
|
| 1209 | 1209 | value:
|
| 1210 | - enabled: true
|
|
| 1210 | + enabled: false
|
|
| 1211 | 1211 | |
| 1212 | 1212 | private-mode-and-stories-entry-point:
|
| 1213 | 1213 | description: Feature to enable the Private Mode and Stories Entry Point Experiment.
|
| ... | ... | @@ -1276,7 +1276,7 @@ features: |
| 1276 | 1276 | defaults:
|
| 1277 | 1277 | - channel: developer
|
| 1278 | 1278 | value:
|
| 1279 | - enabled: true
|
|
| 1279 | + enabled: false
|
|
| 1280 | 1280 | - channel: nightly
|
| 1281 | 1281 | value:
|
| 1282 | 1282 | enabled: false
|
| ... | ... | @@ -390,7 +390,7 @@ class MenuDialogFragment : BottomSheetDialogFragment() { |
| 390 | 390 | }.collectAsState(initial = false)
|
| 391 | 391 | |
| 392 | 392 | val isTranslationsEnabled = TranslationsEnabledSettings.dataStore(requireContext())
|
| 393 | - .isEnabled.collectAsState(true)
|
|
| 393 | + .isEnabled.collectAsState(false)
|
|
| 394 | 394 | |
| 395 | 395 | MenuDialogBottomSheet(
|
| 396 | 396 | modifier = Modifier
|
| ... | ... | @@ -6,6 +6,7 @@ package org.mozilla.fenix.tor |
| 6 | 6 | |
| 7 | 7 | import android.content.Intent
|
| 8 | 8 | import android.graphics.Color
|
| 9 | +import android.graphics.Typeface
|
|
| 9 | 10 | import android.os.Build
|
| 10 | 11 | import android.os.Bundle
|
| 11 | 12 | import android.text.SpannableString
|
| ... | ... | @@ -82,6 +83,9 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler, SystemIn |
| 82 | 83 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
| 83 | 84 | super.onViewCreated(view, savedInstanceState)
|
| 84 | 85 | |
| 86 | + binding.torBootstrapButton1.setTypeface(null, Typeface.BOLD)
|
|
| 87 | + binding.torBootstrapButton2.setTypeface(null, Typeface.BOLD)
|
|
| 88 | + |
|
| 85 | 89 | viewLifecycleOwner.lifecycleScope.launch {
|
| 86 | 90 | repeatOnLifecycle(Lifecycle.State.STARTED) {
|
| 87 | 91 | torConnectionAssistViewModel.torConnectScreen.collect { screen ->
|
| ... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 | package org.mozilla.fenix.tor
|
| 6 | 6 | |
| 7 | 7 | import android.content.Context
|
| 8 | +import android.graphics.Typeface
|
|
| 8 | 9 | import android.os.Bundle
|
| 9 | 10 | import android.util.Log
|
| 10 | 11 | import android.view.LayoutInflater
|
| ... | ... | @@ -44,6 +45,9 @@ class TorSecurityLevelFragment : Fragment(), SystemInsetsPaddedFragment { |
| 44 | 45 | |
| 45 | 46 | binding.description.text = getString(R.string.tor_security_level_warning, getString(R.string.app_name))
|
| 46 | 47 | |
| 48 | + binding.saveAndRestartButton.setTypeface(null, Typeface.BOLD)
|
|
| 49 | + binding.cancelButton.setTypeface(null, Typeface.BOLD)
|
|
| 50 | + |
|
| 47 | 51 | updateSaveAndRestartButtonUI()
|
| 48 | 52 | |
| 49 | 53 | val currentLevel: Int = requireContext().components.core.engine.settings.torSecurityLevel
|
| ... | ... | @@ -79,6 +83,11 @@ class TorSecurityLevelFragment : Fragment(), SystemInsetsPaddedFragment { |
| 79 | 83 | updateSaveAndRestartButtonUI()
|
| 80 | 84 | }
|
| 81 | 85 | |
| 86 | + binding.saveAndRestartButton.backgroundTintList = AppCompatResources.getColorStateList(
|
|
| 87 | + requireContext(),
|
|
| 88 | + R.color.disabled_connect_button_purple,
|
|
| 89 | + )
|
|
| 90 | + |
|
| 82 | 91 | binding.saveAndRestartButton.setOnClickListener {
|
| 83 | 92 | |
| 84 | 93 | Toast.makeText(
|
| ... | ... | @@ -111,6 +120,10 @@ class TorSecurityLevelFragment : Fragment(), SystemInsetsPaddedFragment { |
| 111 | 120 | (requireActivity() as HomeActivity).restartApplication()
|
| 112 | 121 | }
|
| 113 | 122 | |
| 123 | + binding.cancelButton.backgroundTintList = AppCompatResources.getColorStateList(
|
|
| 124 | + requireContext(),
|
|
| 125 | + R.color.settings_button_white,
|
|
| 126 | + )
|
|
| 114 | 127 | binding.cancelButton.setOnClickListener {
|
| 115 | 128 | @Suppress("DEPRECATION")
|
| 116 | 129 | requireActivity().onBackPressed()
|
| ... | ... | @@ -22,8 +22,8 @@ class TranslationsAIControllableFeature( |
| 22 | 22 | override val isEnabled: Flow<Boolean> = settings.isEnabled
|
| 23 | 23 | |
| 24 | 24 | override suspend fun set(enabled: Boolean) {
|
| 25 | - settings.setEnabled(enabled)
|
|
| 26 | - browserStore.dispatch(TranslationsAction.SetTranslationsEnabledAction(enabled))
|
|
| 25 | + settings.setEnabled(false)
|
|
| 26 | + browserStore.dispatch(TranslationsAction.SetTranslationsEnabledAction(false))
|
|
| 27 | 27 | }
|
| 28 | 28 | |
| 29 | 29 | companion object : AIFeatureMetadata {
|
| ... | ... | @@ -29,10 +29,10 @@ interface TranslationsEnabledSettings { |
| 29 | 29 | * An in-memory version for tests, previews, etc.
|
| 30 | 30 | */
|
| 31 | 31 | fun inMemory(isEnabledInitial: Boolean = false) = object : TranslationsEnabledSettings {
|
| 32 | - private val _isEnabled = MutableStateFlow(isEnabledInitial)
|
|
| 32 | + private val _isEnabled = MutableStateFlow(false)
|
|
| 33 | 33 | override val isEnabled: Flow<Boolean> = _isEnabled
|
| 34 | 34 | override suspend fun setEnabled(isEnabled: Boolean) {
|
| 35 | - _isEnabled.value = isEnabled
|
|
| 35 | + _isEnabled.value = false
|
|
| 36 | 36 | }
|
| 37 | 37 | }
|
| 38 | 38 | |
| ... | ... | @@ -50,13 +50,13 @@ internal class DataStoreBackedTranslationsEnabledSettings( |
| 50 | 50 | private val isEnabledKey = booleanPreferencesKey("is_enabled_key")
|
| 51 | 51 | |
| 52 | 52 | override val isEnabled: Flow<Boolean> = dataStore.data.map { preferences ->
|
| 53 | - preferences[isEnabledKey] ?: true
|
|
| 53 | + false
|
|
| 54 | 54 | }
|
| 55 | 55 | |
| 56 | 56 | override suspend fun setEnabled(isEnabled: Boolean) {
|
| 57 | 57 | dataStore.updateData {
|
| 58 | 58 | it.toMutablePreferences().also { preferences ->
|
| 59 | - preferences[isEnabledKey] = isEnabled
|
|
| 59 | + preferences[isEnabledKey] = false
|
|
| 60 | 60 | }
|
| 61 | 61 | }
|
| 62 | 62 | }
|
| ... | ... | @@ -21,6 +21,6 @@ data class TranslationsSettingsState( |
| 21 | 21 | val showAutomaticTranslations: Boolean,
|
| 22 | 22 | val showNeverTranslate: Boolean,
|
| 23 | 23 | val showDownloads: Boolean,
|
| 24 | - val translationsEnabled: Boolean,
|
|
| 24 | + val translationsEnabled: Boolean = false,
|
|
| 25 | 25 | val switchItems: List<TranslationSwitchItem>,
|
| 26 | 26 | ) |
| ... | ... | @@ -545,7 +545,7 @@ class Settings( |
| 545 | 545 | |
| 546 | 546 | var privateBrowsingLockedFeatureEnabled by booleanPreference(
|
| 547 | 547 | key = appContext.getPreferenceKey(R.string.pref_key_private_browsing_locked_enabled),
|
| 548 | - default = { false },
|
|
| 548 | + default = { FxNimbus.features.privateBrowsingLock.value().enabled },
|
|
| 549 | 549 | )
|
| 550 | 550 | |
| 551 | 551 | var privateBrowsingModeLocked by booleanPreference(
|
| ... | ... | @@ -1905,7 +1905,7 @@ class Settings( |
| 1905 | 1905 | |
| 1906 | 1906 | var shouldShowVoiceSearch by booleanPreference(
|
| 1907 | 1907 | appContext.getPreferenceKey(R.string.pref_key_show_voice_search),
|
| 1908 | - default = true,
|
|
| 1908 | + default = false,
|
|
| 1909 | 1909 | )
|
| 1910 | 1910 | |
| 1911 | 1911 | /**
|
| ... | ... | @@ -2374,7 +2374,7 @@ class Settings( |
| 2374 | 2374 | */
|
| 2375 | 2375 | var shouldShowMarketingOnboarding by booleanPreference(
|
| 2376 | 2376 | appContext.getPreferenceKey(R.string.pref_key_should_show_marketing_onboarding),
|
| 2377 | - default = true,
|
|
| 2377 | + default = false,
|
|
| 2378 | 2378 | )
|
| 2379 | 2379 | |
| 2380 | 2380 | var shouldUseMinimalBottomToolbarWhenEnteringText by booleanPreference(
|
| ... | ... | @@ -2699,7 +2699,7 @@ class Settings( |
| 2699 | 2699 | */
|
| 2700 | 2700 | var isFirstTimeEngagingWithSignup: Boolean by booleanPreference(
|
| 2701 | 2701 | appContext.getPreferenceKey(R.string.pref_key_first_time_engage_with_signup),
|
| 2702 | - default = true,
|
|
| 2702 | + default = false,
|
|
| 2703 | 2703 | )
|
| 2704 | 2704 | |
| 2705 | 2705 | /**
|
| ... | ... | @@ -2803,7 +2803,7 @@ class Settings( |
| 2803 | 2803 | |
| 2804 | 2804 | var aiControlsFeatureFlagEnabled by booleanPreference(
|
| 2805 | 2805 | key = appContext.getPreferenceKey(R.string.pref_key_enable_ai_controls),
|
| 2806 | - default = true,
|
|
| 2806 | + default = false,
|
|
| 2807 | 2807 | )
|
| 2808 | 2808 | |
| 2809 | 2809 | /**
|
| ... | ... | @@ -82,7 +82,6 @@ |
| 82 | 82 | android:layout_marginEnd="24dp"
|
| 83 | 83 | android:layout_marginBottom="8dp"
|
| 84 | 84 | android:background="@drawable/rounded_corners"
|
| 85 | - android:backgroundTint="@color/connect_button_purple"
|
|
| 86 | 85 | android:enabled="false"
|
| 87 | 86 | android:minWidth="360dp"
|
| 88 | 87 | android:text="@string/tor_security_level_save_and_restart_tor_browser"
|
| ... | ... | @@ -103,7 +102,6 @@ |
| 103 | 102 | android:layout_marginEnd="24dp"
|
| 104 | 103 | android:layout_marginBottom="8dp"
|
| 105 | 104 | android:background="@drawable/rounded_corners"
|
| 106 | - android:backgroundTint="@color/configure_connection_button_white"
|
|
| 107 | 105 | android:minWidth="360dp"
|
| 108 | 106 | android:text="@string/btn_cancel"
|
| 109 | 107 | android:textAlignment="center"
|
| ... | ... | @@ -121,9 +121,9 @@ |
| 121 | 121 | <color name="fx_mobile_private_on_tertiary">@color/photonDarkGrey90</color>
|
| 122 | 122 | <color name="fx_mobile_private_tertiary_container">@color/photonPink80</color>
|
| 123 | 123 | <color name="fx_mobile_private_on_tertiary_container">@color/photonLightGrey05</color>
|
| 124 | - <color name="fx_mobile_private_background">#FF342B4A</color>
|
|
| 124 | + <color name="fx_mobile_private_background">#321C64</color>
|
|
| 125 | 125 | <color name="fx_mobile_private_on_background">@color/photonLightGrey05</color>
|
| 126 | - <color name="fx_mobile_private_surface">#FF342B4A</color>
|
|
| 126 | + <color name="fx_mobile_private_surface">#321C64</color>
|
|
| 127 | 127 | <color name="fx_mobile_private_on_surface">@color/photonLightGrey05</color>
|
| 128 | 128 | <color name="fx_mobile_private_surface_variant">#FF413857</color>
|
| 129 | 129 | <color name="fx_mobile_private_on_surface_variant">@color/photonLightGrey40</color>
|
| ... | ... | @@ -310,9 +310,9 @@ |
| 310 | 310 | <color name="mozac_ui_lock_slash_fill_critical" tools:ignore="UnusedResources">@color/fx_mobile_icon_color_critical</color>
|
| 311 | 311 | |
| 312 | 312 | <!-- Connection Assist -->
|
| 313 | - <color name="connect_button_purple">#9059FF</color>
|
|
| 314 | - <color name="disabled_connect_button_purple">#5C42A9</color>
|
|
| 315 | - <color name="disabled_text_gray_purple">#8782A9</color>
|
|
| 313 | + <color name="connect_button_purple">#7542E5</color>
|
|
| 314 | + <color name="disabled_connect_button_purple">#542FA4</color>
|
|
| 315 | + <color name="disabled_text_gray_purple">#9781C8</color>
|
|
| 316 | 316 | <color name="configure_connection_button_white">#E1E0E7</color>
|
| 317 | 317 | <color name="warning_yellow">#FFA436</color>
|
| 318 | 318 | <color name="progress_background_tint">#55148C</color>
|
| ... | ... | @@ -1077,15 +1077,12 @@ class LoxImpl { |
| 1077 | 1077 | if (this.#domainFrontedRequests === null) {
|
| 1078 | 1078 | this.#domainFrontedRequests = new Promise((resolve, reject) => {
|
| 1079 | 1079 | // TODO: Customize to the values for Lox
|
| 1080 | - const reflector = Services.prefs.getStringPref(
|
|
| 1081 | - "extensions.torlauncher.bridgedb_reflector"
|
|
| 1082 | - );
|
|
| 1083 | - const front = Services.prefs.getStringPref(
|
|
| 1084 | - "extensions.torlauncher.bridgedb_front"
|
|
| 1080 | + const targets = Services.prefs.getStringPref(
|
|
| 1081 | + "extensions.torlauncher.bridgedb_targets"
|
|
| 1085 | 1082 | );
|
| 1086 | 1083 | const builder = new lazy.DomainFrontRequestBuilder();
|
| 1087 | 1084 | builder
|
| 1088 | - .init(reflector, front)
|
|
| 1085 | + .init(targets)
|
|
| 1089 | 1086 | .then(() => resolve(builder))
|
| 1090 | 1087 | .catch(reject);
|
| 1091 | 1088 | });
|
| ... | ... | @@ -672,6 +672,8 @@ export class TorController { |
| 672 | 672 | /**
|
| 673 | 673 | * Authenticate to the tor daemon.
|
| 674 | 674 | * Notice that a failure in the authentication makes the connection close.
|
| 675 | + * This function tolerates empty and false-ish passwords because a client
|
|
| 676 | + * needs to authenticate even when all authentication methods are disabled.
|
|
| 675 | 677 | *
|
| 676 | 678 | * @param {Uint8Array} password The password for the control port, as an array
|
| 677 | 679 | * of bytes
|
| ... | ... | @@ -680,7 +682,11 @@ export class TorController { |
| 680 | 682 | const passwordString = Array.from(password ?? [], b =>
|
| 681 | 683 | b.toString(16).padStart(2, "0")
|
| 682 | 684 | ).join("");
|
| 683 | - await this.#sendCommandSimple(`authenticate ${passwordString}`);
|
|
| 685 | + let command = "AUTHENTICATE";
|
|
| 686 | + if (passwordString) {
|
|
| 687 | + command += ` ${passwordString}`;
|
|
| 688 | + }
|
|
| 689 | + await this.#sendCommandSimple(command);
|
|
| 684 | 690 | }
|
| 685 | 691 | |
| 686 | 692 | // Information
|
| ... | ... | @@ -834,6 +834,9 @@ export class TorProvider extends TorProviderBase { |
| 834 | 834 | this.#controlPortSettings.cookieFilePath
|
| 835 | 835 | );
|
| 836 | 836 | }
|
| 837 | + // As per the spec, we must always authenticate to the control port, even
|
|
| 838 | + // when all authentication methods are disabled.
|
|
| 839 | + // https://spec.torproject.org/control-spec/commands.html#authenticate
|
|
| 837 | 840 | await controlPort.authenticate(password);
|
| 838 | 841 | } catch (e) {
|
| 839 | 842 | try {
|
| ... | ... | @@ -24,38 +24,20 @@ ChromeUtils.defineESModuleGetters(lazy, { |
| 24 | 24 | * proxy credentials, which can be prepared with this function.
|
| 25 | 25 | *
|
| 26 | 26 | * @param {string} proxyType The proxy type (socks for socks5 or socks4)
|
| 27 | - * @param {string} reflector The URL of the service hosted by the CDN
|
|
| 28 | - * @param {string} front The domain to use as a front
|
|
| 27 | + * @param {string} targets The string to pass to meek as the targets argument
|
|
| 29 | 28 | * @returns {string[]} An array containing [username, password]
|
| 30 | 29 | */
|
| 31 | -function makeMeekCredentials(proxyType, reflector, front) {
|
|
| 32 | - // Construct the per-connection arguments.
|
|
| 33 | - let meekClientEscapedArgs = "";
|
|
| 34 | - |
|
| 30 | +function makeMeekCredentials(proxyType, targets) {
|
|
| 35 | 31 | // Escape aValue per section 3.5 of the PT specification:
|
| 36 | 32 | // First the "<Key>=<Value>" formatted arguments MUST be escaped,
|
| 37 | 33 | // such that all backslash, equal sign, and semicolon characters
|
| 38 | 34 | // are escaped with a backslash.
|
| 39 | - const escapeArgValue = aValue =>
|
|
| 40 | - aValue
|
|
| 41 | - ? aValue
|
|
| 42 | - .replaceAll("\\", "\\\\")
|
|
| 43 | - .replaceAll("=", "\\=")
|
|
| 44 | - .replaceAll(";", "\\;")
|
|
| 45 | - : "";
|
|
| 46 | - |
|
| 47 | - if (reflector) {
|
|
| 48 | - meekClientEscapedArgs += "url=";
|
|
| 49 | - meekClientEscapedArgs += escapeArgValue(reflector);
|
|
| 50 | - }
|
|
| 51 | - |
|
| 52 | - if (front) {
|
|
| 53 | - if (meekClientEscapedArgs.length) {
|
|
| 54 | - meekClientEscapedArgs += ";";
|
|
| 55 | - }
|
|
| 56 | - meekClientEscapedArgs += "front=";
|
|
| 57 | - meekClientEscapedArgs += escapeArgValue(front);
|
|
| 58 | - }
|
|
| 35 | + targets = targets
|
|
| 36 | + .replaceAll("\\", "\\\\")
|
|
| 37 | + .replaceAll("=", "\\=")
|
|
| 38 | + .replaceAll(";", "\\;");
|
|
| 39 | + // Construct the per-connection arguments.
|
|
| 40 | + const meekClientEscapedArgs = `targets=${targets}`;
|
|
| 59 | 41 | |
| 60 | 42 | // socks5
|
| 61 | 43 | if (proxyType === "socks") {
|
| ... | ... | @@ -88,7 +70,7 @@ class MeekTransport { |
| 88 | 70 | #meekClientProcess = null;
|
| 89 | 71 | |
| 90 | 72 | // launches the meekprocess
|
| 91 | - async init(reflector, front) {
|
|
| 73 | + async init(targets) {
|
|
| 92 | 74 | // ensure we haven't already init'd
|
| 93 | 75 | if (this.#inited) {
|
| 94 | 76 | throw new Error("MeekTransport: Already initialized");
|
| ... | ... | @@ -267,8 +249,7 @@ class MeekTransport { |
| 267 | 249 | });
|
| 268 | 250 | [this.proxyUsername, this.proxyPassword] = makeMeekCredentials(
|
| 269 | 251 | this.proxyType,
|
| 270 | - reflector,
|
|
| 271 | - front
|
|
| 252 | + targets
|
|
| 272 | 253 | );
|
| 273 | 254 | this.#inited = true;
|
| 274 | 255 | } catch (ex) {
|
| ... | ... | @@ -321,7 +302,7 @@ class MeekTransportAndroid { |
| 321 | 302 | */
|
| 322 | 303 | #id = 0;
|
| 323 | 304 | |
| 324 | - async init(reflector, front) {
|
|
| 305 | + async init(targets) {
|
|
| 325 | 306 | // ensure we haven't already init'd
|
| 326 | 307 | if (this.#id) {
|
| 327 | 308 | throw new Error("MeekTransport: Already initialized");
|
| ... | ... | @@ -336,8 +317,7 @@ class MeekTransportAndroid { |
| 336 | 317 | this.proxyPort = details.port;
|
| 337 | 318 | [this.proxyUsername, this.proxyPassword] = makeMeekCredentials(
|
| 338 | 319 | this.proxyType,
|
| 339 | - reflector,
|
|
| 340 | - front
|
|
| 320 | + targets
|
|
| 341 | 321 | );
|
| 342 | 322 | }
|
| 343 | 323 | |
| ... | ... | @@ -457,7 +437,7 @@ export class DomainFrontRequestBuilder { |
| 457 | 437 | return this.#inited;
|
| 458 | 438 | }
|
| 459 | 439 | |
| 460 | - async init(reflector, front) {
|
|
| 440 | + async init(targets) {
|
|
| 461 | 441 | if (this.#inited) {
|
| 462 | 442 | throw new Error("DomainFrontRequestBuilder: Already initialized");
|
| 463 | 443 | }
|
| ... | ... | @@ -466,7 +446,7 @@ export class DomainFrontRequestBuilder { |
| 466 | 446 | Services.appinfo.OS === "Android"
|
| 467 | 447 | ? new MeekTransportAndroid()
|
| 468 | 448 | : new MeekTransport();
|
| 469 | - await meekTransport.init(reflector, front);
|
|
| 449 | + await meekTransport.init(targets);
|
|
| 470 | 450 | this.#meekTransport = meekTransport;
|
| 471 | 451 | this.#inited = true;
|
| 472 | 452 | }
|
| ... | ... | @@ -18,8 +18,7 @@ ChromeUtils.defineESModuleGetters(lazy, { |
| 18 | 18 | });
|
| 19 | 19 | |
| 20 | 20 | const TorLauncherPrefs = Object.freeze({
|
| 21 | - bridgedb_front: "extensions.torlauncher.bridgedb_front",
|
|
| 22 | - bridgedb_reflector: "extensions.torlauncher.bridgedb_reflector",
|
|
| 21 | + bridgedb_targets: "extensions.torlauncher.bridgedb_targets",
|
|
| 23 | 22 | moat_service: "extensions.torlauncher.moat_service",
|
| 24 | 23 | });
|
| 25 | 24 | |
| ... | ... | @@ -68,13 +67,12 @@ export class MoatRPC { |
| 68 | 67 | return;
|
| 69 | 68 | }
|
| 70 | 69 | |
| 71 | - const reflector = Services.prefs.getStringPref(
|
|
| 72 | - TorLauncherPrefs.bridgedb_reflector
|
|
| 70 | + const targets = Services.prefs.getStringPref(
|
|
| 71 | + TorLauncherPrefs.bridgedb_targets
|
|
| 73 | 72 | );
|
| 74 | - const front = Services.prefs.getStringPref(TorLauncherPrefs.bridgedb_front);
|
|
| 75 | 73 | this.#requestBuilder = new lazy.DomainFrontRequestBuilder();
|
| 76 | 74 | try {
|
| 77 | - await this.#requestBuilder.init(reflector, front);
|
|
| 75 | + await this.#requestBuilder.init(targets);
|
|
| 78 | 76 | } catch (e) {
|
| 79 | 77 | this.#requestBuilder = null;
|
| 80 | 78 | throw e;
|