From b585518c0033f4ab04ce75fc55ad562d226c4bad Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Wed, 20 Feb 2019 07:05:45 -0500 Subject: [PATCH] Do not fall back to alternative cache backend if selected one fails Default behavior is to fall back to an alternative backend if the uBO-selected one is not available. However there will be no fall back when the `cacheStorageAPI` is set to one specific backend by the user. --- src/js/cachestorage.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/js/cachestorage.js b/src/js/cachestorage.js index 6c5a6ca4c..06f841780 100644 --- a/src/js/cachestorage.js +++ b/src/js/cachestorage.js @@ -112,15 +112,16 @@ }); }); }, - select: function(backend) { - if ( backend === undefined || backend === 'unset' ) { - backend = vAPI.webextFlavor.soup.has('firefox') + select: function(selectedBackend) { + let actualBackend = selectedBackend; + if ( actualBackend === undefined || actualBackend === 'unset' ) { + actualBackend = vAPI.webextFlavor.soup.has('firefox') ? 'indexedDB' : 'browser.storage.local'; } - if ( backend === 'indexedDB' ) { + if ( actualBackend === 'indexedDB' ) { return selectIDB().then(success => { - if ( success ) { + if ( success || selectedBackend === 'indexedDB' ) { clearWebext(); return 'indexedDB'; } @@ -128,7 +129,7 @@ return 'browser.storage.local'; }); } - if ( backend === 'browser.storage.local' ) { + if ( actualBackend === 'browser.storage.local' ) { clearIDB(); } return Promise.resolve('browser.storage.local');