From 38d0d94a219ad7043ace435b465a9b912e4e3c98 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Tue, 3 Jan 2017 15:03:44 +0200 Subject: Replace old firefox code with chrome web extension APIs --- firefox/data/free_haaretz.css | 6 ----- firefox/doc/main.md | 0 firefox/free_haaretz.js | 61 +++++++++++++++++++++++++++++++++++++++++++ firefox/lib/main.js | 33 ----------------------- firefox/manifest.json | 22 ++++++++++++++++ firefox/package.json | 13 --------- firefox/test/test-main.js | 12 --------- 7 files changed, 83 insertions(+), 64 deletions(-) delete mode 100644 firefox/data/free_haaretz.css delete mode 100644 firefox/doc/main.md create mode 100644 firefox/free_haaretz.js delete mode 100644 firefox/lib/main.js create mode 100644 firefox/manifest.json delete mode 100644 firefox/package.json delete mode 100644 firefox/test/test-main.js diff --git a/firefox/data/free_haaretz.css b/firefox/data/free_haaretz.css deleted file mode 100644 index a2ffe9d..0000000 --- a/firefox/data/free_haaretz.css +++ /dev/null @@ -1,6 +0,0 @@ -section#header-reading-list { - display: none; -} -section#header-user-menu { - display: none; -} diff --git a/firefox/doc/main.md b/firefox/doc/main.md deleted file mode 100644 index e69de29..0000000 diff --git a/firefox/free_haaretz.js b/firefox/free_haaretz.js new file mode 100644 index 0000000..a688009 --- /dev/null +++ b/firefox/free_haaretz.js @@ -0,0 +1,61 @@ +browser.webRequest.onBeforeRequest.addListener( + function (details) { + var url_parts = details.url.split('?'); + if (url_parts[1]) { + return { + redirectUrl: url_parts[0] + } + } + }, + { + urls: [ + 'http://*.haaretz.co.il/*', + 'http://*.haaretz.com/*', + ] + }, + [ + 'blocking', + ] +); + +var addresses = [ + 'http://hrz.haaretz.co.il/bots.js', + 'http://www.haaretz.co.il/htz/js/bots.js', + 'http://www.haaretz.co.il/htz/js/resp/body_scripts/internal/plugins/adblock.js', + 'http://www.haaretz.co.il/htz/js/resp/header_scripts/internal/util/z_adblockutil.js' +]; + + +browser.webRequest.onBeforeSendHeaders.addListener( + function (details) { + for (var i = 0; i < details.requestHeaders.length; ++i) { + if (details.requestHeaders[i].name === 'User-Agent') { + details.requestHeaders[i].value = 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)'; + break; + } + } + + if (addresses.indexOf(details.url) > -1) { + return { + requestHeaders: details.requestHeaders, + url: 'http://www.haaretz.co.il/htz/js/botzzzz.js' + } + } + + return { + requestHeaders: details.requestHeaders + }; + }, + { + urls: [ + 'http://*.haaretz.co.il/*', + 'http://*.haaretz.com/*', + ] + }, + [ + 'blocking', + 'requestHeaders' + ] +); + + diff --git a/firefox/lib/main.js b/firefox/lib/main.js deleted file mode 100644 index cd47a05..0000000 --- a/firefox/lib/main.js +++ /dev/null @@ -1,33 +0,0 @@ -var {Cc, Ci, Cr} = require('chrome'); -var data = require("sdk/self").data; -var pageMod = require("sdk/page-mod"); - -pageMod.PageMod({ - include: "*.haaretz.co.il", - contentStyleFile: data.url('free_haaretz.css') -}); - - -var observer = { - observe: function(subject, topic, data) { - if (topic == 'http-on-modify-request') { - var channel = subject.QueryInterface(Ci.nsIHttpChannel); - if (/haaretz\.co(m|\.il)/.test(channel.originalURI.host)) { - channel.setRequestHeader('User-Agent', 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)', false); - channel.originalURI.path = channel.originalURI.path.split('?')[0]; - } - if (/\/htz\/js\/bots\.js/.test(channel.originalURI.path)) { - subject.cancel(Cr.NS_BINDING_ABORTED); - } - if (/\/htz\/js\/resp\/header_scripts\/internal\/util\/z_adblockutil\.js/.test(channel.originalURI.path)) { - subject.cancel(Cr.NS_BINDING_ABORTED); - } - if (/\/htz\/js\/resp\/body_scripts\/internal\/plugins\/adblock\.js/.test(channel.originalURI.path)) { - subject.cancel(Cr.NS_BINDING_ABORTED); - } - } - } -}; - -var observerService = Cc['@mozilla.org/observer-service;1'].getService(Ci.nsIObserverService); -observerService.addObserver(observer, 'http-on-modify-request', false); diff --git a/firefox/manifest.json b/firefox/manifest.json new file mode 100644 index 0000000..6af4816 --- /dev/null +++ b/firefox/manifest.json @@ -0,0 +1,22 @@ +{ + "name": "FreeHaaretz", + "version": "0.7.1", + "manifest_version": 2, + "description": "A nefarious extension that easily bypasses the Haaretz paywall", + "homepage_url": "http://yuvadm.github.io/free-haaretz", + "background": { + "scripts": ["free_haaretz.js"], + "persistent": true + }, + "content_scripts": [{ + "matches": ["*://*.haaretz.co.il/*"], + "css": ["free_haaretz.css"] + }], + "permissions": [ + "contentSettings", + "webRequest", + "webRequestBlocking", + "http://*.haaretz.co.il/", + "http://*.haaretz.com/" + ] +} diff --git a/firefox/package.json b/firefox/package.json deleted file mode 100644 index dc773f9..0000000 --- a/firefox/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "free-haaretz", - "title": "Free Haaretz", - "description": "A nefarious extension that easily bypasses the Haaretz paywall", - "author": "Yuval Adam", - "license": "Public Domain", - "version": "0.7.1", - "main": "lib/main", - "engines": { - "firefox": ">=38.0a1", - "fennec": ">=38.0a1" - } -} diff --git a/firefox/test/test-main.js b/firefox/test/test-main.js deleted file mode 100644 index 147f98a..0000000 --- a/firefox/test/test-main.js +++ /dev/null @@ -1,12 +0,0 @@ -var main = require("./main"); - -exports["test main"] = function(assert) { - assert.pass("Unit test running!"); -}; - -exports["test main async"] = function(assert, done) { - assert.pass("async Unit test running!"); - done(); -}; - -require("sdk/test").run(exports); -- cgit v1.3.1