From 422557ca55960bc6eb1bcb16ea9736516c37bb8b Mon Sep 17 00:00:00 2001 From: nobody <5514211-nobody42@users.noreply.gitlab.com> Date: Fri, 20 Mar 2020 08:14:31 +0100 Subject: [PATCH] Fixed #21 --- core/files.js | 1 + core/request-analyzer.js | 5 ++--- manifest.json | 2 +- modules/internal/helpers.js | 30 +++++++++++++++++++++++---- pages/updates/updates.html | 1 + resources/jquery/1.8.3/jquery.min.jsm | 2 ++ 6 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 resources/jquery/1.8.3/jquery.min.jsm diff --git a/core/files.js b/core/files.js index 40bba5d1..f83c476d 100644 --- a/core/files.js +++ b/core/files.js @@ -60,6 +60,7 @@ var files = { 'resources/fontawesome/5.7.2/css/all.css': true, // jQuery + 'resources/jquery/1.8.3/jquery.min.jsm': true, 'resources/jquery/1.12.4/jquery.min.jsm': true, 'resources/jquery/2.2.4/jquery.min.jsm': true, 'resources/jquery/3.4.1/jquery.min.jsm': true, diff --git a/core/request-analyzer.js b/core/request-analyzer.js index 5fa17d34..578e5261 100644 --- a/core/request-analyzer.js +++ b/core/request-analyzer.js @@ -105,9 +105,8 @@ requestAnalyzer._findLocalTarget = function (resourceMappings, basePath, channel targetPath = resourceMappings[resourceMold].path; targetPath = targetPath.replace(Resource.VERSION_PLACEHOLDER, versionNumber); - // Replace - - version = helpers.setLastVersion(targetPath); + // Replace the requested version with the latest depending on major version + version = helpers.setLastVersion(targetPath, versionNumber); targetPath = targetPath.replace(versionNumber, version); hostShorthands = shorthands[channelHost]; diff --git a/manifest.json b/manifest.json index 894d7657..8785ddd2 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "LocalCDN (fork from Decentraleyes)", - "version": "2.1.5.1", + "version": "2.1.5.2", "browser_specific_settings": { "gecko": { "id": "{b86e4813-687a-43e6-ab65-0bde4ab75758}", diff --git a/modules/internal/helpers.js b/modules/internal/helpers.js index 5f91cc8d..3c1f2fbf 100644 --- a/modules/internal/helpers.js +++ b/modules/internal/helpers.js @@ -1,8 +1,9 @@ /** * Internal Helper Module - * Belongs to Decentraleyes. + * Belongs to Decentraleyes/LocalCDN. * * @author Thomas Rientjes + * @author nobody42 * @since 2017-10-26 * @license MPL 2.0 * @@ -273,9 +274,11 @@ helpers.formatVersion = function (version) { } }; -helpers.setLastVersion = function (type) { +helpers.setLastVersion = function (type, versionNumber) { - let version; + let version, requestVersion; + + requestVersion = versionNumber.toString(); if (type.includes('/angularjs/1.')) { version = '1.7.9'; @@ -308,7 +311,7 @@ helpers.setLastVersion = function (type) { } else if (type.includes('/fontawesome/5.')) { version = '5.7.2'; } else if (type.includes('/jquery/1.')) { - version = '1.12.4'; + version = ( helpers.compareVersion('1.8.3', requestVersion )) ? '1.8.3' : '1.12.4'; } else if (type.includes('/jquery/2.')) { version = '2.2.4'; } else if (type.includes('/jquery/3.')) { @@ -335,3 +338,22 @@ helpers.setLastVersion = function (type) { return version; }; + + +helpers.compareVersion = function (v1, v2) { + /** + * compareVersion( '1.5.7' , '1.5.8' ) is TRUE + * compareVersion( '1.5.8' , '1.5.7' ) is FALSE + * compareVersion( '1.5.7' , '1.5.7' ) is TRUE + */ + v1 = v1.split('.'); + v2 = v2.split('.'); + const k = Math.min(v1.length, v2.length); + for (let i = 0; i < k; ++ i) { + v1[i] = parseInt(v1[i], 10); + v2[i] = parseInt(v2[i], 10); + if (v1[i] > v2[i]) return true; + if (v1[i] < v2[i]) return false; + } + return v1.length == v2.length ? true: (v1.length < v2.length ? false : true); +} diff --git a/pages/updates/updates.html b/pages/updates/updates.html index 459bd626..0ad035df 100644 --- a/pages/updates/updates.html +++ b/pages/updates/updates.html @@ -24,6 +24,7 @@
t |