Skip to content
This repository was archived by the owner on Aug 27, 2025. It is now read-only.

Commit 1f57a5e

Browse files
committed
fix: keep sw alive
1 parent 7722ef4 commit 1f57a5e

2 files changed

Lines changed: 33 additions & 21 deletions

File tree

src/content-script/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ class CrossSyncContentScript {
2424
this.xlog('info', 'CorssSync Content Script is running');
2525
this.initHooks();
2626
this.lock = new AsyncLock();
27+
// Keep Service Worker Alive
28+
setInterval(() => {
29+
chrome.runtime.sendMessage({
30+
type: 'wakeup-sw',
31+
});
32+
}, 10 * 1000); // Per 10 seconds
2733
}
2834

2935
private async initHooks() {

src/service-worker.ts

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -53,25 +53,31 @@ const afterResponseListener = (details: chrome.webRequest.WebResponseCacheDetail
5353
}
5454
};
5555

56-
chrome.webNavigation.onBeforeNavigate.addListener(
57-
() => {
58-
// Wake Up
59-
if (!chrome.webRequest.onBeforeRequest.hasListener(beforeRequestListener)) {
60-
chrome.webRequest.onBeforeRequest.addListener(
61-
beforeRequestListener,
62-
{
63-
urls: ['https://twitter.com/*/CreateTweet'],
64-
},
65-
['requestBody'],
66-
);
67-
}
68-
if (!chrome.webRequest.onCompleted.hasListener(afterResponseListener)) {
69-
chrome.webRequest.onCompleted.addListener(afterResponseListener, {
56+
const wakeUpSW = () => {
57+
// Wake Up
58+
if (!chrome.webRequest.onBeforeRequest.hasListener(beforeRequestListener)) {
59+
chrome.webRequest.onBeforeRequest.addListener(
60+
beforeRequestListener,
61+
{
7062
urls: ['https://twitter.com/*/CreateTweet'],
71-
});
72-
}
73-
},
74-
{
75-
url: [{ hostContains: 'twitter.com' }],
76-
},
77-
);
63+
},
64+
['requestBody'],
65+
);
66+
}
67+
if (!chrome.webRequest.onCompleted.hasListener(afterResponseListener)) {
68+
chrome.webRequest.onCompleted.addListener(afterResponseListener, {
69+
urls: ['https://twitter.com/*/CreateTweet'],
70+
});
71+
}
72+
};
73+
74+
chrome.webNavigation.onBeforeNavigate.addListener(wakeUpSW, {
75+
url: [{ hostContains: 'twitter.com' }],
76+
});
77+
78+
// Wake Up SW by Content Script
79+
chrome.runtime.onMessage.addListener((msg) => {
80+
if (msg.type === 'wakeup-sw') {
81+
wakeUpSW();
82+
}
83+
});

0 commit comments

Comments
 (0)