gorhill
10 years ago
8 changed files with 197 additions and 127 deletions
-
16src/_locales/en/messages.json
-
0src/css/noop.css
-
2src/js/background.js
-
76src/js/main-blocked.js
-
10src/js/messaging.js
-
21src/js/tab.js
-
127src/js/traffic.js
-
72src/main-blocked.html
@ -0,0 +1,76 @@ |
|||||
|
/******************************************************************************* |
||||
|
|
||||
|
µMatrix - a browser extension to block requests. |
||||
|
Copyright (C) 2015 Raymond Hill |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
This program is distributed in the hope that it will be useful, |
||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
GNU General Public License for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU General Public License |
||||
|
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
|
||||
|
Home: https://github.com/gorhill/uBlock
|
||||
|
*/ |
||||
|
|
||||
|
/* global uDom */ |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
(function() { |
||||
|
|
||||
|
'use strict'; |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
var details = {}; |
||||
|
|
||||
|
(function() { |
||||
|
var matches = /details=([^&]+)/.exec(window.location.search); |
||||
|
if ( matches === null ) { |
||||
|
return; |
||||
|
} |
||||
|
details = JSON.parse(atob(matches[1])); |
||||
|
})(); |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
uDom('.what').text(details.url); |
||||
|
uDom('#why').text(details.why.slice(3)); |
||||
|
|
||||
|
if ( window.history.length > 1 ) { |
||||
|
uDom('#back').on('click', function() { window.history.back(); }); |
||||
|
uDom('#bye').css('display', 'none'); |
||||
|
} else { |
||||
|
uDom('#bye').on('click', function() { window.close(); }); |
||||
|
uDom('#back').css('display', 'none'); |
||||
|
} |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
// See if the target hostname is still blacklisted, and if not, navigate to it.
|
||||
|
|
||||
|
var messager = vAPI.messaging.channel('main-blocked.js'); |
||||
|
|
||||
|
messager.send({ |
||||
|
what: 'mustBlock', |
||||
|
scope: details.hn, |
||||
|
hostname: details.hn, |
||||
|
type: 'doc' |
||||
|
}, function(response) { |
||||
|
if ( response === false ) { |
||||
|
window.location.replace(details.url); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
})(); |
||||
|
|
||||
|
/******************************************************************************/ |
@ -0,0 +1,72 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html> |
||||
|
<head> |
||||
|
<title></title> |
||||
|
<link rel="stylesheet" href="css/common.css" type="text/css"> |
||||
|
<style> |
||||
|
body { |
||||
|
font-family: sans-serif; |
||||
|
font-size: large; |
||||
|
text-align: center; |
||||
|
} |
||||
|
body > div { |
||||
|
margin: 1.5em 0; |
||||
|
} |
||||
|
body > div > p { |
||||
|
margin: 4px 0; |
||||
|
} |
||||
|
body > div > p:first-child { |
||||
|
margin: 1.5em 0 0 0; |
||||
|
} |
||||
|
.code { |
||||
|
background-color: rgba(0, 0, 0, 0.1); |
||||
|
display: inline-block; |
||||
|
font-family: monospace; |
||||
|
font-size: large; |
||||
|
line-height: 1; |
||||
|
padding: 2px 4px; |
||||
|
word-break: break-all; |
||||
|
} |
||||
|
button { |
||||
|
cursor: pointer; |
||||
|
margin: 0 1em 0.25em 1em; |
||||
|
padding: 0.25em 0.5em; |
||||
|
font-size: inherit; |
||||
|
} |
||||
|
#warningSign { |
||||
|
margin: 1e, 0; |
||||
|
opacity: 1; |
||||
|
pointer-events: none; |
||||
|
width: 100%; |
||||
|
} |
||||
|
#warningSign > span { |
||||
|
color: #f2a500; |
||||
|
font-size: 180px; |
||||
|
} |
||||
|
</style> |
||||
|
</head> |
||||
|
<body> |
||||
|
<div id="warningSign"><span class="fa"></span></div> |
||||
|
<div> |
||||
|
<p data-i18n="mainBlockedPrompt1"></p> |
||||
|
<p class="what code"></p> |
||||
|
</div> |
||||
|
|
||||
|
<!-- <div> |
||||
|
<p data-i18n="mainBlockedPrompt2"></p> |
||||
|
<p id="why" class="code"></p> |
||||
|
</div> |
||||
|
--> |
||||
|
|
||||
|
<div> |
||||
|
<p><button id="back" data-i18n="mainBlockedBack" type="button"></button> |
||||
|
<button id="bye" data-i18n="mainBlockedClose" type="button"></button></p> |
||||
|
</div> |
||||
|
|
||||
|
<script src="js/vapi-common.js"></script> |
||||
|
<script src="js/vapi-client.js"></script> |
||||
|
<script src="js/udom.js"></script> |
||||
|
<script src="js/i18n.js"></script> |
||||
|
<script src="js/main-blocked.js"></script> |
||||
|
</body> |
||||
|
</html> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue