summaryrefslogtreecommitdiffstats
path: root/platform/mv3/extension/js/background.js
diff options
context:
space:
mode:
Diffstat (limited to 'platform/mv3/extension/js/background.js')
-rw-r--r--platform/mv3/extension/js/background.js68
1 files changed, 47 insertions, 21 deletions
diff --git a/platform/mv3/extension/js/background.js b/platform/mv3/extension/js/background.js
index 5ceacc4..e65775e 100644
--- a/platform/mv3/extension/js/background.js
+++ b/platform/mv3/extension/js/background.js
@@ -19,47 +19,43 @@
Home: https://github.com/gorhill/uBlock
*/
-/* jshint esversion:11 */
-
-'use strict';
-
/******************************************************************************/
import {
+ adminRead,
browser,
dnr,
- runtime,
localRead, localWrite,
+ runtime,
sessionRead, sessionWrite,
- adminRead,
} from './ext.js';
import {
- getRulesetDetails,
+ broadcastMessage,
+ ubolLog,
+} from './utils.js';
+
+import {
defaultRulesetsFromLanguage,
enableRulesets,
getEnabledRulesetsDetails,
+ getRulesetDetails,
updateDynamicRules,
} from './ruleset-manager.js';
import {
- registerInjectables,
-} from './scripting-manager.js';
-
-import {
- getFilteringMode,
- setFilteringMode,
getDefaultFilteringMode,
- setDefaultFilteringMode,
+ getFilteringMode,
getTrustedSites,
+ setDefaultFilteringMode,
+ setFilteringMode,
setTrustedSites,
syncWithBrowserPermissions,
} from './mode-manager.js';
import {
- broadcastMessage,
- ubolLog,
-} from './utils.js';
+ registerInjectables,
+} from './scripting-manager.js';
/******************************************************************************/
@@ -67,10 +63,13 @@ const rulesetConfig = {
version: '',
enabledRulesets: [ 'default' ],
autoReload: true,
+ showBlockedCount: true,
};
const UBOL_ORIGIN = runtime.getURL('').replace(/\/$/, '');
+const canShowBlockedCount = typeof dnr.setExtensionActionOptions === 'function';
+
let firstRun = false;
let wakeupRun = false;
@@ -85,7 +84,12 @@ async function loadRulesetConfig() {
if ( data ) {
rulesetConfig.version = data.version;
rulesetConfig.enabledRulesets = data.enabledRulesets;
- rulesetConfig.autoReload = data.autoReload && true || false;
+ rulesetConfig.autoReload = typeof data.autoReload === 'boolean'
+ ? data.autoReload
+ : true;
+ rulesetConfig.showBlockedCount = typeof data.showBlockedCount === 'boolean'
+ ? data.showBlockedCount
+ : true;
wakeupRun = true;
return;
}
@@ -93,7 +97,12 @@ async function loadRulesetConfig() {
if ( data ) {
rulesetConfig.version = data.version;
rulesetConfig.enabledRulesets = data.enabledRulesets;
- rulesetConfig.autoReload = data.autoReload && true || false;
+ rulesetConfig.autoReload = typeof data.autoReload === 'boolean'
+ ? data.autoReload
+ : true;
+ rulesetConfig.showBlockedCount = typeof data.showBlockedCount === 'boolean'
+ ? data.showBlockedCount
+ : true;
sessionWrite('rulesetConfig', rulesetConfig);
return;
}
@@ -201,6 +210,8 @@ function onMessage(request, sender, callback) {
maxNumberOfEnabledRulesets: dnr.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS,
rulesetDetails: Array.from(rulesetDetails.values()),
autoReload: rulesetConfig.autoReload,
+ showBlockedCount: rulesetConfig.showBlockedCount,
+ canShowBlockedCount,
firstRun,
});
firstRun = false;
@@ -216,6 +227,19 @@ function onMessage(request, sender, callback) {
});
return true;
+ case 'setShowBlockedCount':
+ rulesetConfig.showBlockedCount = request.state && true || false;
+ if ( canShowBlockedCount ) {
+ dnr.setExtensionActionOptions({
+ displayActionCountAsBadgeText: rulesetConfig.showBlockedCount,
+ });
+ }
+ saveRulesetConfig().then(( ) => {
+ callback();
+ broadcastMessage({ showBlockedCount: rulesetConfig.showBlockedCount });
+ });
+ return true;
+
case 'popupPanelData': {
Promise.all([
getFilteringMode(request.hostname),
@@ -329,8 +353,10 @@ async function start() {
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/declarativeNetRequest
// Firefox API does not support `dnr.setExtensionActionOptions`
- if ( wakeupRun === false && dnr.setExtensionActionOptions ) {
- dnr.setExtensionActionOptions({ displayActionCountAsBadgeText: true });
+ if ( wakeupRun === false && canShowBlockedCount ) {
+ dnr.setExtensionActionOptions({
+ displayActionCountAsBadgeText: rulesetConfig.showBlockedCount,
+ });
}
runtime.onMessage.addListener(onMessage);