Quellcode durchsuchen

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

master
Said Achmiz vor 6 Jahren
Ursprung
Commit
a32dd45c76
4 geänderte Dateien mit 23 neuen und 9 gelöschten Zeilen
  1. 1
    1
      background.js
  2. 0
    8
      contentScript.js
  3. 8
    0
      functions.js
  4. 14
    0
      popup.js

+ 1
- 1
background.js Datei anzeigen

@@ -32,6 +32,6 @@ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
};
chrome.pageAction.setIcon({
path: icons,
tabId: sender.tab.id
tabId: request.tabID || sender.tab.id
});
});

+ 0
- 8
contentScript.js Datei anzeigen

@@ -51,14 +51,6 @@ function checkForShouldKillSticky(result) {
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 */
/******************/

+ 8
- 0
functions.js Datei anzeigen

@@ -34,6 +34,14 @@ String.prototype.hasPrefix = function (prefix) {
/* 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
all elements whose 'position' CSS property has a computed value of either
'sticky' or 'fixed', and removes those elements.

+ 14
- 0
popup.js Datei anzeigen

@@ -200,6 +200,7 @@ function initialize() {
// Retrieve saved settings.
chrome.tabs.query({currentWindow: true, active: true}, (tabs) => {
AKS.activeTabLocation = tabs[0].url;
AKS.activeTabID = tabs[0].id;
chrome.storage.sync.get([ "matchingPatterns", "exclusionPatterns", "mode" ], (result) => {
updateState(result);
updateUIState();
@@ -208,23 +209,36 @@ function initialize() {

// Listener for main button.
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();

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

// Save the changes.
chrome.storage.sync.set(changes, () => {
// Update the UI, once changes are saved.
updateUIState();
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) {
chrome.tabs.executeScript(null, { code: 'killSticky()' });
reloadButton.classList.toggle("active", false);
} else {
reloadButton.classList.toggle("active", true);
}

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


Laden…
Abbrechen
Speichern