-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackground.js
38 lines (33 loc) · 1.08 KB
/
background.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
let isActive = true; // Default state
// Listener to react to changes from the popup
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.requestState) {
// Respond with the current state
sendResponse({ isActive: isActive });
} else if (typeof request.isActive === 'boolean') {
isActive = request.isActive;
updateListeners();
}
});
// Function to add or remove listeners based on isActive
function updateListeners() {
if (isActive) {
chrome.tabs.onCreated.addListener(onTabCreated);
chrome.tabs.onUpdated.addListener(onTabUpdated);
} else {
chrome.tabs.onCreated.removeListener(onTabCreated);
chrome.tabs.onUpdated.removeListener(onTabUpdated);
}
}
// Add listeners initially
updateListeners();
function onTabCreated(tab) {
if (isActive) {
chrome.tabs.update(tab.id, { pinned: true });
}
}
function onTabUpdated(tabId, changeInfo, tab) {
if (isActive && changeInfo.status === 'complete') {
chrome.tabs.update(tabId, { pinned: true });
}
}