From fcbc3001797d14ee698c0f00ce3e5ab892cbf7a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Luba=C5=84ski?= Date: Mon, 4 Mar 2024 12:34:25 +0100 Subject: [PATCH] Keep site/global tracker settings from v8 for future use --- extension-manifest-v3/src/store/options.js | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/extension-manifest-v3/src/store/options.js b/extension-manifest-v3/src/store/options.js index 842d00f18..3de404025 100644 --- a/extension-manifest-v3/src/store/options.js +++ b/extension-manifest-v3/src/store/options.js @@ -242,8 +242,40 @@ async function migrateFromMV2() { options.installDate = storage.install_date || ''; + // Clear the storage await chrome.storage.local.clear(); + try { + // Keep for the future use global and site specific tracker block/unblock lists + const trackers = storage.bugs.apps; + const optionsFromV8 = { + selectedTrackers: Object.keys(storage.selected_app_ids).map( + (id) => trackers[id].trackerID, + ), + siteSpecificBlocks: Object.entries(storage.site_specific_blocks).map( + ([domain, ids]) => { + return { + domain, + trackers: ids.map((id) => trackers[id].trackerID), + }; + }, + ), + siteSpecificUnblocks: Object.entries( + storage.site_specific_unblocks, + ).map(([domain, ids]) => { + return { + domain, + trackers: ids.map((id) => trackers[id].trackerID), + }; + }), + }; + + // Save options for the future use + await chrome.storage.local.set({ optionsFromV8 }); + } catch (e) { + console.error(`Error while migrating site specific tracker lists: `, e); + } + // Delete indexedDBs // Notice: Doesn't wait to avoid blocking the migrated options [