135 lines
3.3 KiB
JavaScript
135 lines
3.3 KiB
JavaScript
// Script blocking
|
|
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",
|
|
"*://cdn.tinypass.com/api/tinypass.min.js",
|
|
|
|
// Gazeta do Povo
|
|
"*://*.gazetadopovo.com.br/loader/v1/logan_full_toolbar.js*",
|
|
|
|
// Zero Hora
|
|
"*://zh.clicrbs.com.br/it/js/paid-content-config.js*",
|
|
"*://www.rbsonline.com.br/cdn/scripts/paywall.min.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
|
|
"*://www.jornalnh.com.br/includes/js/paywall.js*",
|
|
"*://blockv2.fivewall.com.br/*",
|
|
|
|
// Diário de Santa Maria
|
|
"*://www.rbsonline.com.br/cdn/scripts/SLoader.js"
|
|
],
|
|
types: ["script"]
|
|
},
|
|
["blocking"]
|
|
);
|
|
|
|
// XHR blocking
|
|
WHITELIST = [
|
|
'http://paywall.folha.uol.com.br/status.php'
|
|
];
|
|
chrome.webRequest.onBeforeRequest.addListener(
|
|
function(details) {
|
|
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*",
|
|
|
|
// O Globo
|
|
"*://cdn.tinypass.com/api/tinypass.min.js"
|
|
],
|
|
types: ["xmlhttprequest"]
|
|
},
|
|
["blocking"]
|
|
);
|
|
|
|
// Cookie injection
|
|
chrome.webRequest.onBeforeRequest.addListener(
|
|
function(details) {
|
|
chrome.cookies.remove({
|
|
'url': 'http://jota.info/*',
|
|
'name': 'articles'
|
|
});
|
|
},
|
|
{
|
|
urls: [
|
|
// JOTA
|
|
"http://jota.info/*"
|
|
],
|
|
types: ["main_frame"]
|
|
}
|
|
);
|
|
|
|
// Referer injection
|
|
function insertHeader(name, value, requestHeaders) {
|
|
/**
|
|
* @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
|
|
*/
|
|
var headerIndex = requestHeaders.findIndex(x => x.name == name);
|
|
|
|
var newHeader = {name: name, value: value};
|
|
if (headerIndex == -1)
|
|
requestHeaders.push(newHeader);
|
|
else
|
|
requestHeaders[headerIndex] = newHeader;
|
|
}
|
|
|
|
chrome.webRequest.onBeforeSendHeaders.addListener(
|
|
function(details) {
|
|
var headers = ['Referer'];
|
|
|
|
headers.forEach(header =>
|
|
insertHeader(
|
|
header,
|
|
'https://www.google.com.br/',
|
|
details.requestHeaders
|
|
)
|
|
);
|
|
|
|
return {requestHeaders: details.requestHeaders};
|
|
},
|
|
{
|
|
urls: [
|
|
// Financial Times
|
|
"*://www.ft.com/*"
|
|
],
|
|
types: ["xmlhttprequest", "main_frame"]
|
|
},
|
|
["blocking", "requestHeaders"]
|
|
);
|