summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package.json2
-rw-r--r--src/free_haaretz.css6
-rw-r--r--src/free_haaretz.js46
-rw-r--r--src/manifest.json22
-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)
})
});