Ray Lothian 2017-11-22 16:05:22 +03:30
parent 96b13e4b7f
commit 846dc6f8a4
7 changed files with 175 additions and 10 deletions

37
data/options/index.html Normal file
View file

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<title>My Test Extension Options</title>
<style>
body { padding: 10px; }
textarea { width: 100%; }
</style>
</head>
<body>
<table width=100%>
<tr>
<td>
<label><input type="radio" name="mode" value="blacklist" id="mode-blacklist"> Black-list mode: Apply user-agent string to all tabs except the tabs with the following top-level hostnames (comma separated list of hostnames)</label>
</td>
</tr>
<tr>
<td><textarea id="blacklist" rows="3" placeholder="e.g.: www.google.com, www.bing.com"></textarea></td>
</tr>
<tr>
<td>
<label><input type="radio" name="mode" value="whitelist" id="mode-whitelist"> White-list mode: Only apply user-agent string to the tabs with following top-level hostnames</label>
</td>
</tr>
<tr>
<td><textarea id="whitelist" rows="3"></textarea></td>
</tr>
</table>
<p>
<button id="save">Save</button>
<span id="status"></span>
</p>
<script src="index.js"></script>
</body>
</html>

36
data/options/index.js Normal file
View file

@ -0,0 +1,36 @@
'use strict';
function prepare(str) {
return str.split(/\s*,\s*/)
.map(s => s.replace('http://', '')
.replace('https://', '').split('/')[0].trim())
.filter((h, i, l) => h && l.indexOf(h) === i);
}
function save() {
chrome.storage.local.set({
blacklist: prepare(document.getElementById('blacklist').value),
whitelist: prepare(document.getElementById('whitelist').value),
mode: document.getElementById('mode-blacklist').checked ? 'blacklist' : 'whitelist'
}, () => {
restore();
// Update status to let user know options were saved.
const status = document.getElementById('status');
status.textContent = 'Options saved.';
setTimeout(() => status.textContent = '', 750);
});
}
function restore() {
chrome.storage.local.get({
mode: 'blacklist',
whitelist: [],
blacklist: []
}, prefs => {
document.getElementById('mode-blacklist').checked = prefs.mode === 'blacklist';
document.getElementById('mode-whitelist').checked = prefs.mode === 'whitelist';
document.getElementById('blacklist').value = prefs.blacklist.join(', ');
document.getElementById('whitelist').value = prefs.whitelist.join(', ');
});
}
document.addEventListener('DOMContentLoaded', restore);
document.getElementById('save').addEventListener('click', save);