t2ym/reportage

[driver.js] premature close of mediator bridge window

Closed this issue · 0 comments

t2ym commented

[driver.js] premature close of mediator bridge window

Root Cause

After driver.js receives mediatorPort from the mediator bridge window, the mediator bridge window is unexpectedly closed when the timeout period has passed

Fix

The timeout handler must skip closing the mediator bridge window if a valid mediatorPort has already been received from the window

diff --git a/driver.js b/driver.js
index 7893e70..8c56f42 100644
--- a/driver.js
+++ b/driver.js
@@ -306,6 +306,10 @@ try {
             }),
             new Promise((resolve, reject) => {
               setTimeout(() => {
+                if (this.mediatorPort) {
+                  resolve(this.mediatorPort); // the resolved value is not used
+                  return;
+                }
                 //window.removeEventListener('message', this._onTransferPortMessage);
                 if (this.mediatorWindow) {
                   this.mediatorWindow.close();