From bb5def19d89789aa26f0a2a143d55da11e4e8225 Mon Sep 17 00:00:00 2001 From: Rodrigo Orem Date: Sat, 23 Sep 2017 22:36:15 -0300 Subject: [PATCH] Atualiza paywall do Financial Times --- src/background.js | 58 +++++++++++++++++++++++++++++++---------------- src/content.js | 8 +++++++ 2 files changed, 47 insertions(+), 19 deletions(-) diff --git a/src/background.js b/src/background.js index 5901925..8f67af6 100644 --- a/src/background.js +++ b/src/background.js @@ -73,7 +73,7 @@ chrome.webRequest.onBeforeRequest.addListener( ["blocking"] ); -// Cookie injection +// Cookie blocking chrome.webRequest.onBeforeRequest.addListener( function(details) { chrome.cookies.remove({ @@ -90,25 +90,27 @@ chrome.webRequest.onBeforeRequest.addListener( } ); +chrome.webRequest.onHeadersReceived.addListener( + function (details) { + details.responseHeaders.forEach(function(responseHeader) { + if (responseHeader.name.toLowerCase() == "set-cookie") { + responseHeader.value = ''; + } + }); + return { + responseHeaders: details.responseHeaders + }; + }, + { + urls: [ + // Financial Times + "*://*.ft.com/*" + ] + }, + ['blocking','responseHeaders'] +); + // 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']; @@ -132,3 +134,21 @@ chrome.webRequest.onBeforeSendHeaders.addListener( }, ["blocking", "requestHeaders"] ); + +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; +} diff --git a/src/content.js b/src/content.js index dd943b3..0070fbc 100644 --- a/src/content.js +++ b/src/content.js @@ -23,6 +23,14 @@ else if (/folha.uol.com.br/.test(document.location.host)) { setTimeout(showText, 100);'; } +else if (/ft.com/.text(document.location.host)) { + code = 'document.cookie = "";\ + localStorage.clear();\ + sessionStorage.clear();\ + indexedDB.deleteDatabase("next-flags");\ + indexedDB.deleteDatabase("next:ads");'; +} + if (code !== null) { var script = document.createElement('script');