Skip to content

Commit 12b0a02

Browse files
author
Snuupy
committed
fix cosmetic filter application on background loading
1 parent ebb88d9 commit 12b0a02

File tree

3 files changed

+19
-12
lines changed

3 files changed

+19
-12
lines changed

components/brave_extension/extension/brave_extension/background/api/cosmeticFilterAPI.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
/* This Source Code Form is subject to the terms of the Mozilla Public
2+
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
3+
* You can obtain one at http://mozilla.org/MPL/2.0/. */
4+
15
export const addSiteCosmeticFilter = async (origin: string, cssfilter: string) => {
26
chrome.storage.local.get('cosmeticFilterList', (storeData = {}) => {
37
let storeList = Object.assign({}, storeData.cosmeticFilterList)
@@ -18,7 +22,7 @@ export const removeSiteFilter = (origin: string) => {
1822
})
1923
}
2024

21-
export const applySiteFilters = (hostname: string) => {
25+
export const applySiteFilters = (tabId: number, hostname: string) => {
2226
chrome.storage.local.get('cosmeticFilterList', (storeData = {}) => {
2327
if (!storeData.cosmeticFilterList) {
2428
if (process.env.NODE_ENV === 'shields_development') {
@@ -31,7 +35,7 @@ export const applySiteFilters = (hostname: string) => {
3135
if (process.env.NODE_ENV === 'shields_development') {
3236
console.log('applying rule', rule)
3337
}
34-
chrome.tabs.insertCSS({ // https://github.com/brave/brave-browser/wiki/Cosmetic-Filtering
38+
chrome.tabs.insertCSS(tabId, { // https://github.com/brave/brave-browser/wiki/Cosmetic-Filtering
3539
code: `${rule} {display: none !important;}`,
3640
cssOrigin: 'user',
3741
runAt: 'document_start'

components/brave_extension/extension/brave_extension/background/reducers/cosmeticFilterReducer.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import {
2727
// State helpers
2828
import * as shieldsPanelState from '../../state/shieldsPanelState'
2929
import * as noScriptState from '../../state/noScriptState'
30-
import { getOrigin } from '../../helpers/urlUtils'
30+
import { getOrigin, getHostname } from '../../helpers/urlUtils'
3131
import { areObjectsEqual } from '../../helpers/objectUtils'
3232

3333
const focusedWindowChanged = (state: State, windowId: number): State => {
@@ -70,7 +70,7 @@ export default function cosmeticFilterReducer (
7070
state = shieldsPanelState.resetBlockingResources(state, action.tabId)
7171
state = noScriptState.resetNoScriptInfo(state, action.tabId, getOrigin(action.url))
7272
}
73-
applySiteFilters(tabData.hostname)
73+
applySiteFilters(action.tabId, getHostname(action.url))
7474
break
7575
}
7676
case windowTypes.WINDOW_REMOVED: {

components/test/brave_extension/background/api/cosmeticFilterAPI_test.ts

+11-8
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,10 @@ describe('cosmeticFilterTestSuite', () => {
206206
'brave.com': [filter]
207207
}
208208
})
209-
cosmeticFilterAPI.applySiteFilters('brave.com')
210-
expect(insertCSSStub.getCall(0).args[0]).toEqual({
211-
code: `${ filter } {display: none !important;}`,
209+
cosmeticFilterAPI.applySiteFilters(1, 'brave.com')
210+
expect(insertCSSStub.getCall(0).args[0]).toEqual(1)
211+
expect(insertCSSStub.getCall(0).args[1]).toEqual({
212+
code: `${filter} {display: none !important;}`,
212213
cssOrigin: 'user',
213214
runAt: 'document_start'
214215
})
@@ -219,13 +220,15 @@ describe('cosmeticFilterTestSuite', () => {
219220
'brave.com': [filter, filter2]
220221
}
221222
})
222-
cosmeticFilterAPI.applySiteFilters('brave.com')
223-
expect(insertCSSStub.getCall(0).args[0]).toEqual({
223+
cosmeticFilterAPI.applySiteFilters(1, 'brave.com')
224+
expect(insertCSSStub.getCall(0).args[0]).toEqual(1)
225+
expect(insertCSSStub.getCall(0).args[1]).toEqual({
224226
code: `${filter } {display: none !important;}`,
225227
cssOrigin: 'user',
226228
runAt: 'document_start'
227229
})
228-
expect(insertCSSStub.getCall(1).args[0]).toEqual({
230+
expect(insertCSSStub.getCall(1).args[0]).toEqual(1)
231+
expect(insertCSSStub.getCall(1).args[1]).toEqual({
229232
code: `${ filter2 } {display: none !important;}`,
230233
cssOrigin: 'user',
231234
runAt: 'document_start'
@@ -237,7 +240,7 @@ describe('cosmeticFilterTestSuite', () => {
237240
getStorageStub.yields({
238241
cosmeticFilterList: {}
239242
})
240-
cosmeticFilterAPI.applySiteFilters('brave.com')
243+
cosmeticFilterAPI.applySiteFilters(1, 'brave.com')
241244
expect(insertCSSStub.called).toBe(false)
242245
})
243246
it('doesn\'t apply filters if storage is explicitly undefined', () => {
@@ -246,7 +249,7 @@ describe('cosmeticFilterTestSuite', () => {
246249
'brave.com': undefined
247250
}
248251
})
249-
cosmeticFilterAPI.applySiteFilters('brave.com')
252+
cosmeticFilterAPI.applySiteFilters(1, 'brave.com')
250253
expect(insertCSSStub.called).toBe(false)
251254
})
252255
})

0 commit comments

Comments
 (0)