Skip to content

Commit 5c99ed0

Browse files
committed
Fixed some traps around Messages abstraction.
1 parent 2850f63 commit 5c99ed0

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

src/content/staticNS.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,14 @@
100100
}
101101
}
102102

103-
for (;;) {
103+
for (let attempts = 3; attempts-- > 0;) {
104104
try {
105105
browser.runtime.sendSyncMessage(
106106
{id: "fetchPolicy", url, contextUrl: url},
107107
setup);
108108
break;
109109
} catch (e) {
110-
if (!Messages.isMissingEndpoint(e)) {
110+
if (!Messages.isMissingEndpoint(e) || document.readyState === "complete") {
111111
error(e);
112112
break;
113113
}

src/lib/Messages.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
}
1313
__meta = {name: _messageName};
1414
}
15+
delete msg.__meta;
16+
delete msg._messageName;
1517
let {name} = __meta;
1618
let responderFound = false;
1719
let exception = null;
@@ -61,14 +63,14 @@
6163
args._messageName = name; // legacy protocol, for embedders
6264
if (recipientInfo && "tabId" in recipientInfo) {
6365
let opts;
64-
if ("frameId" in recipientInfo) opts = {frameId: recipientInfo.frameId};
65-
return await browser.tabs.sendMessage(recipientInfo.tabId, args, opts);
66+
if ("frameId" in recipientInfo) opts = {frameId: parseInt(recipientInfo.frameId)};
67+
return await browser.tabs.sendMessage(parseInt(recipientInfo.tabId), args, opts);
6668
}
6769
return await browser.runtime.sendMessage(args);
6870
},
6971
isMissingEndpoint(error) {
7072
return error && error.message ===
71-
"Could not esablish connection. Receiving end does not exist.";
73+
"Could not establish connection. Receiving end does not exist.";
7274
}
7375
}
7476
}

0 commit comments

Comments
 (0)