diff options
| author | Yuval Adam <_@yuv.al> | 2018-07-06 10:56:29 +0300 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2018-07-06 10:56:29 +0300 |
| commit | c0c01001e3089b031c52fd4ccfd41a13c1db5f4e (patch) | |
| tree | 98e8874c9b380d088a4b70251c8972831a413e2c | |
| parent | 8cdc8f259bc6ae9a75bd8919fdf2e34ca5eac97f (diff) | |
Travis WIPtravis
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | src/free_haaretz.css | 6 | ||||
| -rw-r--r-- | src/free_haaretz.js | 46 | ||||
| -rw-r--r-- | src/manifest.json | 22 | ||||
| -rw-r--r-- | test/free_haaretz.js (renamed from test/test.js) | 10 |
5 files changed, 84 insertions, 2 deletions
diff --git a/package.json b/package.json index e742eba..aef9240 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "mocha": "^3.4.2" }, "scripts": { - "test": "LIGHTHOUSE_CHROMIUM_PATH=/usr/bin/chromium mocha" + "test": "LIGHTHOUSE_CHROMIUM_PATH=/usr/bin/chromium mocha --no-timeouts" }, "repository": { "type": "git", diff --git a/src/free_haaretz.css b/src/free_haaretz.css new file mode 100644 index 0000000..2329aa5 --- /dev/null +++ b/src/free_haaretz.css @@ -0,0 +1,6 @@ +section#header-reading-list { + display: none; +} +section#header-user-menu { + display: none; +}
\ No newline at end of file diff --git a/src/free_haaretz.js b/src/free_haaretz.js new file mode 100644 index 0000000..48575df --- /dev/null +++ b/src/free_haaretz.js @@ -0,0 +1,46 @@ +chrome.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', + ] +); + +chrome.webRequest.onBeforeSendHeaders.addListener( + function (details) { + for (var i = 0; i < details.requestHeaders.length; ++i) { + if (details.requestHeaders[i].name.toLowerCase() === 'user-agent') { + details.requestHeaders[i].value = 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)'; + break; + } + } + + return { + requestHeaders: details.requestHeaders + }; + }, + { + urls: [ + 'http://*.haaretz.co.il/*', + 'http://*.haaretz.com/*', + ] + }, + [ + 'blocking', + 'requestHeaders' + ] +); + + diff --git a/src/manifest.json b/src/manifest.json new file mode 100644 index 0000000..ce05e38 --- /dev/null +++ b/src/manifest.json @@ -0,0 +1,22 @@ +{ + "name": "Free Haaretz", + "version": "0.9.3", + "manifest_version": 2, + "description": "A nefarious extension that easily bypasses the Haaretz paywall", + "homepage_url": "http://github.com/yuvadm/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/test/test.js b/test/free_haaretz.js index 051cf9f..e1277c2 100644 --- a/test/test.js +++ b/test/free_haaretz.js @@ -8,6 +8,7 @@ function launchChrome() { chromeFlags: [ '--headless', '--disable-gpu', + //'--load-extension=src', '--no-sandbox' ] }) @@ -24,24 +25,31 @@ describe('test', () => { Network.enable(), Page.enable() ]).then(() => { - return Page.navigate({url: 'https://www.example.com'}) + return Page.navigate({url: 'https://www.haaretz.co.il/news/world/america/.premium-1.4239672'}) + //return Page.navigate({url: 'http://www.example.com'}) }).catch((err) => { + client.close(); + chrome.kill(); done(err); }) Page.loadEventFired(() => { Runtime.evaluate({expression: 'document.body.outerHTML'}).then((result) => { assert.include(result.result.value, 'coordination'); + //assert.equal(1,1); client.close(); chrome.kill(); done(); }).catch((err) => { + client.close(); + chrome.kill(); done(err); }) }) }) }).catch(err => { + chrome.kill() done(err) }) }); |
