Post message to service worker to sendHeartbeat

This commit is contained in:
Sebastian Velez
2023-08-28 19:01:47 -05:00
parent 7d4fb6b90f
commit 3a430d66ce
5 changed files with 23 additions and 7 deletions

View File

@@ -1,5 +1,6 @@
import browser from 'webextension-polyfill';
import WakaTimeCore from './core/WakaTimeCore';
import { PostHeartbeatMessage } from './types/heartbeats';
// Add a listener to resolve alarms
browser.alarms.onAlarm.addListener(async (alarm) => {
@@ -22,7 +23,7 @@ browser.alarms.create('heartbeatAlarm', { periodInMinutes: 2 });
* Whenever a active tab is changed it records a heartbeat with that tab url.
*/
browser.tabs.onActivated.addListener(async () => {
console.log('recording a heartbeat - active tab changed ');
console.log('recording a heartbeat - active tab changed');
await WakaTimeCore.recordHeartbeat();
});
@@ -62,6 +63,12 @@ self.addEventListener('activate', async () => {
await WakaTimeCore.createDB();
});
browser.runtime.onMessage.addListener(async (request: PostHeartbeatMessage) => {
if (request.recordHeartbeat === true) {
await WakaTimeCore.recordHeartbeat(request.projectDetails);
}
});
/**
* "Persistent" service worker via bug exploit
* https://stackoverflow.com/questions/66618136/persistent-service-worker-in-chrome-extension