version 0.3.5

This commit is contained in:
Ray Lothian 2020-03-15 13:20:18 +01:00
parent 9502e64f5f
commit 400ca5ae66
5 changed files with 52 additions and 30 deletions

View file

@ -93,9 +93,6 @@ textarea {
align-items: center; align-items: center;
} }
@media screen and (max-width: 600px) { @media screen and (max-width: 600px) {
body {
min-width: unset;
}
#backup { #backup {
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
} }

View file

@ -24,11 +24,16 @@
body { body {
background-color: #fff; background-color: #fff;
font-family: "Helvetica Neue", Helvetica, sans-serif; font-family: "Helvetica Neue", Helvetica, arial, sans-serif;
font-size: 13px; font-size: 13px;
min-width: 650px; width: 600px;
margin: 0; margin: 0;
} }
@media (pointer: none), (pointer: coarse) {
body {
width: unset;
}
}
table { table {
width: 100%; width: 100%;
border-collapse: collapse; border-collapse: collapse;
@ -88,7 +93,6 @@ select {
} }
#list { #list {
overflow: auto; overflow: auto;
scroll-behavior: smooth;
height: 268px; height: 268px;
margin-bottom: 16px; margin-bottom: 16px;
color: #000; color: #000;
@ -128,11 +132,17 @@ select {
background-color: #f5f5f5; background-color: #f5f5f5;
} }
#list[data-loading=false] tbody:empty::before { #list[data-loading=false] tbody:empty::before {
content: 'no user-agent string for this query!'; content: 'No matching user-agent string for this query';
display: block;
position: absolute; position: absolute;
top: 50px; left: 0;
left: 10px; top: 0;
width: 100%;
height: 268px;
display: flex;
align-items: center;
justify-content: center;
font-size: initial;
pointer-events: none;
} }
#list td:nth-child(1) { #list td:nth-child(1) {
text-align: center; text-align: center;
@ -166,9 +176,9 @@ select {
#agent { #agent {
white-space: nowrap; white-space: nowrap;
} display: grid;
#agent input:not(:last-child) { grid-template-columns: repeat(7, 1fr);
margin-right: 1px; grid-gap: 1px;
} }
#info { #info {

View file

@ -40,8 +40,8 @@
<th> <th>
<input type="search" id="custom" placeholder="Filter items">&nbsp; <input type="search" id="custom" placeholder="Filter items">&nbsp;
<select id="sort"> <select id="sort">
<option value="true">descending</option> <option value="descending">Z to A</option>
<option value="false">ascending</option> <option value="ascending">A to Z</option>
</select> </select>
</th> </th>
</tr> </tr>
@ -122,13 +122,13 @@
</div> </div>
<div id="explore" data-cols=4></div> <div id="explore" data-cols=4></div>
<div hbox id="agent" align="center"> <div hbox id="agent" align="center">
<input flex="1" type="button" value="Options" title="Open options page" style="margin-left: 2px;" data-cmd="options"> <input type="button" value="Options" title="Open options page" style="margin-left: 2px;" data-cmd="options">
<input flex="1" type="button" value="Restart" title="Click to reload the extension. This will cause all the window-based user-agent strings to be cleared" data-cmd="reload"> <input type="button" value="Restart" title="Click to reload the extension. This will cause all the window-based user-agent strings to be cleared" data-cmd="reload">
<input flex="1" type="button" value="Refresh Tab" title="Refresh the current page" data-cmd="refresh"> <input type="button" value="Refresh Tab" title="Refresh the current page" data-cmd="refresh">
<input flex="1" type="button" value="Reset" title="Reset User-Agent string to the default one. This will not reset window-based UA strings. To reset them, use the 'Restart' button" data-cmd="reset"> <input type="button" value="Reset" title="Reset User-Agent string to the default one. This will not reset window-based UA strings. To reset them, use the 'Restart' button" data-cmd="reset">
<input flex="1" type="button" value="Test" title="Test your user-agent string" data-cmd="test"> <input type="button" value="Test" title="Test your user-agent string" data-cmd="test">
<input flex="1" type="button" value="Window" title="Set this string as this window's User-Agent string" data-cmd="window"> <input type="button" value="Window" title="Set this string as this window's User-Agent string" data-cmd="window">
<input flex="1" type="button" value="Apply" title="Set this string as the browser's User-Agent string" data-cmd="apply"> <input type="button" value="Apply" title="Set this string as the browser's User-Agent string" data-cmd="apply">
</div> </div>
<script src="index.js"></script> <script src="index.js"></script>
<script async src="matched.js"></script> <script async src="matched.js"></script>

View file

@ -27,7 +27,7 @@ function sort(arr) {
return 0; return 0;
} }
const list = arr.sort((a, b) => sort(a.browser.version, b.browser.version)); const list = arr.sort((a, b) => sort(a.browser.version, b.browser.version));
if (document.getElementById('sort').value === 'true') { if (document.getElementById('sort').value === 'descending') {
return list.reverse(); return list.reverse();
} }
return list; return list;
@ -73,7 +73,7 @@ function update(ua) {
} }
document.getElementById('custom').placeholder = `Filter among ${list.length}`; document.getElementById('custom').placeholder = `Filter among ${list.length}`;
[...document.getElementById('os').querySelectorAll('option')].forEach(option => { [...document.getElementById('os').querySelectorAll('option')].forEach(option => {
option.disabled = map.matching[browser.toLowerCase()].indexOf(option.value.toLowerCase()) === -1; option.disabled = (map.matching[browser.toLowerCase()] || []).indexOf(option.value.toLowerCase()) === -1;
}); });
} }
else { else {
@ -84,9 +84,18 @@ function update(ua) {
}); });
} }
document.getElementById('browser').addEventListener('change', e => chrome.storage.local.set({
'popup-browser': e.target.value
}));
document.getElementById('os').addEventListener('change', e => chrome.storage.local.set({
'popup-os': e.target.value
}));
document.getElementById('sort').addEventListener('change', e => chrome.storage.local.set({
'popup-sort': e.target.value
}));
document.addEventListener('change', ({target}) => { document.addEventListener('change', ({target}) => {
if (target.closest('#filter')) { if (target.closest('#filter')) {
localStorage.setItem(target.id, target.value);
chrome.storage.local.get({ chrome.storage.local.get({
ua: '' ua: ''
}, prefs => update(prefs.ua || navigator.userAgent)); }, prefs => update(prefs.ua || navigator.userAgent));
@ -114,14 +123,20 @@ document.addEventListener('DOMContentLoaded', () => fetch('./map.json').then(r =
} }
document.querySelector('#browser optgroup:last-of-type').appendChild(f1); document.querySelector('#browser optgroup:last-of-type').appendChild(f1);
document.getElementById('browser').value = localStorage.getItem('browser') || 'Chrome';
document.querySelector('#os optgroup:last-of-type').appendChild(f2); document.querySelector('#os optgroup:last-of-type').appendChild(f2);
document.getElementById('os').value = localStorage.getItem('os') || 'Windows';
chrome.storage.local.get({ chrome.storage.local.get({
ua: '' 'ua': '',
'popup-browser': 'Chrome',
'popup-os': 'Windows',
'popup-sort': 'descending'
}, prefs => { }, prefs => {
document.getElementById('browser').value = prefs['popup-browser'];
document.getElementById('os').value = prefs['popup-os'];
document.getElementById('sort').value = prefs['popup-sort'];
console.log(prefs);
const ua = prefs.ua || navigator.userAgent; const ua = prefs.ua || navigator.userAgent;
update(ua); update(ua);
document.getElementById('ua').value = ua; document.getElementById('ua').value = ua;

View file

@ -2,7 +2,7 @@
"manifest_version": 2, "manifest_version": 2,
"name": "User-Agent Switcher and Manager", "name": "User-Agent Switcher and Manager",
"short_name": "useragent-switcher", "short_name": "useragent-switcher",
"version": "0.3.4", "version": "0.3.5",
"description": "Spoof websites trying to gather information about your web navigation to deliver distinct content you may not want", "description": "Spoof websites trying to gather information about your web navigation to deliver distinct content you may not want",