diff --git a/core/constants.js b/core/constants.js index d4b32d7b..267a73ac 100644 --- a/core/constants.js +++ b/core/constants.js @@ -194,69 +194,69 @@ const Allowlist = { }; const BrowserType = { - 'CHROMIUM': chrome.runtime.getURL('/').startsWith('chrome-extension'), - 'FIREFOX': chrome.runtime.getURL('/').startsWith('moz-extension') + 'CHROMIUM': browser.runtime.getURL('/').startsWith('chrome-extension'), + 'FIREFOX': browser.runtime.getURL('/').startsWith('moz-extension') }; const IconType = { 'Default': { 'Enabled': { - '16': chrome.runtime.getURL('icons/action/default/icon16-default.png'), - '18': chrome.runtime.getURL('icons/action/default/icon18-default.png'), - '19': chrome.runtime.getURL('icons/action/default/icon19-default.png'), - '32': chrome.runtime.getURL('icons/action/default/icon32-default.png'), - '36': chrome.runtime.getURL('icons/action/default/icon36-default.png'), - '38': chrome.runtime.getURL('icons/action/default/icon38-default.png'), - '64': chrome.runtime.getURL('icons/action/default/icon64-default.png') + '16': browser.runtime.getURL('icons/action/default/icon16-default.png'), + '18': browser.runtime.getURL('icons/action/default/icon18-default.png'), + '19': browser.runtime.getURL('icons/action/default/icon19-default.png'), + '32': browser.runtime.getURL('icons/action/default/icon32-default.png'), + '36': browser.runtime.getURL('icons/action/default/icon36-default.png'), + '38': browser.runtime.getURL('icons/action/default/icon38-default.png'), + '64': browser.runtime.getURL('icons/action/default/icon64-default.png') }, 'Disabled': { - '16': chrome.runtime.getURL('icons/action/default/icon16-disabled.png'), - '18': chrome.runtime.getURL('icons/action/default/icon18-disabled.png'), - '19': chrome.runtime.getURL('icons/action/default/icon19-disabled.png'), - '32': chrome.runtime.getURL('icons/action/default/icon32-disabled.png'), - '36': chrome.runtime.getURL('icons/action/default/icon36-disabled.png'), - '38': chrome.runtime.getURL('icons/action/default/icon38-disabled.png'), - '64': chrome.runtime.getURL('icons/action/default/icon64-disabled.png') + '16': browser.runtime.getURL('icons/action/default/icon16-disabled.png'), + '18': browser.runtime.getURL('icons/action/default/icon18-disabled.png'), + '19': browser.runtime.getURL('icons/action/default/icon19-disabled.png'), + '32': browser.runtime.getURL('icons/action/default/icon32-disabled.png'), + '36': browser.runtime.getURL('icons/action/default/icon36-disabled.png'), + '38': browser.runtime.getURL('icons/action/default/icon38-disabled.png'), + '64': browser.runtime.getURL('icons/action/default/icon64-disabled.png') } }, 'Light': { 'Enabled': { - '16': chrome.runtime.getURL('icons/action/light/icon16-default.png'), - '18': chrome.runtime.getURL('icons/action/light/icon18-default.png'), - '19': chrome.runtime.getURL('icons/action/light/icon19-default.png'), - '32': chrome.runtime.getURL('icons/action/light/icon32-default.png'), - '36': chrome.runtime.getURL('icons/action/light/icon36-default.png'), - '38': chrome.runtime.getURL('icons/action/light/icon38-default.png'), - '64': chrome.runtime.getURL('icons/action/light/icon64-default.png') + '16': browser.runtime.getURL('icons/action/light/icon16-default.png'), + '18': browser.runtime.getURL('icons/action/light/icon18-default.png'), + '19': browser.runtime.getURL('icons/action/light/icon19-default.png'), + '32': browser.runtime.getURL('icons/action/light/icon32-default.png'), + '36': browser.runtime.getURL('icons/action/light/icon36-default.png'), + '38': browser.runtime.getURL('icons/action/light/icon38-default.png'), + '64': browser.runtime.getURL('icons/action/light/icon64-default.png') }, 'Disabled': { - '16': chrome.runtime.getURL('icons/action/light/icon16-disabled.png'), - '18': chrome.runtime.getURL('icons/action/light/icon18-disabled.png'), - '19': chrome.runtime.getURL('icons/action/light/icon19-disabled.png'), - '32': chrome.runtime.getURL('icons/action/light/icon32-disabled.png'), - '36': chrome.runtime.getURL('icons/action/light/icon36-disabled.png'), - '38': chrome.runtime.getURL('icons/action/light/icon38-disabled.png'), - '64': chrome.runtime.getURL('icons/action/light/icon64-disabled.png') + '16': browser.runtime.getURL('icons/action/light/icon16-disabled.png'), + '18': browser.runtime.getURL('icons/action/light/icon18-disabled.png'), + '19': browser.runtime.getURL('icons/action/light/icon19-disabled.png'), + '32': browser.runtime.getURL('icons/action/light/icon32-disabled.png'), + '36': browser.runtime.getURL('icons/action/light/icon36-disabled.png'), + '38': browser.runtime.getURL('icons/action/light/icon38-disabled.png'), + '64': browser.runtime.getURL('icons/action/light/icon64-disabled.png') } }, 'Grey': { 'Enabled': { - '16': chrome.runtime.getURL('icons/action/grey/icon16-default.png'), - '18': chrome.runtime.getURL('icons/action/grey/icon18-default.png'), - '19': chrome.runtime.getURL('icons/action/grey/icon19-default.png'), - '32': chrome.runtime.getURL('icons/action/grey/icon32-default.png'), - '36': chrome.runtime.getURL('icons/action/grey/icon36-default.png'), - '38': chrome.runtime.getURL('icons/action/grey/icon38-default.png'), - '64': chrome.runtime.getURL('icons/action/grey/icon64-default.png') + '16': browser.runtime.getURL('icons/action/grey/icon16-default.png'), + '18': browser.runtime.getURL('icons/action/grey/icon18-default.png'), + '19': browser.runtime.getURL('icons/action/grey/icon19-default.png'), + '32': browser.runtime.getURL('icons/action/grey/icon32-default.png'), + '36': browser.runtime.getURL('icons/action/grey/icon36-default.png'), + '38': browser.runtime.getURL('icons/action/grey/icon38-default.png'), + '64': browser.runtime.getURL('icons/action/grey/icon64-default.png') }, 'Disabled': { - '16': chrome.runtime.getURL('icons/action/grey/icon16-disabled.png'), - '18': chrome.runtime.getURL('icons/action/grey/icon18-disabled.png'), - '19': chrome.runtime.getURL('icons/action/grey/icon19-disabled.png'), - '32': chrome.runtime.getURL('icons/action/grey/icon32-disabled.png'), - '36': chrome.runtime.getURL('icons/action/grey/icon36-disabled.png'), - '38': chrome.runtime.getURL('icons/action/grey/icon38-disabled.png'), - '64': chrome.runtime.getURL('icons/action/grey/icon64-disabled.png') + '16': browser.runtime.getURL('icons/action/grey/icon16-disabled.png'), + '18': browser.runtime.getURL('icons/action/grey/icon18-disabled.png'), + '19': browser.runtime.getURL('icons/action/grey/icon19-disabled.png'), + '32': browser.runtime.getURL('icons/action/grey/icon32-disabled.png'), + '36': browser.runtime.getURL('icons/action/grey/icon36-disabled.png'), + '38': browser.runtime.getURL('icons/action/grey/icon38-disabled.png'), + '64': browser.runtime.getURL('icons/action/grey/icon64-disabled.png') } } }; @@ -282,17 +282,17 @@ const MaterialIcons = { const Links = { 'CODEBERG_HTML_FILTER': 'https://codeberg.org/nobody/LocalCDN/wiki/Home#user-content-7-a-website-looks-weird-or-cannot-be-used-if-i-deactivate-localcdn-everything-works-what-is-the-problem', 'CODEBERG_RULESET': 'https://codeberg.org/nobody/LocalCDN/wiki/Home#user-content-6-why-do-i-need-this-rule-generator-i-use-an-adblocker-and-want-to-import-these-rules-how-does-it-work', - 'WELCOME': chrome.runtime.getURL('pages/welcome/welcome.html'), - 'DONATE': chrome.runtime.getURL('pages/donate/donate.html'), - 'CHANGELOG': chrome.runtime.getURL('pages/updates/updates.html'), - 'FAQ': chrome.runtime.getURL('pages/help/help.html'), - 'FAQ_HTML_FILTER': chrome.runtime.getURL('pages/help/help.html#html-filter'), - 'STATISTICS': chrome.runtime.getURL('pages/statistics/statistics.html'), + 'WELCOME': browser.runtime.getURL('pages/welcome/welcome.html'), + 'DONATE': browser.runtime.getURL('pages/donate/donate.html'), + 'CHANGELOG': browser.runtime.getURL('pages/updates/updates.html'), + 'FAQ': browser.runtime.getURL('pages/help/help.html'), + 'FAQ_HTML_FILTER': browser.runtime.getURL('pages/help/help.html#html-filter'), + 'STATISTICS': browser.runtime.getURL('pages/statistics/statistics.html'), 'LOCALCDN_TEST': 'https://www.localcdn.org/test', 'LOCALCDN_TEST_WEBSITE': 'https://www.localcdn.org/test/check', 'WEBLATE': 'https://hosted.weblate.org/projects/localcdn/localcdn/', - 'LOGGING': chrome.runtime.getURL('pages/logging/logging.html'), - 'FAQ_PERMISSION': chrome.runtime.getURL('pages/help/help.html#permission'), + 'LOGGING': browser.runtime.getURL('pages/logging/logging.html'), + 'FAQ_PERMISSION': browser.runtime.getURL('pages/help/help.html#permission'), }; const CDNs = { diff --git a/core/file-guard.js b/core/file-guard.js index 3ac1245e..125d3744 100644 --- a/core/file-guard.js +++ b/core/file-guard.js @@ -33,7 +33,7 @@ fileGuard._startListening = function () { let randomHexString = helpers.generateRandomHexString(24); fileGuard.secret = `?_=${randomHexString}`; - chrome.webRequest.onBeforeRequest.addListener( + browser.webRequest.onBeforeRequest.addListener( fileGuard._verifyRequest, {'urls': [fileGuard.path + Address.ANY_PATH]}, [WebRequest.BLOCKING] @@ -42,7 +42,7 @@ fileGuard._startListening = function () { fileGuard._verifyRequest = function (requestDetails) { - let redirectUrl = chrome.runtime.getURL(Address.ROOT_PATH); + let redirectUrl = browser.runtime.getURL(Address.ROOT_PATH); if (!requestDetails.url.endsWith(fileGuard.secret)) { return {redirectUrl}; @@ -54,7 +54,7 @@ fileGuard._verifyRequest = function (requestDetails) { * Initializations */ -fileGuard.path = chrome.runtime.getURL(Address.RESOURCE_PATH); +fileGuard.path = browser.runtime.getURL(Address.RESOURCE_PATH); fileGuard.secret = ''; if (fileGuard.path.startsWith(Address.CHROME_EXTENSION)) { diff --git a/core/interceptor.js b/core/interceptor.js index 7d5416f8..222c8bab 100644 --- a/core/interceptor.js +++ b/core/interceptor.js @@ -56,7 +56,7 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) { source = helpers.extractDomainFromUrl(tab.url, true); resource = tab.url; return { - 'redirectUrl': chrome.runtime.getURL(`resources/blocked/index.html?source=${source}&resource=${resource}`) + 'redirectUrl': browser.runtime.getURL(`resources/blocked/index.html?source=${source}&resource=${resource}`) }; } @@ -92,13 +92,13 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) { isGoogleFont = requestAnalyzer.isGoogleFont(targetDomain); isGoogleMaterialIcons = requestAnalyzer.isGoogleMaterialIcons(requestDetails.url); - if (BrowserType.FIREFOX && isGoogleFont && !isGoogleMaterialIcons) { + if (isGoogleFont && !isGoogleMaterialIcons) { initiatorDomain = helpers.extractDomainFromUrl(tab.url, true); isListed = helpers.checkAllowlisted(initiatorDomain, interceptor.allowedDomainsGoogleFonts); // Check if the website is allowed to load Google Fonts if (interceptor.blockGoogleFonts === true && isListed === false) { return { - 'redirectUrl': chrome.runtime.getURL('resources/google-fonts-placeholder.css') + 'redirectUrl': browser.runtime.getURL('resources/google-fonts-placeholder.css') }; } else if (interceptor.blockGoogleFonts === false || isListed === true) { return { @@ -118,7 +118,7 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) { log.append(tab.url, requestDetails.url, targetDetails.path, false, iframe); return { - 'redirectUrl': chrome.runtime.getURL(targetDetails.path + fileGuard.secret) + 'redirectUrl': browser.runtime.getURL(targetDetails.path + fileGuard.secret) }; }; @@ -192,4 +192,4 @@ interceptor._isBadResource = function (requestUrl) { * Event Handlers */ -chrome.storage.onChanged.addListener(interceptor._handleStorageChanged); +browser.storage.onChanged.addListener(interceptor._handleStorageChanged); diff --git a/core/main.js b/core/main.js index d8946f9b..5518976a 100644 --- a/core/main.js +++ b/core/main.js @@ -62,7 +62,7 @@ main._initializeSettings = function () { } if (items.disablePrefetch !== false) { - chrome.privacy.network.networkPredictionEnabled.set({ + browser.privacy.network.networkPredictionEnabled.set({ 'value': false }); } @@ -96,18 +96,18 @@ main._initializeSettings = function () { main._showReleaseNotes = function (details) { storageManager.checkStorageType(); - if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) { + if (details.reason === browser.runtime.OnInstalledReason.INSTALL) { storageManager.type.set({ [Setting.LAST_MAPPING_UPDATE]: mappings.lastMappingUpdate }, function () { if (details.temporary !== true) { - chrome.tabs.create({ - 'url': chrome.runtime.getURL('pages/welcome/welcome.html'), + browser.tabs.create({ + 'url': browser.runtime.getURL('pages/welcome/welcome.html'), 'active': true }); } }); - } else if (details.reason === chrome.runtime.OnInstalledReason.UPDATE) { + } else if (details.reason === browser.runtime.OnInstalledReason.UPDATE) { storageManager.type.get(null, function (items) { let mappingUpdate = items.lastMappingUpdate !== mappings.lastMappingUpdate; @@ -138,8 +138,8 @@ main._showReleaseNotes = function (details) { } if ((mappingUpdate && items.updateNotification === 1) || items.updateNotification === 2) { - chrome.tabs.create({ - 'url': chrome.runtime.getURL(`pages/updates/updates.html?mappingupdate=${mappingUpdate}`), + browser.tabs.create({ + 'url': browser.runtime.getURL(`pages/updates/updates.html?mappingupdate=${mappingUpdate}`), 'active': false }); } else { @@ -152,8 +152,8 @@ main._showReleaseNotes = function (details) { main._permissionStatusListener = function (e) { if (e.permissions.includes('')) { - chrome.tabs.create({ - 'url': chrome.runtime.getURL('pages/info/info.html'), + browser.tabs.create({ + 'url': browser.runtime.getURL('pages/info/info.html'), 'active': true }); } @@ -163,6 +163,6 @@ main._permissionStatusListener = function (e) { /** * Initializations */ -chrome.runtime.onInstalled.addListener(main._showReleaseNotes); -chrome.permissions.onRemoved.addListener(main._permissionStatusListener); +browser.runtime.onInstalled.addListener(main._showReleaseNotes); +browser.permissions.onRemoved.addListener(main._permissionStatusListener); main._initializeSettings(); diff --git a/core/manipulate-dom.js b/core/manipulate-dom.js index 870cc650..a9c1f164 100644 --- a/core/manipulate-dom.js +++ b/core/manipulate-dom.js @@ -28,13 +28,6 @@ var manipulateDOM = {}; manipulateDOM._removeCrossOriginAndIntegrityAttr = function (details) { - if (!BrowserType.FIREFOX) { - // Chromium (and other) browsers do not support webRequest.filterResponseData - // https://bugs.chromium.org/p/chromium/issues/detail?id=487422 - console.warn('[ LocalCDN ] browser.webRequest.filterResponseData not supported by your browser.'); - log.append(details.url, '-', 'browser.webRequest.filterResponseData not supported by your browser', true); - return; - } if (details.statusCode === 200) { let initiatorDomain, header; @@ -172,7 +165,7 @@ let cdnDomainsRE = new RegExp(`//(${Object.keys(mappings.cdn).map((m) => m.repla * Event Handlers */ -chrome.webRequest.onHeadersReceived.addListener( +browser.webRequest.onHeadersReceived.addListener( manipulateDOM._removeCrossOriginAndIntegrityAttr, {'types': [WebRequestType.MAIN_FRAME, WebRequestType.SUB_FRAME], 'urls': [Address.ANY]}, [WebRequest.BLOCKING, WebRequest.RESPONSE_HEADERS] diff --git a/core/mappings.js b/core/mappings.js index c4307c96..75d6986f 100644 --- a/core/mappings.js +++ b/core/mappings.js @@ -1230,13 +1230,6 @@ mappings.cdn['cdn.bootcdn.net'] = mappings.cdn['cdnjs.cloudflare.com']; mappings.cdn['fonts.gstatic.com'] = mappings.cdn['fonts.googleapis.com']; -// Remove Google Fonts Endpoints for Chromium browsers (https://codeberg.org/nobody/LocalCDN/issues/1085) -if (!BrowserType.FIREFOX) { - delete mappings.cdn['fonts.gstatic.com']; - delete mappings.cdn['fonts.googleapis.com']; -} - - /** * List of CNAME CDNs * https://codeberg.org/nobody/LocalCDN/issues/816 diff --git a/core/messenger.js b/core/messenger.js index 870ce7b9..df616949 100644 --- a/core/messenger.js +++ b/core/messenger.js @@ -121,4 +121,4 @@ messenger._handleMessageReceived = function (message, sender, sendResponse) { * Event Handlers */ -chrome.runtime.onMessage.addListener(messenger._handleMessageReceived); +browser.runtime.onMessage.addListener(messenger._handleMessageReceived); diff --git a/core/request-analyzer.js b/core/request-analyzer.js index 8698720c..0263fe04 100644 --- a/core/request-analyzer.js +++ b/core/request-analyzer.js @@ -50,16 +50,6 @@ requestAnalyzer.isValidCandidate = function (requestDetails, tabDetails) { return false; } - // Font Awesome injections in Chromium deactivated (https://gitlab.com/nobody42/localcdn/-/issues/67) - if (!BrowserType.FIREFOX) { - let requestType = requestAnalyzer.chromeSupport(requestDetails.url); - if (requestType !== '') { - console.warn(`${LogString.PREFIX} ${requestType} ${LogString.NOT_SUPPORTED}`); - log.append(tabDetails.url, requestDetails.url, `${requestType} ${LogString.NOT_SUPPORTED}`, true); - return false; - } - } - // Ignore requests if website is 'yandex.com' and CDN is 'yastatic.net', because website and CDN are the same. if (tabDetails.url.includes('yandex.com') && requestDetails.url.includes('yastatic.net')) { log.append(tabDetails.url, requestDetails.url, LogString.YANDEX, true); @@ -334,5 +324,5 @@ requestAnalyzer._applyManipulateDOMDomains(); * Event Handlers */ -chrome.storage.onChanged.addListener(requestAnalyzer._applyAllowlistedDomains); -chrome.storage.onChanged.addListener(requestAnalyzer._applyManipulateDOMDomains); +browser.storage.onChanged.addListener(requestAnalyzer._applyAllowlistedDomains); +browser.storage.onChanged.addListener(requestAnalyzer._applyManipulateDOMDomains); diff --git a/core/request-sanitizer.js b/core/request-sanitizer.js index 6a447a01..6e9e79fe 100644 --- a/core/request-sanitizer.js +++ b/core/request-sanitizer.js @@ -21,36 +21,24 @@ var requestSanitizer = {}; -/** - * Preparation - * https://codeberg.org/nobody/LocalCDN/issues/442 - */ - -/* eslint-disable indent */ -const ExtraInfoSpec = BrowserType.FIREFOX - ? [WebRequest.BLOCKING, WebRequest.HEADERS] - : [WebRequest.BLOCKING, WebRequest.HEADERS, WebRequest.EXTRA_HEADERS]; -/* eslint-enable indent */ - - /** * Public Methods */ requestSanitizer.enable = function () { - let onBeforeSendHeaders = chrome.webRequest.onBeforeSendHeaders; + let onBeforeSendHeaders = browser.webRequest.onBeforeSendHeaders; onBeforeSendHeaders.addListener(requestSanitizer._stripMetadata, { 'urls': stateManager.validHosts - }, ExtraInfoSpec); + }, [WebRequest.BLOCKING, WebRequest.HEADERS]); }; requestSanitizer.disable = function () { - let onBeforeSendHeaders = chrome.webRequest.onBeforeSendHeaders; + let onBeforeSendHeaders = browser.webRequest.onBeforeSendHeaders; onBeforeSendHeaders.removeListener(requestSanitizer._stripMetadata, { 'urls': stateManager.validHosts - }, ExtraInfoSpec); + }, [WebRequest.BLOCKING, WebRequest.HEADERS]); }; diff --git a/core/state-manager.js b/core/state-manager.js index 1f376e10..fb882301 100644 --- a/core/state-manager.js +++ b/core/state-manager.js @@ -46,7 +46,7 @@ stateManager.registerInjection = function (tabIdentifier, injection, url) { missingCount = registeredTab.missing || 0; if (injectionCount > 0) { - chrome.action.setTitle({ + browser.action.setTitle({ 'tabId': tabIdentifier, 'title': `LocalCDN (${injectionCount})` }); @@ -69,7 +69,7 @@ stateManager.registerInjection = function (tabIdentifier, injection, url) { }); }); } else { - chrome.storage.local.set({ + browser.storage.local.set({ [Setting.AMOUNT_INJECTED]: ++storageManager.amountInjected }); } @@ -164,7 +164,7 @@ stateManager._createTab = function (tab) { 'urls': stateManager.validHosts }; - chrome.webRequest.onBeforeRequest.addListener(function (requestDetails) { + browser.webRequest.onBeforeRequest.addListener(function (requestDetails) { tab = stateManager.tabs[tabIdentifier].details || {}; return interceptor.handleRequest(requestDetails, tabIdentifier, tab); }, requestFilters, [WebRequest.BLOCKING]); @@ -185,14 +185,14 @@ stateManager._updateTab = function (details) { return; } - chrome.action.setTitle({ + browser.action.setTitle({ 'tabId': tabIdentifier, 'title': 'LocalCDN (0)' }); if (domainIsAllowlisted) { stateManager._setIconDisabled(tabIdentifier); - chrome.action.setTitle({ + browser.action.setTitle({ 'tabId': tabIdentifier, 'title': 'LocalCDN (–)' }); @@ -212,7 +212,7 @@ stateManager._handleStorageChanged = function (changes) { if (Setting.SHOW_ICON_BADGE in changes) { stateManager.showIconBadge = changes.showIconBadge.newValue; if (changes.showIconBadge.newValue !== true) { - chrome.tabs.query({}, function (tabs) { + browser.tabs.query({}, function (tabs) { tabs.forEach(stateManager._removeIconBadgeFromTab); }); } @@ -297,7 +297,7 @@ for (let mapping in mappings.cdn) { stateManager.validHosts.push(supportedHost); } -chrome.tabs.query({}, function (tabs) { +browser.tabs.query({}, function (tabs) { tabs.forEach(stateManager._createTab); }); @@ -331,7 +331,7 @@ storageManager.type.get([ stateManager.amountInjected = items.amountInjected; }); -chrome.storage.local.get([Setting.INTERNAL_STATISTICS], function (items) { +browser.storage.local.get([Setting.INTERNAL_STATISTICS], function (items) { stateManager.internalStatistics = items.internalStatistics; }); @@ -340,10 +340,10 @@ chrome.storage.local.get([Setting.INTERNAL_STATISTICS], function (items) { * Event Handlers */ -chrome.tabs.onCreated.addListener(stateManager._createTab); -chrome.tabs.onRemoved.addListener(stateManager._removeTab); +browser.tabs.onCreated.addListener(stateManager._createTab); +browser.tabs.onRemoved.addListener(stateManager._removeTab); -chrome.webRequest.onBeforeRequest.addListener(function (requestDetails) { +browser.webRequest.onBeforeRequest.addListener(function (requestDetails) { if (requestDetails.tabId !== -1 && stateManager.tabs[requestDetails.tabId]) { stateManager.tabs[requestDetails.tabId].details = { 'url': requestDetails.url @@ -351,17 +351,17 @@ chrome.webRequest.onBeforeRequest.addListener(function (requestDetails) { } }, {'types': [WebRequestType.MAIN_FRAME], 'urls': [Address.ANY]}, [WebRequest.BLOCKING]); -chrome.webNavigation.onCommitted.addListener(stateManager._updateTab, { +browser.webNavigation.onCommitted.addListener(stateManager._updateTab, { 'url': [{'urlContains': ':'}] }); -chrome.webRequest.onErrorOccurred.addListener(function (requestDetails) { +browser.webRequest.onErrorOccurred.addListener(function (requestDetails) { if (stateManager.requests[requestDetails.requestId]) { delete stateManager.requests[requestDetails.requestId]; } }, {'urls': [Address.ANY]}); -chrome.webRequest.onBeforeRedirect.addListener(function (requestDetails) { +browser.webRequest.onBeforeRedirect.addListener(function (requestDetails) { let knownRequest = stateManager.requests[requestDetails.requestId]; if (knownRequest) { stateManager.registerInjection( @@ -373,4 +373,4 @@ chrome.webRequest.onBeforeRedirect.addListener(function (requestDetails) { } }, {'urls': [Address.ANY]}); -chrome.storage.onChanged.addListener(stateManager._handleStorageChanged); +browser.storage.onChanged.addListener(stateManager._handleStorageChanged); diff --git a/core/storage-manager.js b/core/storage-manager.js index 46c23ea0..25984d58 100644 --- a/core/storage-manager.js +++ b/core/storage-manager.js @@ -34,11 +34,11 @@ var storageManager = {}; */ storageManager.checkStorageType = function () { - chrome.storage.local.get([Setting.STORAGE_TYPE], function (items) { + browser.storage.local.get([Setting.STORAGE_TYPE], function (items) { if (items.storageType === 'sync') { - storageManager.type = chrome.storage.sync; + storageManager.type = browser.storage.sync; } else { - storageManager.type = chrome.storage.local; + storageManager.type = browser.storage.local; } }); }; @@ -49,14 +49,14 @@ storageManager.migrateData = function (target) { syncFetch = false; if (target === 'local') { - storageSource = chrome.storage.sync; - storageDestination = chrome.storage.local; + storageSource = browser.storage.sync; + storageDestination = browser.storage.local; } else if (target === 'sync') { - storageSource = chrome.storage.local; - storageDestination = chrome.storage.sync; + storageSource = browser.storage.local; + storageDestination = browser.storage.sync; } else if (target === 'sync-fetch') { - storageSource = chrome.storage.sync; - storageDestination = chrome.storage.sync; + storageSource = browser.storage.sync; + storageDestination = browser.storage.sync; target = 'sync'; syncFetch = true; } else { @@ -64,7 +64,7 @@ storageManager.migrateData = function (target) { } storageSource.get(null, function (data) { - chrome.storage.local.set({ + browser.storage.local.set({ [Setting.AMOUNT_INJECTED]: data.amountInjected, [Setting.INTERNAL_STATISTICS]: data.internalStatistics, [Setting.INTERNAL_STATISTICS_DATA]: data.internalStatisticsData, @@ -92,7 +92,7 @@ storageManager.migrateData = function (target) { [Setting.BADGE_HTML_FILTER_TEXT_COLOR]: data.badgeHTMLfilterTextColor }); if (syncFetch === true) { - chrome.runtime.reload(); + browser.runtime.reload(); } }); }; @@ -145,9 +145,9 @@ storageManager.handleImportFilePicker = function () { storageManager._handleStorageChanged = function (type) { if (Setting.STORAGE_TYPE in type) { if (type.storageType.newValue === 'sync') { - storageManager.type = chrome.storage.sync; + storageManager.type = browser.storage.sync; } else { - storageManager.type = chrome.storage.local; + storageManager.type = browser.storage.local; } } }; @@ -196,15 +196,15 @@ storageManager._validation = function (content) { // Set default if not existing in file imported[key] = value; } else { - alert(`${chrome.i18n.getMessage('dialogImportFailed')}\n\n${key}: ${content[key]}`); + alert(`${browser.i18n.getMessage('dialogImportFailed')}\n\n${key}: ${content[key]}`); throw InvalidFile; } } storageManager.type.set(imported); - alert(chrome.i18n.getMessage('dialogImportSuccessful')); - chrome.runtime.reload(); + alert(browser.i18n.getMessage('dialogImportSuccessful')); + browser.runtime.reload(); }; storageManager._validateDomainsAndStatistics = function (type, obj) { @@ -216,7 +216,7 @@ storageManager._validateDomainsAndStatistics = function (type, obj) { if (((/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,24}/).test(key) || key === '') && value === true) { valid[key] = value; } else { - alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${key}`); + alert(`${browser.i18n.getMessage('dialogImportFailed')}: ${key}`); throw InvalidFile; } } @@ -228,7 +228,7 @@ storageManager._validateDomainsAndStatistics = function (type, obj) { for (const [name, counter] of Object.entries(category)) { // eslint-disable-next-line max-len if (!(/resources\/[0-9a-z.-]+\/((?:\d{1,2}\.){1,3}\d{1,2})?.*\.(css|jsm)/).test(name) && !storageManager._validateNumbers(counter)) { - alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${name}`); + alert(`${browser.i18n.getMessage('dialogImportFailed')}: ${name}`); throw InvalidFile; } } @@ -236,23 +236,23 @@ storageManager._validateDomainsAndStatistics = function (type, obj) { for (const [name, counter] of Object.entries(category)) { // eslint-disable-next-line no-useless-escape, max-len if (!(/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,24}/).test(name) && !storageManager._validateNumbers(counter)) { - alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${name}`); + alert(`${browser.i18n.getMessage('dialogImportFailed')}: ${name}`); throw InvalidFile; } } } else { - alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${type}`); + alert(`${browser.i18n.getMessage('dialogImportFailed')}: ${type}`); throw InvalidFile; } } } else { - alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${date}`); + alert(`${browser.i18n.getMessage('dialogImportFailed')}: ${date}`); throw InvalidFile; } } valid = obj; } else { - alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${type}`); + alert(`${browser.i18n.getMessage('dialogImportFailed')}: ${type}`); throw InvalidFile; } return valid; @@ -284,8 +284,8 @@ storageManager._validateNumbers = function (value) { */ storageManager.data = {}; -storageManager.type = chrome.storage.local; +storageManager.type = browser.storage.local; storageManager.amountInjected = 0; storageManager.statistics = {}; -chrome.storage.onChanged.addListener(storageManager._handleStorageChanged); +browser.storage.onChanged.addListener(storageManager._handleStorageChanged); diff --git a/modules/internal/helpers.js b/modules/internal/helpers.js index 90eaa62b..ee3a5ee7 100644 --- a/modules/internal/helpers.js +++ b/modules/internal/helpers.js @@ -40,11 +40,11 @@ helpers.insertI18nContentIntoDocument = function (document) { i18nElements.forEach(function (i18nElement) { let i18nMessageName = i18nElement.getAttribute('data-i18n-content'); - if (chrome.i18n.getMessage(i18nMessageName) !== '') { + if (browser.i18n.getMessage(i18nMessageName) !== '') { if (i18nElement.type === 'button') { - i18nElement.value = chrome.i18n.getMessage(i18nMessageName); + i18nElement.value = browser.i18n.getMessage(i18nMessageName); } else { - i18nElement.textContent = chrome.i18n.getMessage(i18nMessageName); + i18nElement.textContent = browser.i18n.getMessage(i18nMessageName); } i18nElement.setAttribute('dir', scriptDirection); } else { @@ -64,7 +64,7 @@ helpers.insertI18nTitlesIntoDocument = function (document) { i18nElements.forEach(function (i18nElement) { let i18nMessageName = i18nElement.getAttribute('data-i18n-title'); - i18nElement.setAttribute('title', chrome.i18n.getMessage(i18nMessageName)); + i18nElement.setAttribute('title', browser.i18n.getMessage(i18nMessageName)); i18nElement.setAttribute('dir', scriptDirection); }); }; @@ -242,13 +242,13 @@ helpers.determineActiveTab = function () { 'currentWindow': true }; - chrome.tabs.query(opt, function (tabs) { + browser.tabs.query(opt, function (tabs) { if (tabs[0]) { resolve(tabs[0]); } else { opt = {'active': true}; - chrome.tabs.query(opt, function () { + browser.tabs.query(opt, function () { resolve(tabs[0]); }); } diff --git a/modules/internal/permission.js b/modules/internal/permission.js index e9f40ce8..2009be77 100644 --- a/modules/internal/permission.js +++ b/modules/internal/permission.js @@ -17,7 +17,7 @@ var permission = {}; permission._onDocumentLoaded = function () { - chrome.permissions.getAll(({origins}) => { + browser.permissions.getAll(({origins}) => { if (origins.includes('')) { document.getElementById('div-permission').hidden = true; document.getElementById('div-content').hidden = false; @@ -26,7 +26,7 @@ permission._onDocumentLoaded = function () { document.getElementById('div-content').hidden = true; console.error('[ LocalCDN ] missing permission'); document.getElementById('grant-permission').addEventListener('click', function () { - chrome.permissions.request({'origins': ['']}); + browser.permissions.request({'origins': ['']}); }); } }); @@ -44,7 +44,7 @@ permission._removed = function () { document.getElementById('div-content').hidden = true; }; -chrome.permissions.onAdded.addListener(permission._added); -chrome.permissions.onRemoved.addListener(permission._removed); +browser.permissions.onAdded.addListener(permission._added); +browser.permissions.onRemoved.addListener(permission._removed); document.addEventListener('DOMContentLoaded', permission._onDocumentLoaded); diff --git a/modules/internal/rule-generator.js b/modules/internal/rule-generator.js index f9f3705c..a89d9baa 100644 --- a/modules/internal/rule-generator.js +++ b/modules/internal/rule-generator.js @@ -38,11 +38,6 @@ ruleGenerator.openRuleSet = function ({target}) { textArea.style.display = 'block'; btnCopy.style.display = 'block'; - if (!BrowserType.FIREFOX) { - delete urls['fonts.googleapis.com']; - delete urls['fonts.gstatic.com']; - } - for (const domain in urls) { if (key === 'uMatrix') { content += `* ${domain} script allow\n`; diff --git a/modules/internal/stats.js b/modules/internal/stats.js index bf07f65f..8ee2d9f2 100644 --- a/modules/internal/stats.js +++ b/modules/internal/stats.js @@ -57,13 +57,13 @@ stats.setStats = function (injection) { data[today] = newEntry; } - chrome.storage.local.set({ + browser.storage.local.set({ [Setting.INTERNAL_STATISTICS_DATA]: data, }); }; stats.getStats = function () { - chrome.storage.local.get([Setting.INTERNAL_STATISTICS_DATA], function (items) { + browser.storage.local.get([Setting.INTERNAL_STATISTICS_DATA], function (items) { storageManager.statistics = items.internalStatisticsData || {}; }); }; diff --git a/modules/internal/wrappers.js b/modules/internal/wrappers.js index 7ea2b370..5891e86a 100644 --- a/modules/internal/wrappers.js +++ b/modules/internal/wrappers.js @@ -30,7 +30,7 @@ var wrappers = {}; */ wrappers.setBadgeBackgroundColor = function (details) { - if (chrome.action.setBadgeBackgroundColor === undefined) { + if (browser.action.setBadgeBackgroundColor === undefined) { return; } @@ -47,7 +47,7 @@ wrappers.setBadgeBackgroundColor = function (details) { }; wrappers.setBadgeTextColor = function (details) { - if (chrome.action.setBadgeTextColor === undefined) { + if (browser.action.setBadgeTextColor === undefined) { return; } @@ -64,8 +64,8 @@ wrappers.setBadgeTextColor = function (details) { }; wrappers.setBadgeText = function (tabId, text) { - if (chrome.action.setBadgeText !== undefined) { - chrome.action.setBadgeText({ + if (browser.action.setBadgeText !== undefined) { + browser.action.setBadgeText({ 'tabId': tabId, 'text': `${text}` }); @@ -73,9 +73,9 @@ wrappers.setBadgeText = function (tabId, text) { }; wrappers.setIcon = function (details, type) { - if (chrome.action.setIcon) { + if (browser.action.setIcon) { details.path = IconType[details.path][type]; - chrome.action.setIcon(details); + browser.action.setIcon(details); } }; @@ -95,15 +95,15 @@ wrappers.setBadgeColoring = function (tabId, value) { return; } - if (chrome.action.setBadgeTextColor !== undefined) { - chrome.action.setBadgeTextColor({ + if (browser.action.setBadgeTextColor !== undefined) { + browser.action.setBadgeTextColor({ 'tabId': tabId, 'color': textColor }); } - if (chrome.action.setBadgeBackgroundColor !== undefined) { - chrome.action.setBadgeBackgroundColor({ + if (browser.action.setBadgeBackgroundColor !== undefined) { + browser.action.setBadgeBackgroundColor({ 'tabId': tabId, 'color': backgroundColor }); diff --git a/pages/logging/logging.js b/pages/logging/logging.js index 6ac58210..3a5578ca 100644 --- a/pages/logging/logging.js +++ b/pages/logging/logging.js @@ -87,7 +87,7 @@ logging._deleteLogs = function () { 'value': '', }; - chrome.runtime.sendMessage(message); + browser.runtime.sendMessage(message); logging._resfresh(); } }; @@ -98,7 +98,7 @@ logging._getLoggingData = function () { 'topic': 'logs:get' }; - chrome.runtime.sendMessage(message, function (data) { + browser.runtime.sendMessage(message, function (data) { logging._data = data['logs']; resolve(); }); diff --git a/pages/options/options-advanced.js b/pages/options/options-advanced.js index cdb5bd20..0e73de22 100644 --- a/pages/options/options-advanced.js +++ b/pages/options/options-advanced.js @@ -57,11 +57,6 @@ optionsAdvanced.init = function (opt) { let blockMissing, blockGoogleFonts, allowedDomainsGoogleFonts, logging, domainsManipulateDOM, negateHtmlFilterList, changeBadgeColorMissingResources; - if (BrowserType.CHROMIUM) { - document.getElementById('html-filter-div').style.display = 'none'; - document.getElementById('block-google-fonts').style.display = 'none'; - } - document.getElementById('last-mapping-update').textContent += ` ${mappings.lastMappingUpdate}`; blockMissing = options.getOptionElement(Setting.BLOCK_MISSING); diff --git a/pages/options/options-info.js b/pages/options/options-info.js index a7f938b1..98909d84 100644 --- a/pages/options/options-info.js +++ b/pages/options/options-info.js @@ -44,12 +44,6 @@ optionsInfo._renderCdnFrameworkSection = function () { optionsInfo._listOfFrameworks[path[1]] = true; }); - if (!BrowserType.FIREFOX) { - // Non-Firefox browser does not support Google Material Icons and Font Awesome - document.getElementById('unsupported-frameworks').style.display = 'block'; - unsupportedFrameworks = 2; - } - optionsInfo._createList('cdn'); document.getElementById('cdn').classList.add('btns-active'); @@ -92,9 +86,7 @@ optionsInfo._createList = function (type) { } list.forEach((elem) => { - if (!(BrowserType.CHROMIUM && (elem === 'fontawesome' || elem === 'google-material-design-icons'))) { - textArea.value += `${elem}\n`; - } + textArea.value += `${elem}\n`; }); }; diff --git a/pages/options/options-other.js b/pages/options/options-other.js index e8643685..2cb00096 100644 --- a/pages/options/options-other.js +++ b/pages/options/options-other.js @@ -29,7 +29,7 @@ var optionsOther = {}; optionsOther._renderIconSection = function (opt) { let url, bgColor, txtColor, selectedIcon; - if (!chrome.action.setIcon) { + if (!browser.action.setIcon) { document.getElementById('icon-style-div').style.display = 'none'; return; } @@ -43,7 +43,7 @@ optionsOther._renderIconSection = function (opt) { } else if (selectedIcon === 'Light') { document.getElementById('icon-light').checked = true; } - url = chrome.runtime.getURL(`icons/action/${selectedIcon.toLowerCase()}/icon38-default.png`); + url = browser.runtime.getURL(`icons/action/${selectedIcon.toLowerCase()}/icon38-default.png`); document.getElementById(BadgeSetting.HTML_ICON_BADGE_PREVIEW).src = url; document.getElementById(BadgeSettingHTMLFilter.HTML_ICON_BADGE_PREVIEW).src = url; document.getElementById(BadgeSettingMissingResource.HTML_ICON_BADGE_PREVIEW).src = url; @@ -91,7 +91,7 @@ optionsOther._renderStorageSection = function (opt) { optionsOther._setIcon = function (optionValue) { wrappers.setIcon({'path': optionValue}, 'Enabled'); - let url = chrome.runtime.getURL(`icons/action/${optionValue.toLowerCase()}/icon38-default.png`); + let url = browser.runtime.getURL(`icons/action/${optionValue.toLowerCase()}/icon38-default.png`); document.getElementById(BadgeSetting.HTML_ICON_BADGE_PREVIEW).src = url; document.getElementById(BadgeSettingHTMLFilter.HTML_ICON_BADGE_PREVIEW).src = url; document.getElementById(BadgeSettingMissingResource.HTML_ICON_BADGE_PREVIEW).src = url; @@ -106,7 +106,7 @@ optionsOther._preSelectStorage = function (type) { }; optionsOther._onStorageOptionChanged = function ({target}) { - chrome.storage.local.set({ + browser.storage.local.set({ [Setting.STORAGE_TYPE]: target.value, }); if (target.value === 'local') { @@ -220,11 +220,6 @@ optionsOther._getBadgeElement = function (targetId) { }; optionsOther.init = function (opt) { - if (BrowserType.CHROMIUM) { - document.getElementById('div-badged-text-color').style.display = 'none'; - document.getElementById('html-div-badged-text-color').style.display = 'none'; - document.getElementById('missing-div-badged-text-color').style.display = 'none'; - } document.getElementById('icon-default').addEventListener('change', options.onOptionChanged); document.getElementById('icon-grey').addEventListener('change', options.onOptionChanged); diff --git a/pages/options/options.js b/pages/options/options.js index 0bdc530d..479fe7f5 100644 --- a/pages/options/options.js +++ b/pages/options/options.js @@ -42,12 +42,7 @@ options._renderContents = function () { options._renderLocaleNotice(); } - if (!BrowserType.FIREFOX) { - document.getElementById('chromium-banner').style.display = 'block'; - document.getElementById('div-html-badge').style.display = 'none'; - } - - document.getElementById('label-version').textContent = chrome.runtime.getManifest().version; + document.getElementById('label-version').textContent = browser.runtime.getManifest().version; }; options._renderOptionsPanel = function () { @@ -157,12 +152,12 @@ options._determineOptionValues = function () { optionKeys = Object.keys(optionList); if (options._storageType === 'sync') { - chrome.storage.sync.get(optionKeys, function (items) { + browser.storage.sync.get(optionKeys, function (items) { options._optionValues = items; resolve(); }); } else { - chrome.storage.local.get(optionKeys, function (items) { + browser.storage.local.get(optionKeys, function (items) { options._optionValues = items; resolve(); }); @@ -172,7 +167,7 @@ options._determineOptionValues = function () { options._determineLocalOptionValues = function () { return new Promise((resolve) => { - chrome.storage.local.get([Setting.INTERNAL_STATISTICS, Setting.STORAGE_TYPE], function (items) { + browser.storage.local.get([Setting.INTERNAL_STATISTICS, Setting.STORAGE_TYPE], function (items) { options._internalStatistics = items.internalStatistics; options._storageType = items.storageType; resolve(); @@ -187,9 +182,9 @@ options.getOptionElement = function (optionKey) { options._configureLinkPrefetching = function (value) { if (value === false) { // Restore default values of related preference values. - chrome.privacy.network.networkPredictionEnabled.clear({}); + browser.privacy.network.networkPredictionEnabled.clear({}); } else { - chrome.privacy.network.networkPredictionEnabled.set({ + browser.privacy.network.networkPredictionEnabled.set({ 'value': false, }); } @@ -281,24 +276,24 @@ options.onOptionChanged = function ({target}) { break; case Setting.LOGGING: if (optionValue === false) { - chrome.runtime.sendMessage({'topic': 'logs:delete', 'value': ''}); + browser.runtime.sendMessage({'topic': 'logs:delete', 'value': ''}); } break; } if (options._storageType === 'sync' && optionKey !== 'internalStatistics') { - chrome.storage.sync.set({ + browser.storage.sync.set({ [optionKey]: optionValue, }); } else { - chrome.storage.local.set({ + browser.storage.local.set({ [optionKey]: optionValue, }); } }; options._onLinkClick = function (url) { - chrome.tabs.create({ + browser.tabs.create({ 'url': url, 'active': true }); diff --git a/pages/popup/popup.js b/pages/popup/popup.js index 731b2676..dc77240a 100644 --- a/pages/popup/popup.js +++ b/pages/popup/popup.js @@ -50,12 +50,6 @@ popup._renderContents = function () { .then(popup._determineStatusGoogleFonts) .then(popup._determineResourceInjections) .then(popup._renderContextualContents); - - if (BrowserType.CHROMIUM) { - document.getElementById('div-manipulateDOM').hidden = true; - document.getElementById('div-google-fonts').hidden = true; - } - }; popup._renderNonContextualContents = function () { @@ -180,7 +174,7 @@ popup._enableProtection = function () { 'value': popup._domain, }; - chrome.runtime.sendMessage(message, function () { + browser.runtime.sendMessage(message, function () { popup._onToggled(); }); }; @@ -191,7 +185,7 @@ popup._disableProtection = function () { 'value': popup._domain, }; - chrome.runtime.sendMessage(message, function () { + browser.runtime.sendMessage(message, function () { popup._onToggled(); }); }; @@ -202,7 +196,7 @@ popup._enableManipulateDOM = function () { 'value': popup._domain, }; - chrome.runtime.sendMessage(message, function () { + browser.runtime.sendMessage(message, function () { popup._onToggled(); }); }; @@ -213,7 +207,7 @@ popup._disableManipulateDOM = function () { 'value': popup._domain, }; - chrome.runtime.sendMessage(message, function () { + browser.runtime.sendMessage(message, function () { popup._onToggled(); }); }; @@ -224,7 +218,7 @@ popup._enableGoogleFonts = function () { 'value': popup._domain, }; - chrome.runtime.sendMessage(message, function () { + browser.runtime.sendMessage(message, function () { popup._onToggled(); }); }; @@ -235,7 +229,7 @@ popup._disableGoogleFonts = function () { 'value': popup._domain, }; - chrome.runtime.sendMessage(message, function () { + browser.runtime.sendMessage(message, function () { popup._onToggled(); }); }; @@ -251,7 +245,7 @@ popup._determineDomainAllowlistStatus = function () { return; } - chrome.runtime.sendMessage(message, function (response) { + browser.runtime.sendMessage(message, function (response) { popup._domainIsAllowlisted = response.value; resolve(); }); @@ -265,7 +259,7 @@ popup._determineStatusManipulateDOM = function () { 'value': popup._domain, }; - chrome.runtime.sendMessage(message, function (response) { + browser.runtime.sendMessage(message, function (response) { popup._domainManipulateDOM = response.value; resolve(); }); @@ -279,7 +273,7 @@ popup._determineStatusGoogleFonts = function () { 'value': popup._domain, }; - chrome.runtime.sendMessage(message, function (response) { + browser.runtime.sendMessage(message, function (response) { popup._domainGoogleFonts = response.value; resolve(); }); @@ -293,7 +287,7 @@ popup._determineResourceInjections = function () { 'value': popup._targetTab.id, }; - chrome.runtime.sendMessage(message, function (response) { + browser.runtime.sendMessage(message, function (response) { let groupedInjections = popup._groupResourceInjections(response.value); popup._resourceInjections = groupedInjections; @@ -318,7 +312,7 @@ popup._getData = function () { 'topic': 'popup:get-data' }; - chrome.runtime.sendMessage(message, function (items) { + browser.runtime.sendMessage(message, function (items) { popup._amountInjected = items.data.amountInjected; popup._statisticsStatus = items.data.internalStatistics; popup.negateHtmlFilterList = items.data.negateHtmlFilterList; @@ -481,7 +475,7 @@ popup._filterDuplicates = function (array, key) { popup._onDocumentLoaded = function () { let manifest, language; - manifest = chrome.runtime.getManifest(); + manifest = browser.runtime.getManifest(); language = navigator.language; popup._name = manifest.name; @@ -495,7 +489,7 @@ popup._onButtonClick = function (ev) { let dataLink = popupLinkList[ev.target.getAttribute('data-link')]; if (dataLink) { if (ev.button === 0 || ev.button === 1) { - chrome.tabs.create({ + browser.tabs.create({ 'url': dataLink, 'active': ev.button === 0, }); @@ -508,25 +502,25 @@ popup._onButtonClick = function (ev) { }; popup._onOptionsButtonClicked = function () { - chrome.runtime.openOptionsPage(); + browser.runtime.openOptionsPage(); return window.close(); }; popup._onToggled = function () { let bypassCache = typeof browser === 'undefined'; - chrome.tabs.reload(popup._targetTab.id, {bypassCache}); + browser.tabs.reload(popup._targetTab.id, {bypassCache}); setTimeout(function () { popup._close(); }, 200); }; popup._close = function () { - chrome.runtime.getPlatformInfo(function (information) { - if (information.os === chrome.runtime.PlatformOs.ANDROID) { - chrome.tabs.getCurrent(function (activeTab) { + browser.runtime.getPlatformInfo(function (information) { + if (information.os === browser.runtime.PlatformOs.ANDROID) { + browser.tabs.getCurrent(function (activeTab) { if (activeTab) { - chrome.tabs.remove(activeTab.id); + browser.tabs.remove(activeTab.id); } else { window.close(); } diff --git a/pages/statistics/statistics.js b/pages/statistics/statistics.js index 02003218..e61cb3af 100644 --- a/pages/statistics/statistics.js +++ b/pages/statistics/statistics.js @@ -30,7 +30,7 @@ statistics._onDocumentLoaded = function () { helpers.insertI18nContentIntoDocument(document); helpers.insertI18nTitlesIntoDocument(document); - chrome.storage.local.get([Setting.DEFAULT_RANGE_STATISTIC], function (items) { + browser.storage.local.get([Setting.DEFAULT_RANGE_STATISTIC], function (items) { statistics._dateUnit = items.defaultRangeStatistic || 'week'; document.getElementById('date-range').value = statistics._dateUnit; @@ -171,7 +171,7 @@ statistics._determineInjections = function () { statistics._getStatistics = function () { return new Promise((resolve) => { - chrome.storage.local.get([Setting.INTERNAL_STATISTICS_DATA], function (items) { + browser.storage.local.get([Setting.INTERNAL_STATISTICS_DATA], function (items) { statistics._data = items.internalStatisticsData; resolve(); }); @@ -248,17 +248,17 @@ statistics._handlerDateRange = function ({target}) { }; statistics._deleteStatistic = function () { - let text = chrome.i18n.getMessage('dialogConfirmDeleteStatistics'); + let text = browser.i18n.getMessage('dialogConfirmDeleteStatistics'); if (confirm(text)) { - chrome.storage.local.set({ + browser.storage.local.set({ [Setting.INTERNAL_STATISTICS_DATA]: {} }); - chrome.runtime.sendMessage({'topic': 'statistic:delete'}); + browser.runtime.sendMessage({'topic': 'statistic:delete'}); } }; statistics._saveDefaultRange = function (value) { - chrome.storage.local.set({ + browser.storage.local.set({ [Setting.DEFAULT_RANGE_STATISTIC]: value }); }; diff --git a/pages/welcome/welcome.js b/pages/welcome/welcome.js index adbf2c07..2147b3f3 100644 --- a/pages/welcome/welcome.js +++ b/pages/welcome/welcome.js @@ -31,10 +31,7 @@ welcome._onDocumentLoaded = function () { helpers.insertI18nContentIntoDocument(document); helpers.insertI18nTitlesIntoDocument(document); - if (!BrowserType.FIREFOX) { - document.getElementById('chromium-banner').style.display = 'block'; - } - document.getElementById('open-settings').addEventListener('mouseup', function () { chrome.runtime.openOptionsPage(); }); + document.getElementById('open-settings').addEventListener('mouseup', function () { browser.runtime.openOptionsPage(); }); }; document.addEventListener('DOMContentLoaded', welcome._onDocumentLoaded);