Many bug fixes

This commit is contained in:
Said Achmiz 2019-01-31 10:10:20 -05:00
parent f8163743bc
commit e82376a7ef
2 changed files with 24 additions and 25 deletions

View File

@ -11,19 +11,20 @@ function killStickyIfMatch(result) {
var shouldKillSticky = false; var shouldKillSticky = false;
let matchingPatterns = result.mode == "whitelist" ? let matchingPatterns = result.mode == "whitelist" ?
[ ".*" ] : [ ".*" ] :
result.matchingPatterns.split("\n"); (typeof result.matchingPatterns != "undefined" ?
result.matchingPatterns.split("\n") :
[ ]);
for (let pattern of matchingPatterns) { for (let pattern of matchingPatterns) {
if (location.href.match(new RegExp(pattern))) { if (pattern && location.href.match(new RegExp(pattern))) {
shouldKillSticky = true; shouldKillSticky = true;
break; break;
} }
} }
let exclusionPatterns = (typeof result.exclusionPatterns != "undefined" && let exclusionPatterns = typeof result.exclusionPatterns != "undefined" ?
result.exclusionPatterns != "") ?
result.exclusionPatterns.split("\n") : result.exclusionPatterns.split("\n") :
[ ]; [ ];
for (let pattern of exclusionPatterns) { for (let pattern of exclusionPatterns) {
if (location.href.match(new RegExp(pattern))) { if (pattern && location.href.match(new RegExp(pattern))) {
shouldKillSticky = false; shouldKillSticky = false;
break; break;
} }

View File

@ -1,8 +1,3 @@
/*******************/
/* EVENT LISTENERS */
/*******************/
/***********/ /***********/
/* HELPERS */ /* HELPERS */
/***********/ /***********/
@ -74,13 +69,13 @@ function recalculatePatternEffects() {
ASK.pageMatched = false; ASK.pageMatched = false;
ASK.pageExcluded = false; ASK.pageExcluded = false;
for (let pattern of ASK.matchingPatterns) { for (let pattern of ASK.matchingPatterns) {
if (ASK.activeTabLocation.match(new RegExp(pattern))) { if (pattern && ASK.activeTabLocation.match(new RegExp(pattern))) {
ASK.pageMatched = true; ASK.pageMatched = true;
break; break;
} }
} }
for (let pattern of ASK.exclusionPatterns) { for (let pattern of ASK.exclusionPatterns) {
if (ASK.activeTabLocation.match(new RegExp(pattern))) { if (pattern && ASK.activeTabLocation.match(new RegExp(pattern))) {
ASK.pageExcluded = true; ASK.pageExcluded = true;
break; break;
} }
@ -91,9 +86,10 @@ function updateState(result) {
ASK.mode = result.mode || "blacklist"; ASK.mode = result.mode || "blacklist";
ASK.matchingPatterns = (ASK.mode == "whitelist") ? ASK.matchingPatterns = (ASK.mode == "whitelist") ?
[ ".*" ] : [ ".*" ] :
result.matchingPatterns.split("\n"); (typeof result.matchingPatterns != "undefined" ?
ASK.exclusionPatterns = (typeof result.exclusionPatterns != "undefined" && result.matchingPatterns.split("\n") :
result.exclusionPatterns != "") ? [ ]);
ASK.exclusionPatterns = typeof result.exclusionPatterns != "undefined" ?
result.exclusionPatterns.split("\n") : result.exclusionPatterns.split("\n") :
[ ]; [ ];
recalculatePatternEffects(); recalculatePatternEffects();
@ -125,6 +121,7 @@ function updateUIState() {
function initialize() { function initialize() {
window.ASK = { }; window.ASK = { };
// Retrieve saved settings.
chrome.tabs.query({currentWindow: true, active: true}, (tabs) => { chrome.tabs.query({currentWindow: true, active: true}, (tabs) => {
ASK.activeTabLocation = tabs[0].url; ASK.activeTabLocation = tabs[0].url;
chrome.storage.sync.get([ "matchingPatterns", "exclusionPatterns", "mode" ], (result) => { chrome.storage.sync.get([ "matchingPatterns", "exclusionPatterns", "mode" ], (result) => {
@ -133,17 +130,17 @@ function initialize() {
}); });
}); });
// Listener for main button.
document.querySelector("button.main-button").addActivateEvent((event) => { document.querySelector("button.main-button").addActivateEvent((event) => {
toggleState(); toggleState();
let matchingPatterns = ASK.matchingPatterns.join("\n"); var changes = {
let exclusionPatterns = ASK.exclusionPatterns.join("\n"); "exclusionPatterns": ASK.exclusionPatterns.join("\n"),
let mode = ASK.mode; "mode": ASK.mode
chrome.storage.sync.set({ };
"matchingPatterns": matchingPatterns, if (ASK.mode == "blacklist")
"exclusionPatterns": exclusionPatterns, changes.matchingPatterns = ASK.matchingPatterns.join("\n");
"mode": mode chrome.storage.sync.set(changes, () => {
}, () => {
updateUIState(); updateUIState();
let reloadButton = document.querySelector("button.reload-button"); let reloadButton = document.querySelector("button.reload-button");
if (ASK.pageMatched && !ASK.pageExcluded) { if (ASK.pageMatched && !ASK.pageExcluded) {
@ -155,11 +152,12 @@ function initialize() {
}); });
}); });
// Listener for Options button.
document.querySelector("button.options-button").addActivateEvent(() => { document.querySelector("button.options-button").addActivateEvent(() => {
chrome.runtime.openOptionsPage(null); chrome.runtime.openOptionsPage(null);
}); });
// Listener for reload button (appears when sticky-killing is toggled OFF).
document.querySelector("button.reload-button").addActivateEvent(() => { document.querySelector("button.reload-button").addActivateEvent(() => {
chrome.tabs.update(null, { url: ASK.activeTabLocation }); chrome.tabs.update(null, { url: ASK.activeTabLocation });
window.close(); window.close();