5 files + 33 − 11 Inline Compare changes Side-by-side Inline Show whitespace changes Files 5 browser/app/profile/001-base-profile.js +1 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,7 @@ pref("privacy.donottrackheader.enabled", false); // (mullvad-browser#17) // Make sure there is no Tracking Protection active in Tor Browser, see: #17898. pref("privacy.trackingprotection.enabled", false); pref("privacy.trackingprotection.pbmode.enabled", false); pref("privacy.trackingprotection.emailtracking.pbmode.enabled", false); pref("privacy.trackingprotection.annotate_channels", false); pref("privacy.trackingprotection.cryptomining.enabled", false); pref("privacy.trackingprotection.fingerprinting.enabled", false); Loading mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/SearchUseCases.kt +24 −7 Original line number Diff line number Diff line Loading @@ -13,6 +13,8 @@ import mozilla.components.browser.state.state.SessionState import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine import mozilla.components.browser.state.store.BrowserStore import mozilla.components.concept.engine.EngineSession import mozilla.components.concept.engine.Settings import mozilla.components.concept.engine.UnsupportedSettingException import mozilla.components.feature.search.ext.buildSearchUrl import mozilla.components.feature.session.SessionUseCases import mozilla.components.feature.tabs.TabsUseCases Loading @@ -25,6 +27,7 @@ class SearchUseCases( store: BrowserStore, tabsUseCases: TabsUseCases, sessionUseCases: SessionUseCases, settings: Settings? = null, ) { interface SearchUseCase { /** Loading @@ -41,6 +44,7 @@ class SearchUseCases( private val store: BrowserStore, private val tabsUseCases: TabsUseCases, private val sessionUseCases: SessionUseCases, private val settings: Settings? = null, ) : SearchUseCase { private val logger = Logger("DefaultSearchUseCase") Loading Loading @@ -72,9 +76,15 @@ class SearchUseCases( flags: EngineSession.LoadUrlFlags = EngineSession.LoadUrlFlags.none(), additionalHeaders: Map<String, String>? = null, ) { var securityLevel: Int try { securityLevel = settings?.torSecurityLevel ?: 0 } catch (e: UnsupportedSettingException) { securityLevel = 0 } val searchUrl = searchEngine?.let { searchEngine.buildSearchUrl(searchTerms) } ?: store.state.search.selectedOrDefaultSearchEngine?.buildSearchUrl(searchTerms) searchEngine.buildSearchUrl(searchTerms, securityLevel) } ?: store.state.search.selectedOrDefaultSearchEngine?.buildSearchUrl(searchTerms, securityLevel) if (searchUrl == null) { logger.warn("No default search engine available to perform search") Loading Loading @@ -124,6 +134,7 @@ class SearchUseCases( private val store: BrowserStore, private val tabsUseCases: TabsUseCases, private val isPrivate: Boolean, private val settings: Settings? = null, ) : SearchUseCase { private val logger = Logger("NewTabSearchUseCase") Loading Loading @@ -161,9 +172,15 @@ class SearchUseCases( flags: EngineSession.LoadUrlFlags = EngineSession.LoadUrlFlags.none(), additionalHeaders: Map<String, String>? = null, ) { var securityLevel: Int try { securityLevel = settings?.torSecurityLevel ?: 0 } catch (e: UnsupportedSettingException) { securityLevel = 0 } val searchUrl = searchEngine?.let { searchEngine.buildSearchUrl(searchTerms) } ?: store.state.search.selectedOrDefaultSearchEngine?.buildSearchUrl(searchTerms) searchEngine.buildSearchUrl(searchTerms, securityLevel) } ?: store.state.search.selectedOrDefaultSearchEngine?.buildSearchUrl(searchTerms, securityLevel) if (searchUrl == null) { logger.warn("No default search engine available to perform search") Loading Loading @@ -310,15 +327,15 @@ class SearchUseCases( } val defaultSearch: DefaultSearchUseCase by lazy { DefaultSearchUseCase(store, tabsUseCases, sessionUseCases) DefaultSearchUseCase(store, tabsUseCases, sessionUseCases, settings) } val newTabSearch: NewTabSearchUseCase by lazy { NewTabSearchUseCase(store, tabsUseCases, false) NewTabSearchUseCase(store, tabsUseCases, false, settings) } val newPrivateTabSearch: NewTabSearchUseCase by lazy { NewTabSearchUseCase(store, tabsUseCases, true) NewTabSearchUseCase(store, tabsUseCases, true, settings) } val addSearchEngine: AddNewSearchEngineUseCase by lazy { Loading mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/ext/SearchEngine.kt +2 −2 Original line number Diff line number Diff line Loading @@ -85,9 +85,9 @@ fun SearchEngine.buildSuggestionsURL(query: String): String? { /** * Builds a URL to search for the given search terms with this search engine. */ fun SearchEngine.buildSearchUrl(searchTerm: String): String { fun SearchEngine.buildSearchUrl(searchTerm: String, securityLevel: Int = 0): String { val builder = SearchUrlBuilder(this) return builder.buildSearchUrl(searchTerm) return builder.buildSearchUrl(searchTerm, securityLevel) } /** Loading mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/internal/SearchUrlBuilder.kt +5 −2 Original line number Diff line number Diff line Loading @@ -28,9 +28,12 @@ private const val OS_PARAM_OPTIONAL = "\\{" + "(?:\\w+:)?\\w+?" + "\\}" internal class SearchUrlBuilder( private val searchEngine: SearchEngine, ) { fun buildSearchUrl(searchTerms: String): String { fun buildSearchUrl(searchTerms: String, securityLevel: Int): String { // The parser should have put the best URL for this device at the beginning of the list. val template = searchEngine.resultUrls[0] var template = searchEngine.resultUrls[0] if (securityLevel == 1 && (searchEngine.id == "ddg" || searchEngine.id == "ddg-onion")) { template = template.replaceFirst("/?", "/html/?") } return buildUrl(template, searchTerms) } Loading mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/UseCases.kt +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ class UseCases( store, tabsUseCases, sessionUseCases, engine.settings, ) } Loading Loading
browser/app/profile/001-base-profile.js +1 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,7 @@ pref("privacy.donottrackheader.enabled", false); // (mullvad-browser#17) // Make sure there is no Tracking Protection active in Tor Browser, see: #17898. pref("privacy.trackingprotection.enabled", false); pref("privacy.trackingprotection.pbmode.enabled", false); pref("privacy.trackingprotection.emailtracking.pbmode.enabled", false); pref("privacy.trackingprotection.annotate_channels", false); pref("privacy.trackingprotection.cryptomining.enabled", false); pref("privacy.trackingprotection.fingerprinting.enabled", false); Loading
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/SearchUseCases.kt +24 −7 Original line number Diff line number Diff line Loading @@ -13,6 +13,8 @@ import mozilla.components.browser.state.state.SessionState import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine import mozilla.components.browser.state.store.BrowserStore import mozilla.components.concept.engine.EngineSession import mozilla.components.concept.engine.Settings import mozilla.components.concept.engine.UnsupportedSettingException import mozilla.components.feature.search.ext.buildSearchUrl import mozilla.components.feature.session.SessionUseCases import mozilla.components.feature.tabs.TabsUseCases Loading @@ -25,6 +27,7 @@ class SearchUseCases( store: BrowserStore, tabsUseCases: TabsUseCases, sessionUseCases: SessionUseCases, settings: Settings? = null, ) { interface SearchUseCase { /** Loading @@ -41,6 +44,7 @@ class SearchUseCases( private val store: BrowserStore, private val tabsUseCases: TabsUseCases, private val sessionUseCases: SessionUseCases, private val settings: Settings? = null, ) : SearchUseCase { private val logger = Logger("DefaultSearchUseCase") Loading Loading @@ -72,9 +76,15 @@ class SearchUseCases( flags: EngineSession.LoadUrlFlags = EngineSession.LoadUrlFlags.none(), additionalHeaders: Map<String, String>? = null, ) { var securityLevel: Int try { securityLevel = settings?.torSecurityLevel ?: 0 } catch (e: UnsupportedSettingException) { securityLevel = 0 } val searchUrl = searchEngine?.let { searchEngine.buildSearchUrl(searchTerms) } ?: store.state.search.selectedOrDefaultSearchEngine?.buildSearchUrl(searchTerms) searchEngine.buildSearchUrl(searchTerms, securityLevel) } ?: store.state.search.selectedOrDefaultSearchEngine?.buildSearchUrl(searchTerms, securityLevel) if (searchUrl == null) { logger.warn("No default search engine available to perform search") Loading Loading @@ -124,6 +134,7 @@ class SearchUseCases( private val store: BrowserStore, private val tabsUseCases: TabsUseCases, private val isPrivate: Boolean, private val settings: Settings? = null, ) : SearchUseCase { private val logger = Logger("NewTabSearchUseCase") Loading Loading @@ -161,9 +172,15 @@ class SearchUseCases( flags: EngineSession.LoadUrlFlags = EngineSession.LoadUrlFlags.none(), additionalHeaders: Map<String, String>? = null, ) { var securityLevel: Int try { securityLevel = settings?.torSecurityLevel ?: 0 } catch (e: UnsupportedSettingException) { securityLevel = 0 } val searchUrl = searchEngine?.let { searchEngine.buildSearchUrl(searchTerms) } ?: store.state.search.selectedOrDefaultSearchEngine?.buildSearchUrl(searchTerms) searchEngine.buildSearchUrl(searchTerms, securityLevel) } ?: store.state.search.selectedOrDefaultSearchEngine?.buildSearchUrl(searchTerms, securityLevel) if (searchUrl == null) { logger.warn("No default search engine available to perform search") Loading Loading @@ -310,15 +327,15 @@ class SearchUseCases( } val defaultSearch: DefaultSearchUseCase by lazy { DefaultSearchUseCase(store, tabsUseCases, sessionUseCases) DefaultSearchUseCase(store, tabsUseCases, sessionUseCases, settings) } val newTabSearch: NewTabSearchUseCase by lazy { NewTabSearchUseCase(store, tabsUseCases, false) NewTabSearchUseCase(store, tabsUseCases, false, settings) } val newPrivateTabSearch: NewTabSearchUseCase by lazy { NewTabSearchUseCase(store, tabsUseCases, true) NewTabSearchUseCase(store, tabsUseCases, true, settings) } val addSearchEngine: AddNewSearchEngineUseCase by lazy { Loading
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/ext/SearchEngine.kt +2 −2 Original line number Diff line number Diff line Loading @@ -85,9 +85,9 @@ fun SearchEngine.buildSuggestionsURL(query: String): String? { /** * Builds a URL to search for the given search terms with this search engine. */ fun SearchEngine.buildSearchUrl(searchTerm: String): String { fun SearchEngine.buildSearchUrl(searchTerm: String, securityLevel: Int = 0): String { val builder = SearchUrlBuilder(this) return builder.buildSearchUrl(searchTerm) return builder.buildSearchUrl(searchTerm, securityLevel) } /** Loading
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/internal/SearchUrlBuilder.kt +5 −2 Original line number Diff line number Diff line Loading @@ -28,9 +28,12 @@ private const val OS_PARAM_OPTIONAL = "\\{" + "(?:\\w+:)?\\w+?" + "\\}" internal class SearchUrlBuilder( private val searchEngine: SearchEngine, ) { fun buildSearchUrl(searchTerms: String): String { fun buildSearchUrl(searchTerms: String, securityLevel: Int): String { // The parser should have put the best URL for this device at the beginning of the list. val template = searchEngine.resultUrls[0] var template = searchEngine.resultUrls[0] if (securityLevel == 1 && (searchEngine.id == "ddg" || searchEngine.id == "ddg-onion")) { template = template.replaceFirst("/?", "/html/?") } return buildUrl(template, searchTerms) } Loading
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/UseCases.kt +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ class UseCases( store, tabsUseCases, sessionUseCases, engine.settings, ) } Loading