-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathbackground.js
46 lines (41 loc) · 1.45 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
39
40
41
42
43
44
45
46
registerExternalMessageListener();
// listen for messages from the content script
function registerExternalMessageListener() {
chrome.runtime.onMessageExternal.addListener(
function(request, sender, sendResponse) {
if(request.getPersistedMessages) {
getPersistedMessages(messages => {
sendResponse(messages);
});
}
if(request.receivedMessages) {
setReceivedMessages(request.receivedMessages);
}
if(request.removedMessages) {
setRemovedMessages(request.removedMessages);
}
if(request.lastPurgeTime) {
setLastPurgeTime(request.lastPurgeTime);
}
return true; // return true to use sendResponse asynchronously
}
);
}
// returns the messages which we have persisted in local storage
function getPersistedMessages(callback) {
chrome.storage.local.get(['receivedMessages', 'removedMessages', 'lastPurgeTime'], function(result) {
callback(result);
});
}
// persists the messages which we have received (new messages)
function setReceivedMessages(messages) {
chrome.storage.local.set({'receivedMessages': messages});
}
// persists the messages which have been removed (deleted messages)
function setRemovedMessages(messages) {
chrome.storage.local.set({'removedMessages': messages});
}
// persists the timestamp of the last time receivedMessages were purged
function setLastPurgeTime(timestamp) {
chrome.storage.local.set({'lastPurgeTime': timestamp});
}