Merge pull request #229 from sompylasar/217-workaround-disconnected-port-error

Fix for 'Attempting to use a disconnected port object'
This commit is contained in:
Brian Vaughn
2019-04-30 09:15:52 -07:00
committed by GitHub
8 changed files with 87 additions and 23 deletions
+6 -2
View File
@@ -7,9 +7,13 @@ import { initBackend } from 'src/backend';
const bridge = new Bridge({
listen(fn) {
window.addEventListener('message', event => {
const listener = event => {
fn(event.data);
});
};
window.addEventListener('message', listener);
return () => {
window.removeEventListener('message', listener);
};
},
send(event: string, payload: any, transferable?: Array<any>) {
window.parent.postMessage({ event, payload }, '*', transferable);
+8 -2
View File
@@ -43,9 +43,15 @@ inject('./build/app.js', () => {
connect(cb) {
const bridge = new Bridge({
listen(fn) {
contentWindow.parent.addEventListener('message', ({ data }) => {
const listener = ({ data }) => {
fn(data);
});
};
// Preserve the reference to the window we subscribe to, so we can unsubscribe from it when required.
const contentWindowParent = contentWindow.parent;
contentWindowParent.addEventListener('message', listener);
return () => {
contentWindowParent.removeEventListener('message', listener);
};
},
send(event: string, payload: any, transferable?: Array<any>) {
contentWindow.postMessage({ event, payload }, '*', transferable);