From 1be3c1cf6d1257756d4b8370d5d62ae66764824d Mon Sep 17 00:00:00 2001 From: nobody Date: Sun, 10 Jul 2022 06:55:41 +0200 Subject: [PATCH] Custom block screen (#1050) --- core/interceptor.js | 6 ++ core/request-analyzer.js | 5 ++ pages/updates/updates.html | 4 +- resources/blocked/favicon.ico | Bin 0 -> 22382 bytes resources/blocked/index.html | 15 +++++ resources/blocked/logo.svg | 105 ++++++++++++++++++++++++++++++++++ resources/blocked/style.css | 27 +++++++++ 7 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 resources/blocked/favicon.ico create mode 100644 resources/blocked/index.html create mode 100644 resources/blocked/logo.svg create mode 100644 resources/blocked/style.css diff --git a/core/interceptor.js b/core/interceptor.js index cca3738e..2ee1407c 100644 --- a/core/interceptor.js +++ b/core/interceptor.js @@ -34,6 +34,12 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) { let validCandidate, targetDetails, targetDomain, isGoogleFont, isGoogleMaterialIcons, initiatorDomain, isListed; targetDetails = requestAnalyzer.getLocalTarget(requestDetails, tab.url); + if (targetDetails['result'] === 'blocked') { + return { + 'redirectUrl': chrome.runtime.getURL('resources/blocked/index.html') + }; + } + stateManager.requests[requestDetails.requestId] = { tabIdentifier, targetDetails }; diff --git a/core/request-analyzer.js b/core/request-analyzer.js index bc2c96d7..bf85910c 100644 --- a/core/request-analyzer.js +++ b/core/request-analyzer.js @@ -226,6 +226,11 @@ requestAnalyzer._findLocalTarget = function (resourceMappings, basePath, channel console.warn(`${LogString.PREFIX} ${LogString.MISSING_RESOURCE} ${channelHost}${channelPath}`); log.append(initiator, channelHost + channelPath, '-', true); } + + if (Object.keys(mappings.cdn).includes(channelHost)) { + return {'result': 'blocked'}; + } + return { 'result': false, }; diff --git a/pages/updates/updates.html b/pages/updates/updates.html index fefecd7d..c05fae64 100644 --- a/pages/updates/updates.html +++ b/pages/updates/updates.html @@ -25,9 +25,9 @@

New in LocalCDN:

-

+

Improved

diff --git a/resources/blocked/favicon.ico b/resources/blocked/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7511c74e3f7608ee299cb0e6add3264435084b30 GIT binary patch literal 22382 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 L+dVca;?Ms9xjdMF literal 0 HcmV?d00001 diff --git a/resources/blocked/index.html b/resources/blocked/index.html new file mode 100644 index 00000000..21d9169b --- /dev/null +++ b/resources/blocked/index.html @@ -0,0 +1,15 @@ + + + + Blocked by LocalCDN + + + + + + + + +

This request was blocked because the resource is not included in LocalCDN.

+ + diff --git a/resources/blocked/logo.svg b/resources/blocked/logo.svg new file mode 100644 index 00000000..caaab8d1 --- /dev/null +++ b/resources/blocked/logo.svg @@ -0,0 +1,105 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/blocked/style.css b/resources/blocked/style.css new file mode 100644 index 00000000..ed88ad4f --- /dev/null +++ b/resources/blocked/style.css @@ -0,0 +1,27 @@ +html { + background-color: #eee; + box-sizing: border-box; +} + +body { + font-size: 1.4em; + text-align: center; + color: #222; + font-family: Helvetica, sans-serif; +} + +.logo { + display: block; + height: 7em; + margin: 3em auto; +} + +@media (prefers-color-scheme: dark) { + html { + background-color: #404040; + } + + body { + color: #aeaeae !important; + } +}