From 58bd6b6974f9428ab42354ef7e511fbe40005a45 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Wed, 22 Aug 2018 08:13:10 -0400 Subject: [PATCH] adjust lz4 ttl as suggested by @gwarser; cache resources selfie as string --- src/js/lz4.js | 4 ++-- src/js/redirect-engine.js | 36 +++++++++++++++++------------------- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/js/lz4.js b/src/js/lz4.js index d6d7dfe6a..9182167b5 100644 --- a/src/js/lz4.js +++ b/src/js/lz4.js @@ -41,10 +41,10 @@ let pendingInitialization; let textEncoder, textDecoder; let ttlCount = 0; let ttlTimer; - -const ttlDelay = 60 * 1000; +let ttlDelay = 60000; let init = function() { + ttlDelay = µBlock.hiddenSettings.autoUpdateAssetFetchPeriod * 1000 + 15000; if ( lz4CodecInstance === null ) { return Promise.resolve(null); } diff --git a/src/js/redirect-engine.js b/src/js/redirect-engine.js index 69673f764..ac6bdb955 100644 --- a/src/js/redirect-engine.js +++ b/src/js/redirect-engine.js @@ -501,25 +501,25 @@ RedirectEngine.prototype.resourcesFromString = function(text) { /******************************************************************************/ -var resourcesSelfieVersion = 3; +let resourcesSelfieVersion = 3; RedirectEngine.prototype.selfieFromResources = function() { - µBlock.cacheStorage.set({ - resourcesSelfie: { - version: resourcesSelfieVersion, - resources: Array.from(this.resources) - } - }); + let selfie = { + version: resourcesSelfieVersion, + resources: Array.from(this.resources) + }; + µBlock.cacheStorage.set({ resourcesSelfie: JSON.stringify(selfie) }); }; RedirectEngine.prototype.resourcesFromSelfie = function(callback) { - var me = this; - - var onSelfieReady = function(bin) { - if ( bin instanceof Object === false ) { - return callback(false); + µBlock.cacheStorage.get('resourcesSelfie', bin => { + let selfie = bin && bin.resourcesSelfie; + if ( typeof selfie === 'string' ) { + try { + selfie = JSON.parse(selfie); + } catch(ex) { + } } - var selfie = bin.resourcesSelfie; if ( selfie instanceof Object === false || selfie.version !== resourcesSelfieVersion || @@ -527,14 +527,12 @@ RedirectEngine.prototype.resourcesFromSelfie = function(callback) { ) { return callback(false); } - me.resources = new Map(); - for ( var entry of bin.resourcesSelfie.resources ) { - me.resources.set(entry[0], RedirectEntry.fromSelfie(entry[1])); + this.resources = new Map(); + for ( let entry of selfie.resources ) { + this.resources.set(entry[0], RedirectEntry.fromSelfie(entry[1])); } callback(true); - }; - - µBlock.cacheStorage.get('resourcesSelfie', onSelfieReady); + }); }; RedirectEngine.prototype.invalidateResourcesSelfie = function() {