Skip to content

Commit b87f3d6

Browse files
authored
First upload
1 parent db609e8 commit b87f3d6

File tree

6 files changed

+132
-0
lines changed

6 files changed

+132
-0
lines changed

Diff for: 128logo.png

21.2 KB
Loading

Diff for: ad.png

28.7 KB
Loading

Diff for: bg.js

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
2+
var callback = function deny(block) {
3+
return {cancel: true};
4+
};
5+
6+
chrome.storage.sync.get('block', function(res){
7+
if(res.block){
8+
chrome.webRequest.onBeforeRequest.addListener(
9+
callback, {
10+
urls : ["*://*.coin-hive.com/*","*://*.jsecoin.com/*","*://*.coinhive.com/*"]
11+
}, ["blocking"]);
12+
chrome.browserAction.setBadgeText({text:'On'})
13+
}else if(res.block == false){
14+
chrome.browserAction.setBadgeText({text:'Off'});
15+
chrome.webRequest.onBeforeRequest.removeListener(callback);
16+
}else if(res.block == null){
17+
chrome.browserAction.setBadgeText({text:'Off'});
18+
}
19+
20+
});
21+
chrome.storage.onChanged.addListener(function(changes, namespace) {
22+
chrome.storage.sync.get('block', function(res){
23+
if(res.block){
24+
chrome.webRequest.onBeforeRequest.addListener(
25+
callback, {
26+
urls : ["*://*.coin-hive.com/*","*://*.jsecoin.com/*","*://*.coinhive.com/*"]
27+
}, ["blocking"]);
28+
chrome.browserAction.setBadgeText({text:'On'})
29+
}else if(res.block == false){
30+
31+
chrome.webRequest.onBeforeRequest.removeListener(callback);
32+
chrome.browserAction.setBadgeText({text:'Off'});
33+
}
34+
35+
});
36+
});
37+
chrome.browserAction.onClicked.addListener(function(tab) {
38+
chrome.browserAction.getBadgeText({}, function(result) {
39+
if(result == 'On'){
40+
chrome.storage.sync.set({'block': false}, function() {
41+
console.log('Turn Off');
42+
});
43+
}else{
44+
chrome.storage.sync.set({'block': true}, function() {
45+
console.log('Turn On');
46+
});
47+
}
48+
});
49+
50+
51+
});
52+
if(chrome.webRequest.onBeforeRequest.hasListener(callback)){
53+
console.log('Listning')
54+
}

Diff for: manifest.json

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"name": "Coin-Hive Blocker",
3+
"description": "Removes Coin-Hive before it even runs on all sites",
4+
"version": "0.4",
5+
"permissions": [
6+
"tabs",
7+
"storage",
8+
"<all_urls>",
9+
"webRequest",
10+
"webRequestBlocking"
11+
],
12+
"browser_action": {
13+
"default_icon": "128logo.png"
14+
},
15+
"background": {
16+
"scripts": ["bg.js"],
17+
"persistent": true
18+
},
19+
"content_scripts": [
20+
{
21+
"matches": [
22+
"http://*/*",
23+
"https://*/*"
24+
],
25+
"js": ["remove.js"],
26+
"run_at": "document_start",
27+
"all_frames": true
28+
}
29+
],
30+
"manifest_version":2
31+
}

Diff for: remove.js

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
2+
function deleteElements(selector) {
3+
// in case the content script was injected after the page is partially loaded
4+
doDelete(document.querySelectorAll(selector));
5+
6+
var mo = new MutationObserver(process);
7+
mo.observe(document, {subtree:true, childList:true});
8+
document.addEventListener('DOMContentLoaded', function() { mo.disconnect() });
9+
10+
function process(mutations) {
11+
for (var i = 0; i < mutations.length; i++) {
12+
var nodes = mutations[i].addedNodes;
13+
for (var j = 0; j < nodes.length; j++) {
14+
var n = nodes[j];
15+
if (n.nodeType != 1) // only process Node.ELEMENT_NODE
16+
continue;
17+
doDelete(n.matches(selector) ? [n] : n.querySelectorAll(selector));
18+
}
19+
}
20+
}
21+
function doDelete(nodes) {
22+
[].forEach.call(nodes, function(node) { node.remove() });
23+
}
24+
}
25+
26+
27+
28+
chrome.storage.sync.get('block', function(res){
29+
console.log('Block mining:'+res.block)
30+
if(res.block){
31+
console.log('Removed items')
32+
deleteElements('script[src="https://coin-hive.com/lib/coinhive.min.js"]','script[src="coinhive.min.js"]','script[src="https://coinhive.com/lib/coinhive.min.js"]')
33+
}else{
34+
console.log('Did not remove anything')
35+
}
36+
37+
});
38+
chrome.storage.onChanged.addListener(function(changes, namespace) {
39+
chrome.storage.sync.get('block', function(res){
40+
if(res.block){
41+
42+
deleteElements('script[src="https://coin-hive.com/lib/coinhive.min.js"]','script[src="coinhive.min.js"]','script[src="https://coinhive.com/lib/coinhive.min.js"]')
43+
44+
}
45+
46+
});
47+
});

Diff for: sceen.jpg

203 KB
Loading

0 commit comments

Comments
 (0)