LocalCDN-Firefox-Chrome-Brave/core/file-guard.js

63 lines
1.3 KiB
JavaScript
Raw Normal View History

2020-02-27 13:45:29 +01:00
/**
* File Guard
2020-06-30 18:41:58 +02:00
* Belongs to LocalCDN (since 2020-02-26)
* (Origin: Decentraleyes)
2020-02-27 13:45:29 +01:00
*
* @see https://git.synz.io/Synzvato/decentraleyes/merge_requests/258
*
* @author Thomas Rientjes
* @since 2018-05-17
* @license MPL 2.0
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*/
'use strict';
2021-02-17 07:01:08 +01:00
2020-02-27 13:45:29 +01:00
/**
* File Guard
*/
var fileGuard = {};
2021-02-17 07:01:08 +01:00
2020-02-27 13:45:29 +01:00
/**
* Private Methods
*/
fileGuard._startListening = function () {
let randomHexString = helpers.generateRandomHexString(24);
fileGuard.secret = `?_=${randomHexString}`;
2023-02-09 06:10:56 +01:00
browser.webRequest.onBeforeRequest.addListener(
2020-02-27 13:45:29 +01:00
fileGuard._verifyRequest,
{'urls': [fileGuard.path + Address.ANY_PATH]},
[WebRequest.BLOCKING]
);
};
fileGuard._verifyRequest = function (requestDetails) {
2023-02-09 06:10:56 +01:00
let redirectUrl = browser.runtime.getURL(Address.ROOT_PATH);
2020-02-27 13:45:29 +01:00
if (!requestDetails.url.endsWith(fileGuard.secret)) {
return {redirectUrl};
}
};
2021-02-17 07:01:08 +01:00
2020-02-27 13:45:29 +01:00
/**
* Initializations
*/
2023-02-09 06:10:56 +01:00
fileGuard.path = browser.runtime.getURL(Address.RESOURCE_PATH);
2020-02-27 13:45:29 +01:00
fileGuard.secret = '';
if (fileGuard.path.startsWith(Address.CHROME_EXTENSION)) {
fileGuard._startListening();
}