From 1ad741007716639c1a70cef5835f8f029178c696 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Tue, 6 Jun 2023 13:42:22 -0400 Subject: [PATCH] [mv3] Fine tune various portions of code --- platform/mv3/extension/css/dashboard.css | 1 + platform/mv3/extension/js/background.js | 27 ++++++++++---------- platform/mv3/extension/js/mode-manager.js | 3 +++ platform/mv3/extension/js/ruleset-manager.js | 24 ++++++++--------- platform/mv3/extension/js/utils.js | 2 +- 5 files changed, 28 insertions(+), 29 deletions(-) diff --git a/platform/mv3/extension/css/dashboard.css b/platform/mv3/extension/css/dashboard.css index 271557958..5a758f3c3 100644 --- a/platform/mv3/extension/css/dashboard.css +++ b/platform/mv3/extension/css/dashboard.css @@ -59,6 +59,7 @@ iframe { border: 0; flex-grow: 1; margin: 0; + min-height: 800px; padding: 0; } #unsavedWarning { diff --git a/platform/mv3/extension/js/background.js b/platform/mv3/extension/js/background.js index 9951a1c47..5e43347d7 100644 --- a/platform/mv3/extension/js/background.js +++ b/platform/mv3/extension/js/background.js @@ -65,11 +65,12 @@ const rulesetConfig = { version: '', enabledRulesets: [ 'default' ], autoReload: 1, - firstRun: false, }; const UBOL_ORIGIN = runtime.getURL('').replace(/\/$/, ''); +let firstRun = false; + /******************************************************************************/ function getCurrentVersion() { @@ -82,26 +83,26 @@ async function loadRulesetConfig() { rulesetConfig.version = data.version; rulesetConfig.enabledRulesets = data.enabledRulesets; rulesetConfig.autoReload = data.autoReload; - return; + return false; } data = await localRead('rulesetConfig'); if ( data ) { rulesetConfig.version = data.version; rulesetConfig.enabledRulesets = data.enabledRulesets; rulesetConfig.autoReload = data.autoReload; - return; + return false; } data = await loadRulesetConfig.convertLegacyStorage(); if ( data ) { rulesetConfig.version = data.version; rulesetConfig.enabledRulesets = data.enabledRulesets; rulesetConfig.autoReload = data.autoReload; - return; + return false; } rulesetConfig.enabledRulesets = await defaultRulesetsFromLanguage(); - rulesetConfig.firstRun = true; sessionWrite('rulesetConfig', rulesetConfig); localWrite('rulesetConfig', rulesetConfig); + return true; } // TODO: To remove after next stable release is widespread (2023-06-04) @@ -221,9 +222,9 @@ function onMessage(request, sender, callback) { enabledRulesets, rulesetDetails: Array.from(rulesetDetails.values()), autoReload: rulesetConfig.autoReload === 1, - firstRun: rulesetConfig.firstRun, + firstRun, }); - rulesetConfig.firstRun = false; + firstRun = false; }); return true; } @@ -297,7 +298,7 @@ function onMessage(request, sender, callback) { /******************************************************************************/ async function start() { - await loadRulesetConfig(); + firstRun = await loadRulesetConfig(); await enableRulesets(rulesetConfig.enabledRulesets); // We need to update the regex rules only when ruleset version changes. @@ -330,10 +331,6 @@ async function start() { if ( dnr.setExtensionActionOptions ) { dnr.setExtensionActionOptions({ displayActionCountAsBadgeText: true }); } -} - -(async ( ) => { - await start(); runtime.onMessage.addListener(onMessage); @@ -341,7 +338,9 @@ async function start() { ( ) => { onPermissionsRemoved(); } ); - if ( rulesetConfig.firstRun ) { + if ( firstRun ) { runtime.openOptionsPage(); } -})(); +} + +start(); diff --git a/platform/mv3/extension/js/mode-manager.js b/platform/mv3/extension/js/mode-manager.js index 0109630c5..f181ea781 100644 --- a/platform/mv3/extension/js/mode-manager.js +++ b/platform/mv3/extension/js/mode-manager.js @@ -100,6 +100,9 @@ async function getActualFilteringModeDetails() { }; } } + if ( details ) { + sessionWrite('filteringModeDetails', details); + } } const out = { none: new Set(details.none), diff --git a/platform/mv3/extension/js/ruleset-manager.js b/platform/mv3/extension/js/ruleset-manager.js index f3266693d..a98310dbb 100644 --- a/platform/mv3/extension/js/ruleset-manager.js +++ b/platform/mv3/extension/js/ruleset-manager.js @@ -46,19 +46,17 @@ const CURRENT_CONFIG_BASE_RULE_ID = 9000000; /******************************************************************************/ -let rulesetDetailsPromise; - function getRulesetDetails() { - if ( rulesetDetailsPromise !== undefined ) { - return rulesetDetailsPromise; + if ( getRulesetDetails.rulesetDetailsPromise !== undefined ) { + return getRulesetDetails.rulesetDetailsPromise; } - rulesetDetailsPromise = fetchJSON('/rulesets/ruleset-details').then(entries => { - const map = new Map( + getRulesetDetails.rulesetDetailsPromise = fetchJSON('/rulesets/ruleset-details').then(entries => { + const rulesMap = new Map( entries.map(entry => [ entry.id, entry ]) ); - return map; + return rulesMap; }); - return rulesetDetailsPromise; + return getRulesetDetails.rulesetDetailsPromise; } /******************************************************************************/ @@ -68,12 +66,10 @@ function getDynamicRules() { return getDynamicRules.dynamicRuleMapPromise; } getDynamicRules.dynamicRuleMapPromise = dnr.getDynamicRules().then(rules => { - const map = new Map( - rules.map(rule => [ rule.id, rule ]) - ); - ubolLog(`Dynamic rule count: ${map.size}`); - ubolLog(`Available dynamic rule count: ${dnr.MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES - map.size}`); - return map; + const rulesMap = new Map(rules.map(rule => [ rule.id, rule ])); + ubolLog(`Dynamic rule count: ${rulesMap.size}`); + ubolLog(`Available dynamic rule count: ${dnr.MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES - rulesMap.size}`); + return rulesMap; }); return getDynamicRules.dynamicRuleMapPromise; } diff --git a/platform/mv3/extension/js/utils.js b/platform/mv3/extension/js/utils.js index b02341f84..c38de6bc0 100644 --- a/platform/mv3/extension/js/utils.js +++ b/platform/mv3/extension/js/utils.js @@ -126,7 +126,7 @@ const hostnamesFromMatches = origins => { const ubolLog = (...args) => { // Do not pollute dev console in stable release. if ( browser.runtime.id === 'ddkjiahejlhfcafbddmgiahcphecmpfh' ) { return; } - console.info(...args); + console.info('[uBOL]', ...args); }; /******************************************************************************/