diff --git a/core/constants.js b/core/constants.js index 09089eb6..f09ad778 100644 --- a/core/constants.js +++ b/core/constants.js @@ -74,7 +74,8 @@ const Setting = { 'DOMAINS_MANIPULATE_DOM': 'domainsManipulateDOM', 'STATISTIC_DATA': 'statisticData', 'NEGATE_HTML_FILTER_LIST': 'negateHtmlFilterList', - 'BLOCK_GOOGLE_FONTS': 'blockGoogleFonts' + 'BLOCK_GOOGLE_FONTS': 'blockGoogleFonts', + 'USE_MONOCHROME_ICONS': 'useMonochromeIcons' }; const WebRequest = { @@ -99,6 +100,50 @@ const BrowserType = { 'FIREFOX': chrome.runtime.getURL("/").startsWith("moz-extension") }; +const IconType = { + 'Enabled': { + 'Green': { + '16': chrome.runtime.getURL('icons/enabled.svg'), + '18': chrome.runtime.getURL('icons/enabled.svg'), + '19': chrome.runtime.getURL('icons/enabled.svg'), + '32': chrome.runtime.getURL('icons/enabled.svg'), + '36': chrome.runtime.getURL('icons/enabled.svg'), + '38': chrome.runtime.getURL('icons/enabled.svg'), + '64': chrome.runtime.getURL('icons/enabled.svg') + }, + 'White': { + '16': chrome.runtime.getURL('icons/enabled-white.svg'), + '18': chrome.runtime.getURL('icons/enabled-white.svg'), + '19': chrome.runtime.getURL('icons/enabled-white.svg'), + '32': chrome.runtime.getURL('icons/enabled-white.svg'), + '36': chrome.runtime.getURL('icons/enabled-white.svg'), + '38': chrome.runtime.getURL('icons/enabled-white.svg'), + '64': chrome.runtime.getURL('icons/enabled-white.svg') + } + }, + 'Disabled': { + 'Red': { + '16': chrome.runtime.getURL('icons/disabled.svg'), + '18': chrome.runtime.getURL('icons/disabled.svg'), + '19': chrome.runtime.getURL('icons/disabled.svg'), + '32': chrome.runtime.getURL('icons/disabled.svg'), + '36': chrome.runtime.getURL('icons/disabled.svg'), + '38': chrome.runtime.getURL('icons/disabled.svg'), + '64': chrome.runtime.getURL('icons/disabled.svg') + }, + 'White': { + '16': chrome.runtime.getURL('icons/disabled-white.svg'), + '18': chrome.runtime.getURL('icons/disabled-white.svg'), + '19': chrome.runtime.getURL('icons/disabled-white.svg'), + '32': chrome.runtime.getURL('icons/disabled-white.svg'), + '36': chrome.runtime.getURL('icons/disabled-white.svg'), + '38': chrome.runtime.getURL('icons/disabled-white.svg'), + '64': chrome.runtime.getURL('icons/disabled-white.svg') + } + } +}; + + // Supported charsets for TextDecoder() // https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder/TextDecoder const EncodingTypes = { diff --git a/core/main.js b/core/main.js index e05582e8..44a4c438 100644 --- a/core/main.js +++ b/core/main.js @@ -42,7 +42,8 @@ main._initializeSettings = function () { [Setting.LOGGING]: false, [Setting.DOMAINS_MANIPULATE_DOM]: {}, [Setting.NEGATE_HTML_FILTER_LIST]: false, - [Setting.BLOCK_GOOGLE_FONTS]: true + [Setting.BLOCK_GOOGLE_FONTS]: true, + [Setting.USE_MONOCHROME_ICONS]: false }; chrome.storage.sync.get(settingDefaults, function (items) { @@ -57,6 +58,10 @@ main._initializeSettings = function () { 'value': false }); } + stateManager.useMonochromeIcons = items.useMonochromeIcons; + wrappers.setIcon({ + 'path': stateManager.useMonochromeIcons ? IconType.Enabled.White : IconType.Enabled.Green, + }); chrome.storage.sync.set(items); }); @@ -128,7 +133,6 @@ main._showReleaseNotes = function (details) { /** * Initializations */ - chrome.runtime.onInstalled.addListener(main._showReleaseNotes); main._initializeSettings(); diff --git a/core/state-manager.js b/core/state-manager.js index cb1afed2..2f5fc0f0 100644 --- a/core/state-manager.js +++ b/core/state-manager.js @@ -249,7 +249,7 @@ stateManager._domainIsListed = function (domain, listname) { stateManager._setIconDisabled = function (tabIdentifier) { wrappers.setIcon({ - 'path': stateManager.disabledIconPath, + 'path': stateManager.useMonochromeIcons ? IconType.Disabled.White : IconType.Disabled.Green, 'tabId': tabIdentifier }); }; @@ -261,19 +261,9 @@ stateManager._setIconDisabled = function (tabIdentifier) { stateManager.requests = {}; stateManager.tabs = {}; - stateManager.getInvertOption = false; -stateManager.disabledIconPath = { - '16': chrome.runtime.getURL('icons/action/icon16-disabled.png'), - '18': chrome.runtime.getURL('icons/action/icon18-disabled.png'), - '19': chrome.runtime.getURL('icons/action/icon19-disabled.png'), - '32': chrome.runtime.getURL('icons/action/icon32-disabled.png'), - '36': chrome.runtime.getURL('icons/action/icon36-disabled.png'), - '38': chrome.runtime.getURL('icons/action/icon38-disabled.png'), - '64': chrome.runtime.getURL('icons/action/icon64-disabled.png') -}; - stateManager.validHosts = []; +stateManager.useMonochromeIcons = false; for (let mapping in mappings) { @@ -285,13 +275,17 @@ chrome.tabs.query({}, function (tabs) { tabs.forEach(stateManager._createTab); }); -chrome.storage.sync.get(Setting.SHOW_ICON_BADGE, function (items) { +chrome.storage.sync.get([Setting.SHOW_ICON_BADGE, Setting.USE_MONOCHROME_ICONS], function (items) { if (items.showIconBadge === undefined) { items.showIconBadge = true; } + if (items.useMonochromeIcons === undefined) { + items.useMonochromeIcons = true; + } stateManager.showIconBadge = items.showIconBadge; + stateManager.useMonochromeIcons = items.useMonochromeIcons; }); /** diff --git a/icons/action/icon16-default.png b/icons/action/icon16-default.png deleted file mode 100644 index d5b5cbb5..00000000 Binary files a/icons/action/icon16-default.png and /dev/null differ diff --git a/icons/action/icon16-disabled.png b/icons/action/icon16-disabled.png deleted file mode 100644 index 62ba2693..00000000 Binary files a/icons/action/icon16-disabled.png and /dev/null differ diff --git a/icons/action/icon18-default.png b/icons/action/icon18-default.png deleted file mode 100644 index a8dcf1ef..00000000 Binary files a/icons/action/icon18-default.png and /dev/null differ diff --git a/icons/action/icon18-disabled.png b/icons/action/icon18-disabled.png deleted file mode 100644 index a099ec2c..00000000 Binary files a/icons/action/icon18-disabled.png and /dev/null differ diff --git a/icons/action/icon19-default.png b/icons/action/icon19-default.png deleted file mode 100644 index 10bd27f0..00000000 Binary files a/icons/action/icon19-default.png and /dev/null differ diff --git a/icons/action/icon19-disabled.png b/icons/action/icon19-disabled.png deleted file mode 100644 index 61530422..00000000 Binary files a/icons/action/icon19-disabled.png and /dev/null differ diff --git a/icons/action/icon32-default.png b/icons/action/icon32-default.png deleted file mode 100644 index 64864e3f..00000000 Binary files a/icons/action/icon32-default.png and /dev/null differ diff --git a/icons/action/icon32-disabled.png b/icons/action/icon32-disabled.png deleted file mode 100644 index 42d19ec0..00000000 Binary files a/icons/action/icon32-disabled.png and /dev/null differ diff --git a/icons/action/icon36-default.png b/icons/action/icon36-default.png deleted file mode 100644 index 7c6bf09a..00000000 Binary files a/icons/action/icon36-default.png and /dev/null differ diff --git a/icons/action/icon36-disabled.png b/icons/action/icon36-disabled.png deleted file mode 100644 index a5c4bc11..00000000 Binary files a/icons/action/icon36-disabled.png and /dev/null differ diff --git a/icons/action/icon38-default.png b/icons/action/icon38-default.png deleted file mode 100644 index e42a7eaf..00000000 Binary files a/icons/action/icon38-default.png and /dev/null differ diff --git a/icons/action/icon38-disabled.png b/icons/action/icon38-disabled.png deleted file mode 100644 index ea69477f..00000000 Binary files a/icons/action/icon38-disabled.png and /dev/null differ diff --git a/icons/action/icon64-default.png b/icons/action/icon64-default.png deleted file mode 100644 index 6c70624d..00000000 Binary files a/icons/action/icon64-default.png and /dev/null differ diff --git a/icons/action/icon64-disabled.png b/icons/action/icon64-disabled.png deleted file mode 100644 index a47a79de..00000000 Binary files a/icons/action/icon64-disabled.png and /dev/null differ diff --git a/icons/disabled-white.svg b/icons/disabled-white.svg new file mode 100644 index 00000000..b433f687 --- /dev/null +++ b/icons/disabled-white.svg @@ -0,0 +1,120 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icons/enabled-white.svg b/icons/enabled-white.svg new file mode 100644 index 00000000..ee1ce9e1 --- /dev/null +++ b/icons/enabled-white.svg @@ -0,0 +1,120 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icons/icon128.png b/icons/icon128.png deleted file mode 100644 index 67a2f669..00000000 Binary files a/icons/icon128.png and /dev/null differ diff --git a/icons/icon16.png b/icons/icon16.png deleted file mode 100644 index a50bbd1a..00000000 Binary files a/icons/icon16.png and /dev/null differ diff --git a/icons/icon48.png b/icons/icon48.png deleted file mode 100644 index 086c5549..00000000 Binary files a/icons/icon48.png and /dev/null differ diff --git a/icons/icon96.png b/icons/icon96.png deleted file mode 100644 index 130c90f6..00000000 Binary files a/icons/icon96.png and /dev/null differ diff --git a/manifest.json b/manifest.json index 1178cc5f..8fd1c0d3 100644 --- a/manifest.json +++ b/manifest.json @@ -14,10 +14,10 @@ "description": "__MSG_extensionDescription__", "icons": { - "16": "icons/icon16.png", - "48": "icons/icon48.png", - "96": "icons/icon96.png", - "128": "icons/icon128.png" + "16": "icons/enabled.svg", + "48": "icons/enabled.svg", + "96": "icons/enabled.svg", + "128": "icons/enabled.svg" }, "permissions": [ @@ -37,13 +37,13 @@ "browser_action": { "default_icon": { - "16": "icons/action/icon16-default.png", - "18": "icons/action/icon18-default.png", - "19": "icons/action/icon19-default.png", - "32": "icons/action/icon32-default.png", - "36": "icons/action/icon36-default.png", - "38": "icons/action/icon38-default.png", - "64": "icons/action/icon64-default.png" + "16": "icons/enabled.svg", + "18": "icons/enabled.svg", + "19": "icons/enabled.svg", + "32": "icons/enabled.svg", + "36": "icons/enabled.svg", + "38": "icons/enabled.svg", + "64": "icons/enabled.svg" }, "default_popup": "pages/popup/popup.html", "browser_style": false diff --git a/pages/options/options.html b/pages/options/options.html index b8d32e81..59597041 100644 --- a/pages/options/options.html +++ b/pages/options/options.html @@ -10,6 +10,7 @@ + @@ -101,6 +102,16 @@
If enabled, you wont receive any information about new features in LocalCDN. This includes information about new uBlock/uMatrix rules.
+
+
+ +
+ +
diff --git a/pages/options/options.js b/pages/options/options.js index a7a2a7b8..2ae80652 100644 --- a/pages/options/options.js +++ b/pages/options/options.js @@ -70,6 +70,7 @@ options._renderOptionsPanel = function () { elements.domainsManipulateDOM.value = domainHtmlFilter; elements.negateHtmlFilterList.checked = options._optionValues.negateHtmlFilterList; elements.blockGoogleFonts.checked = options._optionValues.blockGoogleFonts; + elements.useMonochromeIcons.checked = options._optionValues.useMonochromeIcons; options._registerOptionChangedEventListeners(elements); options._registerMiscellaneousEventListeners(); @@ -130,6 +131,7 @@ options._registerOptionChangedEventListeners = function (elements) { elements.domainsManipulateDOM.addEventListener('keyup', options._onOptionChanged); elements.negateHtmlFilterList.addEventListener('change', options._onOptionChanged); elements.blockGoogleFonts.addEventListener('change', options._onOptionChanged); + elements.useMonochromeIcons.addEventListener('change', options._onOptionChanged); let type = elements.ruleSets; for(let i = 0; i < type.length; i++) { type[i].addEventListener('change', options._openRuleSet); @@ -182,7 +184,8 @@ options._getOptionElements = function () { ['copyRuleSet']: document.getElementById("button-copy-rule-set"), [Setting.NEGATE_HTML_FILTER_LIST]: options._getOptionElement(Setting.NEGATE_HTML_FILTER_LIST), [Setting.DOMAINS_MANIPULATE_DOM]: options._getOptionElement(Setting.DOMAINS_MANIPULATE_DOM), - [Setting.BLOCK_GOOGLE_FONTS]: options._getOptionElement(Setting.BLOCK_GOOGLE_FONTS) + [Setting.BLOCK_GOOGLE_FONTS]: options._getOptionElement(Setting.BLOCK_GOOGLE_FONTS), + [Setting.USE_MONOCHROME_ICONS]: options._getOptionElement(Setting.USE_MONOCHROME_ICONS) }; return optionElements; @@ -290,6 +293,12 @@ options._onOptionChanged = function ({target}) { } } + if (optionKey === Setting.USE_MONOCHROME_ICONS) { + wrappers.setIcon({ + 'path': optionValue ? IconType.Enabled.White : IconType.Enabled.Green + }); + } + chrome.storage.sync.set({ [optionKey]: optionValue }); diff --git a/pages/updates/updates.html b/pages/updates/updates.html index 5e4ec2f9..63e0ffda 100644 --- a/pages/updates/updates.html +++ b/pages/updates/updates.html @@ -27,6 +27,7 @@
  • URLs updated (localcdn.de -> localcdn.org)
  • Fixed: Popup scrollbar of dark mode (reported by email)
  • Fixed: Wrong version selection of AngularUI Bootstrap (#50)
  • +
  • Implemented: Monochrome icons (#52)
  • Fixed: Bootstrap JS v4.4.1 (#54)