From 1c09c4ab1b86b8bf2d80eae181dc9856507b9715 Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Wed, 3 Jul 2019 20:49:11 -0300 Subject: [PATCH] add support for shields simple view address https://github.com/brave/brave-browser/issues/1196 --- .../_locales/en_US/messages.json | 24 ++++ .../actions/shieldsPanelActions.ts | 6 + .../background/api/storageAPI.ts | 3 +- .../reducers/shieldsPanelReducer.ts | 7 + .../components/advancedView/footer.tsx | 11 +- .../components/advancedView/header.tsx | 3 +- .../components/advancedView/index.tsx | 17 ++- .../overlays/webCompatWarningOverlay.tsx | 53 ++++++++ .../components/braveShields.tsx | 14 +- .../components/simpleView/footer.tsx | 40 ++++++ .../components/simpleView/header.tsx | 122 ++++++++++++++++++ .../components/simpleView/index.tsx | 86 ++++++++++++ .../constants/shieldsPanelTypes.ts | 1 + .../state/shieldsPanelState.ts | 2 +- .../types/actions/shieldsPanelActions.ts | 11 +- .../types/constants/shieldsPanelTypes.ts | 1 + .../types/state/shieldsPannelState.ts | 3 +- .../actions/shieldsPanelActions_test.ts | 6 + .../reducers/cosmeticFilterReducer_test.ts | 3 +- .../reducers/shieldsPanelReducer_test.ts | 3 +- .../components/advancedView/footer_test.tsx | 1 + .../state/shieldsPanelState_test.ts | 68 +++++++--- components/test/testData.ts | 4 +- 23 files changed, 451 insertions(+), 38 deletions(-) create mode 100644 components/brave_extension/extension/brave_extension/components/advancedView/overlays/webCompatWarningOverlay.tsx create mode 100644 components/brave_extension/extension/brave_extension/components/simpleView/footer.tsx create mode 100644 components/brave_extension/extension/brave_extension/components/simpleView/header.tsx create mode 100644 components/brave_extension/extension/brave_extension/components/simpleView/index.tsx diff --git a/components/brave_extension/extension/brave_extension/_locales/en_US/messages.json b/components/brave_extension/extension/brave_extension/_locales/en_US/messages.json index 59c2b2308528..dfa1fb563129 100644 --- a/components/brave_extension/extension/brave_extension/_locales/en_US/messages.json +++ b/components/brave_extension/extension/brave_extension/_locales/en_US/messages.json @@ -158,5 +158,29 @@ "resetAllFilterSettings": { "message": "Clear CSS rules for all sites", "description": "Message for context menu that resets all cosmetic filters" + }, + "advancedView": { + "message": "Advanced View", + "description": "Message for the advannced view option" + }, + "simpleView": { + "message": "Simple View", + "description": "Message for the simple view option" + }, + "shieldsExplanation": { + "message": "Sites often include cookies and scripts which try to identify you and your deviec (often embedded into ads). They want to work out who you are and follow you accross the web — tracking what you do on every site. Brave blocks these things so that you can browse without being followed around.", + "description": "Message in read-only view explaining what Brave Shields do" + }, + "blockedResoucesExplanation": { + "message": "Cross-site trackers and other creepy things blocked", + "description": "Message for the main trackers count in Shields simple view" + }, + "webCompatWarning": { + "message": "Changing Shield settings in this view will affect web compatibility on this site.", + "description": "Message for web compat warning when switching from simple to advanced view" + }, + "gotIt": { + "message": "Got it", + "description": "Message for the button that confirms the advanced view" } } diff --git a/components/brave_extension/extension/brave_extension/actions/shieldsPanelActions.ts b/components/brave_extension/extension/brave_extension/actions/shieldsPanelActions.ts index 938401bd90a3..7a7df7f8bc01 100644 --- a/components/brave_extension/extension/brave_extension/actions/shieldsPanelActions.ts +++ b/components/brave_extension/extension/brave_extension/actions/shieldsPanelActions.ts @@ -126,3 +126,9 @@ export const setAdvancedViewFirstAccess: actions.SetAdvancedViewFirstAccess = (i isFirstAccess } } + +export const toggleAdvancedView: actions.ToggleAdvancedView = () => { + return { + type: types.TOGGLE_ADVANCED_VIEW + } +} diff --git a/components/brave_extension/extension/brave_extension/background/api/storageAPI.ts b/components/brave_extension/extension/brave_extension/background/api/storageAPI.ts index 5821814ba8b7..19d84a1c0bfa 100644 --- a/components/brave_extension/extension/brave_extension/background/api/storageAPI.ts +++ b/components/brave_extension/extension/brave_extension/background/api/storageAPI.ts @@ -8,7 +8,8 @@ import * as Shields from '../../types/state/shieldsPannelState' const keyName = 'shields-persistent-data' export const defaultPersistentData: Shields.PersistentData = { - isFirstAccess: true + isFirstAccess: true, + advancedView: false } export const loadPersistentData = (): Shields.PersistentData => { diff --git a/components/brave_extension/extension/brave_extension/background/reducers/shieldsPanelReducer.ts b/components/brave_extension/extension/brave_extension/background/reducers/shieldsPanelReducer.ts index b0ea64db78b7..66f3c6cf2048 100644 --- a/components/brave_extension/extension/brave_extension/background/reducers/shieldsPanelReducer.ts +++ b/components/brave_extension/extension/brave_extension/background/reducers/shieldsPanelReducer.ts @@ -316,10 +316,17 @@ export default function shieldsPanelReducer ( state = noScriptState.setFinalScriptsBlockedState(state) break } + // Advanced/simple view functionality case shieldsPanelTypes.SET_ADVANCED_VIEW_FIRST_ACCESS: { state = shieldsPanelState.updatePersistentData(state, { isFirstAccess: action.isFirstAccess }) break } + case shieldsPanelTypes.TOGGLE_ADVANCED_VIEW: { + state = shieldsPanelState.updatePersistentData(state, { + advancedView: !state.persistentData.advancedView + }) + break + } } if (!areObjectsEqual(state.persistentData, initialPersistentData)) { diff --git a/components/brave_extension/extension/brave_extension/components/advancedView/footer.tsx b/components/brave_extension/extension/brave_extension/components/advancedView/footer.tsx index e88f57e5b2a9..d9b6620039c7 100644 --- a/components/brave_extension/extension/brave_extension/components/advancedView/footer.tsx +++ b/components/brave_extension/extension/brave_extension/components/advancedView/footer.tsx @@ -4,6 +4,10 @@ import * as React from 'react' +// Types + +import { ToggleAdvancedView } from '../../types/actions/shieldsPanelActions' + // Feature-specific components import { MainFooter, Link } from 'brave-ui/features/shields' @@ -15,6 +19,7 @@ import { getLocale } from '../../background/api/localeAPI' export interface Props { isBlockedListOpen: boolean + toggleAdvancedView: ToggleAdvancedView } export default class Footer extends React.PureComponent { @@ -22,10 +27,14 @@ export default class Footer extends React.PureComponent { tabsAPI.createTab({ url: 'chrome://settings/shields' }) .catch((err) => console.log('[Unable to open a new tab from Shields]', err)) } + render () { - const { isBlockedListOpen } = this.props + const { isBlockedListOpen, toggleAdvancedView } = this.props return ( + + {getLocale('simpleView')} + { } render () { - const { shieldsPanelTabData, actions } = this.props + const { shieldsPanelTabData, persistentData, actions } = this.props const { isBlockedListOpen } = this.state if (!shieldsPanelTabData) { @@ -87,10 +90,13 @@ export default class Shields extends React.PureComponent { return ( + { + persistentData.isFirstAccess + && + }
{ ) } -