Upload files to 'tool/block_cloudflare_requests_pm/src'
This commit is contained in:
parent
3284925b1c
commit
b2f934d6b5
|
@ -0,0 +1,35 @@
|
||||||
|
const Cc = Components.classes,
|
||||||
|
Ci = Components.interfaces;
|
||||||
|
function ignoreCF(h) {
|
||||||
|
return /(cloudflare(\-(dns|free|ipfs|quic)|(support|warp)))\.com$/.test(h) ? true : false;
|
||||||
|
}
|
||||||
|
let knownCF = [];
|
||||||
|
let CFBlocking = {
|
||||||
|
observe: function (subject, topic, data) {
|
||||||
|
let httpChl = subject.QueryInterface(Ci.nsIHttpChannel),
|
||||||
|
reqURL = subject.URI.spec;
|
||||||
|
if (reqURL.indexOf('http') === 0 && reqURL.indexOf('.archive.org/') === -1) {
|
||||||
|
let hostN = (new URL(reqURL)).hostname;
|
||||||
|
if (topic == 'http-on-modify-request') {
|
||||||
|
if (knownCF.includes(hostN)) {
|
||||||
|
httpChl.cancel(Cr.NS_BINDING_ABORTED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (topic == 'http-on-examine-response') {
|
||||||
|
let rayid = '';
|
||||||
|
try {
|
||||||
|
rayid = httpChl.getResponseHeader('cf-ray');
|
||||||
|
} catch (e) {}
|
||||||
|
if (rayid.length > 3) {
|
||||||
|
if (!knownCF.includes(hostN) && !ignoreCF(hostN)) {
|
||||||
|
knownCF.push(hostN);
|
||||||
|
}
|
||||||
|
httpChl.cancel(Cr.NS_BINDING_ABORTED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let OBS = Cc['@mozilla.org/observer-service;1'].getService(Ci.nsIObserverService);
|
||||||
|
OBS.addObserver(CFBlocking, 'http-on-modify-request', false);
|
||||||
|
OBS.addObserver(CFBlocking, 'http-on-examine-response', false);
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||||
|
<script type="application/x-javascript" src="chrome://cfblocker/content/header.js"></script>
|
||||||
|
</overlay>
|
Loading…
Reference in New Issue