burlesco/src/background.js

209 lines
4.9 KiB
JavaScript
Raw Normal View History

// Script blocking
2016-04-24 21:06:35 -07:00
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {cancel: true};
},
{
urls: [
// O Estado de S. Paulo
"*://*.estadao.com.br/paywall/*",
// Folha de S.Paulo
"*://paywall.folha.uol.com.br/*",
"*://static.folha.uol.com.br/paywall/*",
// O Globo
"*://ogjs.infoglobo.com.br/*/js/controla-acesso-aux.js",
// Gazeta do Povo
"*://*.gazetadopovo.com.br/loader/v1/logan_full_toolbar.js*",
// Correio Popular
"*://correio.rac.com.br/includes/js/novo_cp/fivewall.js*",
// O Estado do Maranhão
"*://dashboard.tinypass.com/xbuilder/experience/load*",
"http://assets.imirante.com/2.0/oestadoma/js/jquery.login.min.js",
// Jornal de Novo Hamburgo
2017-10-23 15:34:28 -07:00
"*://*.jornalnh.com.br/includes/js/paywall.js*",
2017-05-15 15:57:19 -07:00
"*://blockv2.fivewall.com.br/*",
// Diário de Santa Maria
2017-10-19 08:25:08 -07:00
"*://www.rbsonline.com.br/cdn/scripts/SLoader.js",
// New York Times
2017-10-19 08:34:47 -07:00
"*://*.nyt.com/js/mtr.js",
// Washington Post
"*://*.washingtonpost.com/*pwapi/*.js*",
2017-10-23 13:16:13 -07:00
"*://*.washingtonpost.com/*drawbridge/drawbridge.js?_*",
2017-10-24 08:16:57 -07:00
// O Globo, Exame, Super Interessante e Veja
2017-10-23 13:16:13 -07:00
"*://cdn.tinypass.com/api/tinypass.min.js"
],
types: ["script"]
},
["blocking"]
2016-04-24 21:06:35 -07:00
);
// XHR blocking
2017-08-28 17:02:20 -07:00
WHITELIST = [
'http://paywall.folha.uol.com.br/status.php'
];
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
2017-08-28 17:02:20 -07:00
if (WHITELIST.indexOf(details.url) !== -1)
return {cancel: false};
else
return {cancel: true};
},
{
urls: [
// Folha de S.Paulo
"*://paywall.folha.uol.com.br/*",
"*://static.folha.uol.com.br/paywall/*",
// Diário Catarinense
"http://dc.clicrbs.com.br/jornal-2015/jsp/paywall.jspx*",
// Jornal de Santa Catarina
"http://jornaldesantacatarina.clicrbs.com.br/jornal/jsp/paywall*",
2017-10-23 13:16:13 -07:00
// Tinypass (O Globo, Exame e outros)
"*://cdn.tinypass.com/api/tinypass.min.js"
],
types: ["xmlhttprequest"]
},
["blocking"]
);
2016-12-20 00:25:30 -08:00
2017-09-23 18:36:15 -07:00
// Cookie blocking
2016-12-20 00:25:30 -08:00
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
chrome.cookies.remove({
'url': 'http://jota.info/*',
'name': 'articles'
});
},
{
urls: [
// JOTA
"http://jota.info/*"
],
types: ["main_frame"]
}
);
2017-03-17 21:17:41 -07:00
2017-10-01 15:10:20 -07:00
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
console.log(details);
removeCookies('https://gauchazh.clicrbs.com.br');
removeCookies('https://www.ft.com');
},
{
urls: [
// Financial Times
"*://*.ft.com/*",
// Zero Hora
"*://gauchazh.clicrbs.com.br/*"
],
types: ["main_frame"]
}
);
function removeCookies(url) {
chrome.cookies.getAll({}, function(cookies) {
cookies.forEach(function(cookie, index, array) {
chrome.cookies.remove({
'url': url,
'name': cookie.name
});
});
});
}
2017-09-23 18:36:15 -07:00
chrome.webRequest.onHeadersReceived.addListener(
2017-10-01 15:10:20 -07:00
// Block cookies from being set
2017-09-23 18:36:15 -07:00
function (details) {
details.responseHeaders.forEach(function(responseHeader) {
if (responseHeader.name.toLowerCase() == "set-cookie") {
responseHeader.value = '';
}
});
return {
responseHeaders: details.responseHeaders
};
},
{
urls: [
// Financial Times
2017-10-01 15:10:20 -07:00
"*://*.ft.com/*",
// Zero Hora
2017-10-19 14:37:49 -07:00
"*://*.clicrbs.com.br/*"
],
types: ['xmlhttprequest']
2017-09-23 18:36:15 -07:00
},
2017-10-19 13:25:52 -07:00
['blocking', 'responseHeaders']
2017-09-23 18:36:15 -07:00
);
2017-03-17 21:17:41 -07:00
2017-10-19 13:25:52 -07:00
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
injectHeader('Cookie', '', details.requestHeaders);
return {requestHeaders: details.requestHeaders};
},
{
urls: [
// Jornal Nexo
2017-10-19 14:37:49 -07:00
'*://api.nexojornal.com.br/*',
// Zero Hora
"*://api.clicrbs.com.br/*"
],
types: ['xmlhttprequest']
2017-10-19 13:25:52 -07:00
},
['blocking', 'requestHeaders']
);
2017-10-01 15:10:20 -07:00
2017-09-23 18:36:15 -07:00
// Referer injection
2017-03-17 21:17:41 -07:00
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
2017-10-19 13:25:52 -07:00
injectHeader(
'Referer',
'https://www.google.com.br/',
details.requestHeaders
);
return {requestHeaders: details.requestHeaders};
},
{
urls: [
// Financial Times
"*://www.ft.com/*"
],
types: ["xmlhttprequest", "main_frame"]
},
["blocking", "requestHeaders"]
2017-03-17 21:17:41 -07:00
);
2017-09-23 18:36:15 -07:00
2017-10-19 13:25:52 -07:00
function injectHeader(name, value, requestHeaders) {
2017-09-23 18:36:15 -07:00
/**
* @param {string} name - Name of the header to be inserted
* @param {string} value - Value of the header to be inserted
* @param {Object[]} requestHeaders - Provided by webRequest
* listeners in callback arg `details.requestHeader`
* @param {string} requestHeaders[].name
* @param {string} requestHeaders[].value
*/
2017-10-19 13:25:52 -07:00
var headerIndex = requestHeaders.findIndex(
x => x.name.toLowerCase() == name.toLowerCase());
2017-09-23 18:36:15 -07:00
var newHeader = {name: name, value: value};
if (headerIndex == -1)
requestHeaders.push(newHeader);
else
requestHeaders[headerIndex] = newHeader;
}