mirror of
https://github.com/SoPat712/videospeed.git
synced 2025-08-21 18:08:46 -04:00
* Allow regex in blacklist fixes #167 #542 * Added protection against invalid regex causing failed initialization * Added regex input validation
This commit is contained in:

committed by
Ilya Grigorik

parent
c4a26e3da2
commit
ac7471edfc
23
options.js
23
options.js
@@ -163,8 +163,31 @@ function createKeyBindings(item) {
|
||||
keyBindings.push({action: action, key: key, value: value, force: force, predefined: predefined});
|
||||
}
|
||||
|
||||
// Validates settings before saving
|
||||
function validate() {
|
||||
var valid = true;
|
||||
var status = document.getElementById('status');
|
||||
document.getElementById('blacklist').value.split("\n").forEach(match => {
|
||||
match = match.replace(regStrip,'')
|
||||
if (match.startsWith('/')) {
|
||||
try {
|
||||
var regexp = new RegExp(match);
|
||||
} catch(err) {
|
||||
status.textContent = 'Error: Invalid Regex: ' + match
|
||||
+ '. Unable to save';
|
||||
valid = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
})
|
||||
return valid;
|
||||
}
|
||||
|
||||
// Saves options to chrome.storage
|
||||
function save_options() {
|
||||
if (validate() === false) {
|
||||
return;
|
||||
}
|
||||
keyBindings = [];
|
||||
Array.from(document.querySelectorAll(".customs")).forEach(item => createKeyBindings(item)); // Remove added shortcuts
|
||||
|
||||
|
Reference in New Issue
Block a user