From fb51b57152cb4c60c1dfa61db6af8f5dc78f3d94 Mon Sep 17 00:00:00 2001 From: gorhill Date: Tue, 26 Aug 2014 00:19:52 -0400 Subject: [PATCH] code review: not all assets have remote home --- js/assets.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/js/assets.js b/js/assets.js index 63e484abb..9cfcb06c5 100644 --- a/js/assets.js +++ b/js/assets.js @@ -543,12 +543,15 @@ var readRepoCopyAsset = function(path, callback) { var onCacheMetaReady = function(entries) { // Fetch from remote if: // - Auto-update enabled AND (not in cache OR in cache but obsolete) - var timestamp = entries[path]; - var obsolete = Date.now() - exports.autoUpdateDelay; - if ( exports.autoUpdate && (typeof timestamp !== 'number' || timestamp <= obsolete) ) { - //console.log('µBlock> readRepoCopyAsset("%s") / onCacheMetaReady(): not cached or obsolete', path); - getTextFileFromURL(assetEntry.homeURL, onHomeFileLoaded, onHomeFileError); - return; + var homeURL = assetEntry.homeURL; + if ( exports.autoUpdate && typeof homeURL === 'string' && homeURL !== '' ) { + var timestamp = entries[path]; + var obsolete = Date.now() - exports.autoUpdateDelay; + if ( typeof timestamp !== 'number' || timestamp <= obsolete ) { + //console.log('µBlock> readRepoCopyAsset("%s") / onCacheMetaReady(): not cached or obsolete', path); + getTextFileFromURL(homeURL, onHomeFileLoaded, onHomeFileError); + return; + } } // In cache @@ -573,7 +576,12 @@ var readRepoCopyAsset = function(path, callback) { // Repo copy changed: fetch from home URL if ( exports.autoUpdate && assetEntry.localChecksum !== assetEntry.repoChecksum ) { //console.log('µBlock> readRepoCopyAsset("%s") / onRepoMetaReady(): repo has newer version', path); - getTextFileFromURL(assetEntry.homeURL, onHomeFileLoaded, onHomeFileError); + var homeURL = assetEntry.homeURL; + if ( typeof homeURL === 'string' && homeURL !== '' ) { + getTextFileFromURL(homeURL, onHomeFileLoaded, onHomeFileError); + } else { + getTextFileFromURL(repositoryURL, onRepoFileLoaded, onRepoFileError); + } return; }