Skip to content

Commit 6ce3046

Browse files
authored
Merge pull request #23 from cloudoptlab/fix/2.x/bug-fixes
Fix/2.x/bug fixes
2 parents fbf6993 + df75fe1 commit 6ce3046

File tree

14 files changed

+405
-58
lines changed

14 files changed

+405
-58
lines changed

_locales/en/messages.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,5 +426,14 @@
426426
},
427427
"popupMoreSubtitle": {
428428
"message": "Click to go to detailed settings"
429+
},
430+
"memoryOptimized": {
431+
"message": "Memory usage has been optimized"
432+
},
433+
"memoryOptimizedSub": {
434+
"message": "Cloudopt Adblocker intelligently optimizes tabs that have not been accessed for a long time and releases memory"
435+
},
436+
"memoryOptimizedReturn": {
437+
"message": "Resume Now"
429438
}
430439
}

_locales/ko/messages.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,5 +426,14 @@
426426
},
427427
"popupMoreSubtitle": {
428428
"message": "자세한 설정을 보려면 설정 페이지로 이동하십시오."
429+
},
430+
"memoryOptimized": {
431+
"message": "메모리 사용이 최적화되었습니다"
432+
},
433+
"memoryOptimizedSub": {
434+
"message": "Cloudopt Adblocker는 오랫동안 액세스하지 않은 탭을 지능적으로 최적화하고 메모리를 해제합니다."
435+
},
436+
"memoryOptimizedReturn": {
437+
"message": "지금 재개"
429438
}
430439
}

_locales/zh_CN/messages.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,5 +426,14 @@
426426
},
427427
"popupMoreSubtitle": {
428428
"message": "点击前往设置页面进行详细设置"
429+
},
430+
"memoryOptimized": {
431+
"message": "内存占用已被优化"
432+
},
433+
"memoryOptimizedSub": {
434+
"message": "Cloudopt Adblocker 会智能优化长时间未被访问的标签页并释放内存"
435+
},
436+
"memoryOptimizedReturn": {
437+
"message": "立即恢复"
429438
}
430439
}

_locales/zh_TW/messages.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,5 +426,14 @@
426426
},
427427
"popupMoreSubtitle": {
428428
"message": "点击前往设置页面进行详细设置"
429+
},
430+
"memoryOptimized": {
431+
"message": "內存佔用已被優化"
432+
},
433+
"memoryOptimizedSub": {
434+
"message": "Cloudopt Adblocker 會智能優化長時間未被訪問的標籤頁並釋放內存"
435+
},
436+
"memoryOptimizedReturn": {
437+
"message": "立即恢復"
429438
}
430439
}

image/md-icon-pause.svg

Lines changed: 1 addition & 0 deletions
Loading

src/background/adguardEngine/index.ts

Lines changed: 64 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -106,48 +106,58 @@ class AdguardEngine implements IAdblockEngine {
106106
private config: coreConfig.Config
107107
private state: EngineState = EngineState.NOT_STARTED
108108

109+
constructor() {
110+
const _this = this
111+
message.addListener({
112+
type: 'refresh-config',
113+
callback: (msg, sender, sendResponse) => {
114+
_this.refresh()
115+
sendResponse({})
116+
return true
117+
},
118+
})
119+
120+
window.adguardApi.onFilterDownloadSuccess.addListener(() => {
121+
store.set('latest_filters_updated_at', Date.now())
122+
})
123+
124+
message.addListener({
125+
type: 'assistant-create-rule',
126+
async callback(msg) {
127+
_this.config = await coreConfig.get()
128+
_this.config.customRule.push(msg.ruleText)
129+
await coreConfig.set(_this.config)
130+
_this.refresh()
131+
},
132+
})
133+
134+
message.addListener({
135+
type: 'check-filters-update',
136+
async callback(msg, sender, sendResponse) {
137+
if (_this.state !== EngineState.NOT_STARTED) {
138+
_this.start()
139+
}
140+
_this.config = await coreConfig.get()
141+
if (!_this.config.adblockActivating) {
142+
_this.stop()
143+
}
144+
window.adguardApi.checkFiltersUpdates(() => {
145+
store.set('latest_filters_updated_at', Date.now())
146+
sendResponse('true')
147+
}, () => {
148+
sendResponse('false')
149+
})
150+
},
151+
})
152+
}
153+
109154
public start(): boolean {
110155
if (this.state === EngineState.STARTED) {
111156
return true
112157
} else if (this.state === EngineState.NOT_STARTED) {
113-
message.addListener({
114-
type: 'assistant-create-rule',
115-
async callback(msg) {
116-
this.config = await coreConfig.get()
117-
this.config.customRule.push(msg.ruleText)
118-
await coreConfig.set(this.config)
119-
this.refresh()
120-
},
121-
})
122-
123-
message.addListener({
124-
type: 'refresh-config',
125-
callback: (msg, sender, sendResponse) => {
126-
this.refresh()
127-
sendResponse({})
128-
return true
129-
},
130-
})
131-
132-
message.addListener({
133-
type: 'check-filters-update',
134-
callback(msg, sender, sendResponse) {
135-
window.adguardApi.checkFiltersUpdates(() => {
136-
store.set('latest_filters_updated_at', Date.now())
137-
sendResponse('true')
138-
}, () => {
139-
sendResponse('false')
140-
})
141-
},
142-
})
143-
144158
this.startTabsBlockCount()
145159
}
146160

147-
window.adguardApi.onFilterDownloadSuccess.addListener(() => {
148-
store.set('latest_filters_updated_at', Date.now())
149-
})
150-
151161
store.get('firstAutoAddAllowList').then((isFirst) => {
152162
if (!isFirst) {
153163
autoAddallowListAds()
@@ -162,21 +172,28 @@ class AdguardEngine implements IAdblockEngine {
162172

163173
public async refresh(): Promise<boolean> {
164174
this.config = await coreConfig.get()
165-
if (!this.config.adblockActivating && this.state === EngineState.STARTED) {
166-
return this.stop()
175+
if (!this.config.adblockActivating) {
176+
if (this.state === EngineState.STARTED) {
177+
return this.stop()
178+
} else {
179+
return true
180+
}
167181
}
182+
168183
if (this.state === EngineState.NOT_STARTED) {
169-
return this.start()
184+
this.start()
185+
} else { // started, reconfigure adugard
186+
window.adguardApi.stop(() => {
187+
const adguardConfig = getAdguardConfig(this.config)
188+
if (adguardConfig.filters.length > 0) {
189+
window.adguardApi.start(adguardConfig, () => {
190+
logger.debug('Adguard api started.')
191+
this.customSubscription()
192+
})
193+
}
194+
})
170195
}
171-
window.adguardApi.stop(() => {
172-
const adguardConfig = getAdguardConfig(this.config)
173-
if (adguardConfig.filters.length > 0) {
174-
window.adguardApi.start(adguardConfig, () => {
175-
logger.debug('Adguard api started.')
176-
this.customSubscription()
177-
})
178-
}
179-
})
196+
180197
this.state = EngineState.STARTED
181198
return true
182199
}

src/background/initialize.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,7 @@ export async function start() {
5656
activateEvent()
5757

5858
adblockEngine = new adguardEngine()
59-
config.get().then((cfg) => {
60-
if (cfg.adblockActivating) {
61-
adblockEngine.start()
62-
}
63-
})
59+
adblockEngine.refresh()
6460
}
6561

6662
start()

0 commit comments

Comments
 (0)