From e9057f79182ed556132ae13dc87f8be01b6ab798 Mon Sep 17 00:00:00 2001
From: nobody42 <5514211-nobody42@users.noreply.gitlab.com>
Date: Mon, 6 Apr 2020 18:04:53 +0200
Subject: [PATCH] Fixed bug in lastMappingUpdate and added hideReleaseNotes in
settings
---
_locales/de/messages.json | 16 +++++++++
_locales/en_US/messages.json | 10 +++++-
core/constants.js | 2 +-
core/main.js | 66 ++++++++++++++++++++++--------------
pages/options/options.html | 17 ++++++++++
pages/options/options.js | 3 ++
6 files changed, 86 insertions(+), 28 deletions(-)
diff --git a/_locales/de/messages.json b/_locales/de/messages.json
index 1b0214c1..9ac911ff 100644
--- a/_locales/de/messages.json
+++ b/_locales/de/messages.json
@@ -70,5 +70,21 @@
"generateRuleSetTitle": {
"message": "Generiere Regelsätze für uBlock oder uMatrix",
"description": "Generate rule set title."
+ },
+ "loggingTitle": {
+ "message": "Aktiviere das loggen in die Browser-Konsole",
+ "description": "Aktiviere das loggen in die Browser-Konsole."
+ },
+ "loggingDescription": {
+ "message": "Öffne die \"Browser-Konsole\" ( STRG + UMSCHALT + J ) um fehlende Resourcen anzuzeigen.",
+ "description": "Öffne die \"Browser-Konsole\" ( STRG + UMSCHALT + J ) um fehlende Resourcen anzuzeigen."
+ },
+ "hideReleaseNotesTitle": {
+ "message": "Versionshinweise deaktivieren",
+ "description": "Versionshinweise deaktivieren"
+ },
+ "hideReleaseNotesDescription": {
+ "message": "Falls aktivert, erhälst du keine Hinweise über Neuerungen in LocalCDN. Dazu gehören auch Informationen über neue uBlock/uMatrix-Regeln.",
+ "description": "Falls aktivert, erhälst du keine Hinweise über Neuerungen in LocalCDN. Dazu gehören auch Informationen über neue uBlock/uMatrix-Regeln."
}
}
diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json
index 06520775..07968a28 100644
--- a/_locales/en_US/messages.json
+++ b/_locales/en_US/messages.json
@@ -77,6 +77,14 @@
},
"loggingDescription": {
"message": "Open \"Browser Console\" ( CTRL + SHIFT + J ) to show missing resources",
- "description": "Generate rule set title."
+ "description": "Open \"Browser Console\" ( CTRL + SHIFT + J ) to show missing resources."
+ },
+ "hideReleaseNotesTitle": {
+ "message": "Disable release notes",
+ "description": "Disable release notes"
+ },
+ "hideReleaseNotesDescription": {
+ "message": "If enabled, you wont receive any information about new features in LocalCDN. This includes information about new uBlock/uMatrix rules.",
+ "description": "If enabled, you wont receive any information about new features in LocalCDN. This includes information about new uBlock/uMatrix rules."
}
}
diff --git a/core/constants.js b/core/constants.js
index 34ec3154..b65439a5 100644
--- a/core/constants.js
+++ b/core/constants.js
@@ -60,7 +60,7 @@ const Setting = {
'DISABLE_PREFETCH': 'disablePrefetch',
'ENFORCE_STAGING': 'enforceStaging',
'SHOW_ICON_BADGE': 'showIconBadge',
- 'SHOW_RELEASE_NOTES': 'showReleaseNotes',
+ 'HIDE_RELEASE_NOTES': 'hideReleaseNotes',
'STRIP_METADATA': 'stripMetadata',
'LAST_MAPPING_UPDATE': 'lastMappingUpdate',
'WHITELISTED_DOMAINS': 'whitelistedDomains',
diff --git a/core/main.js b/core/main.js
index 441327d2..ecfd86e6 100644
--- a/core/main.js
+++ b/core/main.js
@@ -31,8 +31,8 @@ main._initializeSettings = function () {
[Setting.BLOCK_MISSING]: false,
[Setting.DISABLE_PREFETCH]: true,
[Setting.ENFORCE_STAGING]: false,
+ [Setting.HIDE_RELEASE_NOTES]: false,
[Setting.STRIP_METADATA]: true,
- [Setting.LAST_MAPPING_UPDATE]: "2020-01-01",
[Setting.WHITELISTED_DOMAINS]: {},
[Setting.LOGGING]: false
};
@@ -69,41 +69,55 @@ main._showReleaseNotes = function (details) {
if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
- previousVersion = details.previousVersion;
+ chrome.storage.local.set({
+ [Setting.LAST_MAPPING_UPDATE]: lastMappingUpdate
+ }, function() {
- if (previousVersion && previousVersion.charAt(0) === '2') {
- return; // Do not show release notes after minor updates.
- }
+ previousVersion = details.previousVersion;
- if (details.temporary !== true) {
+ if (previousVersion && previousVersion.charAt(0) === '2') {
+ return; // Do not show release notes after minor updates.
+ }
- chrome.storage.local.get({
- [Setting.SHOW_RELEASE_NOTES]: true
- }, function (items) {
+ if (details.temporary !== true) {
- if (items.showReleaseNotes === true) {
+ chrome.storage.local.get([Setting.HIDE_RELEASE_NOTES], function (items) {
- chrome.tabs.create({
- 'url': location,
- 'active': false
- });
- }
- });
- }
- } else if (details.reason === chrome.runtime.OnInstalledReason.UPDATE) {
- // If add-on update true, check last update of mappings.js
- chrome.storage.local.get({[Setting.LAST_MAPPING_UPDATE]: lastMappingUpdate}, function (items) {
- if (items.lastMappingUpdate !== lastMappingUpdate) {
- // Updated mappings.js
- chrome.tabs.create({
- 'url': updateAdBlockerRules,
- 'active': true
+ if (items.hideReleaseNotes !== true) {
+
+ chrome.tabs.create({
+ 'url': location,
+ 'active': false
+ });
+ }
});
+ }
+ });
+ } else if (details.reason === chrome.runtime.OnInstalledReason.UPDATE) {
+
+ let newValue = lastMappingUpdate;
+ let oldValue = "";
+
+ // If add-on update true, check last update of mappings.js
+ chrome.storage.local.get([Setting.LAST_MAPPING_UPDATE, Setting.HIDE_RELEASE_NOTES], function (items) {
+
+ oldValue = items.lastMappingUpdate;
+
+ if (oldValue !== newValue) {
+ // Updated mappings.js
chrome.storage.local.set({
- [Setting.LAST_MAPPING_UPDATE]: lastMappingUpdate
+ [Setting.LAST_MAPPING_UPDATE]: newValue
+ }, function() {
+ if (!items.hideReleaseNotes) {
+ chrome.tabs.create({
+ 'url': updateAdBlockerRules,
+ 'active': true
+ });
+ }
});
} else {
// No mappings.js update
+ return;
}
});
}
diff --git a/pages/options/options.html b/pages/options/options.html
index 2a488bf4..ab09383b 100644
--- a/pages/options/options.html
+++ b/pages/options/options.html
@@ -138,6 +138,23 @@
+
+
diff --git a/pages/options/options.js b/pages/options/options.js
index 21a18673..5cfeccc2 100644
--- a/pages/options/options.js
+++ b/pages/options/options.js
@@ -45,6 +45,7 @@ options._renderOptionsPanel = function () {
elements.blockMissing.checked = options._optionValues.blockMissing;
elements.disablePrefetch.checked = options._optionValues.disablePrefetch;
elements.stripMetadata.checked = options._optionValues.stripMetadata;
+ elements.hideReleaseNotes.checked = options._optionValues.hideReleaseNotes;
elements.enableLogging.checked = options._optionValues.enableLogging;
elements.whitelistedDomains.value = domainWhitelist;
@@ -87,6 +88,7 @@ options._registerOptionChangedEventListeners = function (elements) {
elements.disablePrefetch.addEventListener('change', options._onOptionChanged);
elements.stripMetadata.addEventListener('change', options._onOptionChanged);
elements.enableLogging.addEventListener('change', options._onOptionChanged);
+ elements.hideReleaseNotes.addEventListener('change', options._onOptionChanged);
elements.whitelistedDomains.addEventListener('keyup', options._onOptionChanged);
let type = elements.ruleSets;
for(let i = 0; i < type.length; i++) {
@@ -134,6 +136,7 @@ options._getOptionElements = function () {
[Setting.DISABLE_PREFETCH]: options._getOptionElement(Setting.DISABLE_PREFETCH),
[Setting.STRIP_METADATA]: options._getOptionElement(Setting.STRIP_METADATA),
[Setting.WHITELISTED_DOMAINS]: options._getOptionElement(Setting.WHITELISTED_DOMAINS),
+ [Setting.HIDE_RELEASE_NOTES]: options._getOptionElement(Setting.HIDE_RELEASE_NOTES),
[Setting.LOGGING]: options._getOptionElement(Setting.LOGGING),
['ruleSets']: document.getElementsByName("rule-sets"),
['copyRuleSet']: document.getElementById("button-copy-rule-set")