Browse Source

Page action icon now updated immediately on state toggle; some refactoring

master
Said Achmiz 6 years ago
parent
commit
a32dd45c76
4 changed files with 23 additions and 9 deletions
  1. 1
    1
      background.js
  2. 0
    8
      contentScript.js
  3. 8
    0
      functions.js
  4. 14
    0
      popup.js

+ 1
- 1
background.js View File

}; };
chrome.pageAction.setIcon({ chrome.pageAction.setIcon({
path: icons, path: icons,
tabId: sender.tab.id
tabId: request.tabID || sender.tab.id
}); });
}); });

+ 0
- 8
contentScript.js View File

return shouldKillSticky; return shouldKillSticky;
} }


/* This function sends a message to the background script (background.js),
which then updates the page action icon (i.e., the browser toolbar icon)
to reflect whether killing stickies is enabled on the current page.
*/
function updateIcon(shouldKillSticky) {
chrome.runtime.sendMessage({ "killingStickies" : shouldKillSticky });
}

/******************/ /******************/
/* INITIALIZATION */ /* INITIALIZATION */
/******************/ /******************/

+ 8
- 0
functions.js View File

/* HELPERS */ /* HELPERS */
/***********/ /***********/


/* This function sends a message to the background script (background.js),
which then updates the page action icon (i.e., the browser toolbar icon)
to reflect whether killing stickies is enabled on the current page.
*/
function updateIcon(shouldKillSticky, tabID) {
chrome.runtime.sendMessage({ "killingStickies" : shouldKillSticky, "tabID": tabID });
}

/* This is the code that actually does the sticky killing! It simply selects /* This is the code that actually does the sticky killing! It simply selects
all elements whose 'position' CSS property has a computed value of either all elements whose 'position' CSS property has a computed value of either
'sticky' or 'fixed', and removes those elements. 'sticky' or 'fixed', and removes those elements.

+ 14
- 0
popup.js View File

// Retrieve saved settings. // Retrieve saved settings.
chrome.tabs.query({currentWindow: true, active: true}, (tabs) => { chrome.tabs.query({currentWindow: true, active: true}, (tabs) => {
AKS.activeTabLocation = tabs[0].url; AKS.activeTabLocation = tabs[0].url;
AKS.activeTabID = tabs[0].id;
chrome.storage.sync.get([ "matchingPatterns", "exclusionPatterns", "mode" ], (result) => { chrome.storage.sync.get([ "matchingPatterns", "exclusionPatterns", "mode" ], (result) => {
updateState(result); updateState(result);
updateUIState(); updateUIState();


// Listener for main button. // Listener for main button.
document.querySelector("button.main-button").addActivateEvent((event) => { document.querySelector("button.main-button").addActivateEvent((event) => {
/* This doesn’t actually kill the stickies yet; that’s below, in the
callback to storage.sync.set. */
toggleState(); toggleState();


// Prepare the changes for saving.
var changes = { var changes = {
"exclusionPatterns": AKS.exclusionPatterns.join("\n"), "exclusionPatterns": AKS.exclusionPatterns.join("\n"),
"mode": AKS.mode "mode": AKS.mode
}; };
if (AKS.mode == "blacklist") if (AKS.mode == "blacklist")
changes.matchingPatterns = AKS.matchingPatterns.join("\n"); changes.matchingPatterns = AKS.matchingPatterns.join("\n");

// Save the changes.
chrome.storage.sync.set(changes, () => { chrome.storage.sync.set(changes, () => {
// Update the UI, once changes are saved.
updateUIState(); updateUIState();
let reloadButton = document.querySelector("button.reload-button"); let reloadButton = document.querySelector("button.reload-button");

/* If need be, actually kill stickies on the current page.
Otherwise, show the reload button. */
let shouldKillSticky = AKS.pageMatched && !AKS.pageExcluded;
if (AKS.pageMatched && !AKS.pageExcluded) { if (AKS.pageMatched && !AKS.pageExcluded) {
chrome.tabs.executeScript(null, { code: 'killSticky()' }); chrome.tabs.executeScript(null, { code: 'killSticky()' });
reloadButton.classList.toggle("active", false); reloadButton.classList.toggle("active", false);
} else { } else {
reloadButton.classList.toggle("active", true); reloadButton.classList.toggle("active", true);
} }

// Update the page action (toolbar) icon.
updateIcon(shouldKillSticky, AKS.activeTabID);
}); });
}); });



Loading…
Cancel
Save