mirror of
https://gitlab.com/KevinRoebert/ClearUrls
synced 2025-12-16 06:05:37 +07:00
Added new ETag filtering
This commit is contained in:
10
CHANGELOG.md
10
CHANGELOG.md
@@ -15,6 +15,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Require Firefox >= 55
|
- Require Firefox >= 55
|
||||||
- Require Chrome >= 37
|
- Require Chrome >= 37
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- ETag filtering now generates random values and does no longer delete the header. As a result, filtering also works under Chrome-based browsers
|
||||||
|
- ETag filtering no longer increases the counter
|
||||||
|
- ETag filtering is now disabled by default
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- [524](https://gitlab.com/KevinRoebert/ClearUrls/-/issues/524)
|
||||||
|
- [67](https://github.com/ClearURLs/Addon/issues/67)
|
||||||
|
- [138](https://github.com/ClearURLs/Addon/issues/138)
|
||||||
|
|
||||||
## [1.24.1] - 2022-03-25
|
## [1.24.1] - 2022-03-25
|
||||||
|
|
||||||
### Compatibility note
|
### Compatibility note
|
||||||
|
|||||||
@@ -24,19 +24,26 @@
|
|||||||
function eTagFilter(requestDetails) {
|
function eTagFilter(requestDetails) {
|
||||||
if(!requestDetails.responseHeaders || !storage.eTagFiltering
|
if(!requestDetails.responseHeaders || !storage.eTagFiltering
|
||||||
|| storage.localHostsSkipping && checkLocalURL(new URL(requestDetails.url))) return {};
|
|| storage.localHostsSkipping && checkLocalURL(new URL(requestDetails.url))) return {};
|
||||||
const responseHeaders = requestDetails.responseHeaders;
|
for(let i=0; i < requestDetails.responseHeaders.length; i++) {
|
||||||
|
const header = requestDetails.responseHeaders[i];
|
||||||
|
|
||||||
const filteredHeaders = responseHeaders.filter(header => {
|
if(header.name.toString().toLowerCase() !== "etag") {
|
||||||
return header.name.toLowerCase() !== "etag";
|
continue;
|
||||||
});
|
}
|
||||||
|
|
||||||
|
// insert dummy etag
|
||||||
|
requestDetails.responseHeaders[i].value = generateDummyEtag();
|
||||||
|
|
||||||
if(filteredHeaders.length < responseHeaders.length) {
|
|
||||||
pushToLog(requestDetails.url, requestDetails.url, translate("eTag_filtering_log"));
|
pushToLog(requestDetails.url, requestDetails.url, translate("eTag_filtering_log"));
|
||||||
increaseBadged(false, requestDetails);
|
|
||||||
increaseGlobalURLCounter(1);
|
|
||||||
|
|
||||||
return {responseHeaders: filteredHeaders};
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return {responseHeaders: requestDetails.responseHeaders};
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateDummyEtag() {
|
||||||
|
return Math.random().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
browser.webRequest.onHeadersReceived.addListener(
|
browser.webRequest.onHeadersReceived.addListener(
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ function initSettings() {
|
|||||||
storage.logLimit = 100;
|
storage.logLimit = 100;
|
||||||
storage.domainBlocking = true;
|
storage.domainBlocking = true;
|
||||||
storage.pingBlocking = true;
|
storage.pingBlocking = true;
|
||||||
storage.eTagFiltering = true;
|
storage.eTagFiltering = false;
|
||||||
storage.watchDogErrorCount = 0;
|
storage.watchDogErrorCount = 0;
|
||||||
|
|
||||||
if (getBrowser() === "Firefox") {
|
if (getBrowser() === "Firefox") {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "ClearURLs",
|
"name": "ClearURLs",
|
||||||
"version": "1.24.1",
|
"version": "1.25.0",
|
||||||
"author": "Kevin Roebert",
|
"author": "Kevin Roebert",
|
||||||
"description": "__MSG_extension_description__",
|
"description": "__MSG_extension_description__",
|
||||||
"homepage_url": "https://docs.clearurls.xyz",
|
"homepage_url": "https://docs.clearurls.xyz",
|
||||||
|
|||||||
Reference in New Issue
Block a user