Skip to content
This repository was archived by the owner on Dec 11, 2019. It is now read-only.

Commit 793756e

Browse files
diracdeltasbsclifton
authored andcommitted
Implement DDG changes for #14459
Test Plan: Check that the DDG switch in regular private tabs doesn't affect tor tabs and that the DDG switch in about:preferences for Tor tabs doesn't affect regular private tabs. Also check that DDG is default on for tor tabs.
1 parent 3aa9328 commit 793756e

File tree

8 files changed

+34
-11
lines changed

8 files changed

+34
-11
lines changed

app/extensions/brave/locales/en-US/newtab.properties

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ privateTabText1=Whether or not you use Tor, private tabs are not logged in page
2727
privateTabTitle=This is a Private Tab
2828
privateTabTorTitle=Make private tabs much more private with
2929
privateTabTorText1=Tor hides your IP address from the sites you visit, and hides the sites you visit from your ISP or your employer. Tor can slow down browsing. Some sites treat anonymous users differently, or might not work at all. Some sites might even ask you to prove you’re human.
30+
privateTabTorText2=By default, DuckDuckGo is the search engine for Private Tabs with Tor.
31+
searchPreferences=Search Preferences...
3032
privateTabSearchSectionTitle=Private search with
3133
privateTabSearchText1=With private search, Brave will use DuckDuckGo to answer your searches while you are in this private tab. DuckDuckGo is a search engine that does not track your search history, enabling you to search privately.
3234
removeBookmarkButton.title=Remove bookmark

app/extensions/brave/locales/en-US/preferences.properties

+1
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@ showHomeButton=Show home button on URL bar
325325
showLess=Show Less
326326
privateTabsSearchSettingsTitle=Private Tabs
327327
useDuckDuckGoForPrivateSearch=Use DuckDuckGo by default for search in Private Tabs
328+
useDuckDuckGoForPrivateSearchTor=Use DuckDuckGo by default for search in Private Tabs with Tor
328329
showOpenedTabMatches=Show tab matches
329330
showTabPreviews=Show tab previews on hover
330331
showTopsiteSuggestions=Show top site suggestions

app/renderer/reducers/urlBarReducer.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
const windowConstants = require('../../../js/constants/windowConstants')
88
const appConstants = require('../../../js/constants/appConstants')
99
const {isURL} = require('../../../js/lib/urlutil')
10-
const {activeFrameStatePath, frameStatePath, getFrameByTabId} = require('../../../js/state/frameStateUtil')
10+
const {activeFrameStatePath, frameStatePath, getFrameByTabId, isTor} = require('../../../js/state/frameStateUtil')
1111
const searchProviders = require('../../../js/data/searchProviders')
1212
const Immutable = require('immutable')
1313
const {navigateSiteClickHandler} = require('../suggestionClickHandlers')
@@ -42,7 +42,8 @@ const updateSearchEngineInfoFromInput = (state, frameProps) => {
4242
}
4343
if (frameProps.get('isPrivate')) {
4444
// handle private tab search with default search provider
45-
const useAlternateDefaultPrivateSearchProvider = getSetting(settings.USE_ALTERNATIVE_PRIVATE_SEARCH_ENGINE)
45+
const useAlternateDefaultPrivateSearchProvider =
46+
getSetting(isTor(frameProps) ? settings.USE_ALTERNATIVE_PRIVATE_SEARCH_ENGINE_TOR : settings.USE_ALTERNATIVE_PRIVATE_SEARCH_ENGINE)
4647
if (useAlternateDefaultPrivateSearchProvider === true) {
4748
// DuckDuckGo hard-coded as Private Tab default provider
4849
// if asked to use a privacy-centric 'alternative'

js/about/newprivatetab.js

+19-3
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class NewPrivateTab extends React.Component {
5858
<div className={css(styles.textWrapper)}>
5959
<h1 className={css(styles.title)} data-l10n-id='privateTabTitle' />
6060
{
61+
!isTor &&
6162
this.props.newTabData.hasIn(useAlternativePrivateSearchEngineDataKeys) &&
6263
<div className={css(styles.privateSearch)}>
6364
<div className={css(styles.privateSearch__setting)}>
@@ -67,7 +68,7 @@ class NewPrivateTab extends React.Component {
6768
<span className={css(styles.text_sectionTitle)} data-l10n-id='privateTabSearchSectionTitle' />
6869
<strong className={css(styles.text_sectionTitle, styles.text_sectionTitleHighlight)}>&nbsp;DuckDuckGo</strong>
6970
</h2>
70-
<p className={css(styles.text, styles.text_privateSearch)} data-l10n-id='privateTabSearchText1' />
71+
<p className={css(styles.text)} data-l10n-id='privateTabSearchText1' />
7172
</span>
7273
<SettingCheckbox
7374
large
@@ -88,8 +89,8 @@ class NewPrivateTab extends React.Component {
8889
<span className={css(styles.text_sectionTitle)} data-l10n-id='privateTabTorTitle' />
8990
<strong className={css(styles.text_sectionTitle, styles.text_sectionTitleHighlight)}>&nbsp;Tor</strong>
9091
</h2>
91-
<p className={css(styles.text, styles.text_privateSearch)} data-l10n-id='privateTabTorText1' />
92-
<p className={css(styles.text, styles.text_privateSearch, styles.text_clickable)} onClick={aboutActions.createTabRequested.bind(null, {url: torFAQ, isPrivate: true, isTor})} data-l10n-id='learnMore' />
92+
<p className={css(styles.text)} data-l10n-id='privateTabTorText1' />
93+
<p className={css(styles.text, styles.text_clickable)} onClick={aboutActions.createTabRequested.bind(null, {url: torFAQ, isPrivate: true, isTor})} data-l10n-id='learnMore' />
9394
</span>
9495
<SettingCheckbox
9596
large
@@ -101,6 +102,17 @@ class NewPrivateTab extends React.Component {
101102
</div>
102103
</div>
103104
}
105+
{
106+
isTor &&
107+
<div className={css(styles.privateSearch)}>
108+
<div className={css(styles.privateSearch__setting)}>
109+
<p>
110+
<span className={css(styles.text, styles.text_DDG)} data-l10n-id='privateTabTorText2' />
111+
<span className={css(styles.text, styles.text_clickable)} data-l10n-id='searchPreferences' onClick={aboutActions.createTabRequested.bind(null, {url: 'about:preferences#search'})} />
112+
</p>
113+
</div>
114+
</div>
115+
}
104116
</div>
105117
</div>
106118
<div className={css(styles.section_privateTab)}>
@@ -216,6 +228,10 @@ const styles = StyleSheet.create({
216228
paddingRight: '40px'
217229
},
218230

231+
text_DDG: {
232+
paddingRight: '10px'
233+
},
234+
219235
text_footer: {
220236
lineHeight: '1.5',
221237
fontSize: '13px',

js/about/preferences.js

+1
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@ class SearchTab extends ImmutableComponent {
290290
<SettingsList>
291291
<DefaultSectionTitle data-l10n-id='privateTabsSearchSettingsTitle' />
292292
<SettingCheckbox dataL10nId='useDuckDuckGoForPrivateSearch' prefKey={settings.USE_ALTERNATIVE_PRIVATE_SEARCH_ENGINE} settings={this.props.settings} onChangeSetting={this.props.onChangeSetting} />
293+
<SettingCheckbox dataL10nId='useDuckDuckGoForPrivateSearchTor' prefKey={settings.USE_ALTERNATIVE_PRIVATE_SEARCH_ENGINE_TOR} settings={this.props.settings} onChangeSetting={this.props.onChangeSetting} />
293294
</SettingsList>
294295
<DefaultSectionTitle data-l10n-id='locationBarSettings' />
295296
<SettingsList>

js/constants/appConfig.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,8 @@ module.exports = {
151151
'general.spellcheck-languages': Immutable.fromJS(['en-US']),
152152
'search.default-search-engine': 'Google',
153153
'search.offer-search-suggestions': false, // false by default for privacy reasons
154-
'search.use-alternate-private-search-engine': true,
154+
'search.use-alternate-private-search-engine': false,
155+
'search.use-alternate-private-search-engine-tor': true,
155156
'tabs.switch-to-new-tabs': false,
156157
'tabs.paint-tabs': true,
157158
'tabs.tabs-per-page': 20,

js/constants/settings.js

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const settings = {
2323
// Search tab
2424
DEFAULT_SEARCH_ENGINE: 'search.default-search-engine',
2525
USE_ALTERNATIVE_PRIVATE_SEARCH_ENGINE: 'search.use-alternate-private-search-engine',
26+
USE_ALTERNATIVE_PRIVATE_SEARCH_ENGINE_TOR: 'search.use-alternate-private-search-engine-tor',
2627
OFFER_SEARCH_SUGGESTIONS: 'search.offer-search-suggestions',
2728
// Tabs tab
2829
SWITCH_TO_NEW_TABS: 'tabs.switch-to-new-tabs',

test/tab-components/torTabTest.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,19 @@ describe('tor tab tests', function () {
3333
})
3434

3535
it('uses ddg if setting is on', function * () {
36-
yield this.app.client.changeSetting(settings.USE_ALTERNATIVE_PRIVATE_SEARCH_ENGINE, true)
36+
yield this.app.client.changeSetting(settings.USE_ALTERNATIVE_PRIVATE_SEARCH_ENGINE_TOR, true)
3737
yield this.app.client
38-
.newTab({ isPrivate: true })
39-
.pause(1000)
38+
.newTab({ isPrivate: true, isTor: true })
39+
.pause(10000) // wait for tor init
4040
.setValue(urlInput, 'zzz')
4141
.keys(Brave.keys.ENTER)
4242
.windowByUrl(Brave.browserWindowUrl)
4343
.waitForInputText(urlInput, /duckduckgo/)
4444
})
4545
it('does not use ddg if setting is off', function * () {
46-
yield this.app.client.changeSetting(settings.USE_ALTERNATIVE_PRIVATE_SEARCH_ENGINE, false)
46+
yield this.app.client.changeSetting(settings.USE_ALTERNATIVE_PRIVATE_SEARCH_ENGINE_TOR, false)
4747
yield this.app.client
48-
.newTab({ isPrivate: true })
48+
.newTab({ isPrivate: true, isTor: true })
4949
.setValue(urlInput, 'test')
5050
.keys(Brave.keys.ENTER)
5151
.windowByUrl(Brave.browserWindowUrl)

0 commit comments

Comments
 (0)