summaryrefslogtreecommitdiff
path: root/extension/background.js
diff options
context:
space:
mode:
authorOmar Rizwan <omar@omar.website>2021-02-08 13:45:26 -0800
committerOmar Rizwan <omar@omar.website>2021-02-08 13:45:26 -0800
commit0f2ab4b4de7e828757091e323be1caab0a70b770 (patch)
tree39d35441314690e45235af7e2ecee91c92a19264 /extension/background.js
parent2f639e2a0276efb3dbb8a470e61ee8ffc2503f5b (diff)
downloadTabFS-0f2ab4b4de7e828757091e323be1caab0a70b770.tar.gz
TabFS-0f2ab4b4de7e828757091e323be1caab0a70b770.zip
safari: fix some races when you reload Web inspector, make ws connection retry
Diffstat (limited to 'extension/background.js')
-rw-r--r--extension/background.js25
1 files changed, 18 insertions, 7 deletions
diff --git a/extension/background.js b/extension/background.js
index 62ec7d0..e31a4c4 100644
--- a/extension/background.js
+++ b/extension/background.js
@@ -720,15 +720,26 @@ function tryConnect() {
if (chrome.runtime.getURL('/').startsWith('safari-web-extension://')) { // Safari-only
chrome.runtime.sendNativeMessage('com.rsnous.tabfs', {op: 'safari_did_connect'}, resp => {
console.log(resp);
- const socket = new WebSocket('ws://localhost:9991');
- socket.addEventListener('message', event => {
- onMessage(JSON.parse(event.data));
- });
+ let socket;
+ function connectSocket(checkAfterTime) {
+ socket = new WebSocket('ws://localhost:9991');
+ socket.addEventListener('message', event => {
+ onMessage(JSON.parse(event.data));
+ });
+
+ port = { postMessage(message) {
+ socket.send(JSON.stringify(message));
+ } };
- port = { postMessage(message) {
- socket.send(JSON.stringify(message));
- } };
+ setTimeout(() => {
+ if (socket.readyState !== 1) {
+ console.log('ws connection failed, retrying in', checkAfterTime);
+ connectSocket(checkAfterTime * 2);
+ }
+ }, checkAfterTime);
+ }
+ connectSocket(200);
});
return;
}