From 9181455ffdec5e08461689f1549afce80f1d076b Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Thu, 25 Apr 2019 10:44:23 +0200 Subject: [PATCH] MOBILE-2915 desktop: Fix password change opened only once --- .../emulator/classes/inappbrowserobject.ts | 43 +++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/src/core/emulator/classes/inappbrowserobject.ts b/src/core/emulator/classes/inappbrowserobject.ts index 95b23898f..1f45c7ba1 100644 --- a/src/core/emulator/classes/inappbrowserobject.ts +++ b/src/core/emulator/classes/inappbrowserobject.ts @@ -224,31 +224,38 @@ export class InAppBrowserObjectMock { } }; - switch (name) { - case 'loadstart': - this.window.webContents.on('did-start-loading', received); + if (!this.window.isDestroyed() && !this.window.webContents.isDestroyed()) { + switch (name) { + case 'loadstart': + this.window.webContents.on('did-start-loading', received); - if (this.isSSO) { - // Linux doesn't support custom URL Schemes. Check if launch page is loaded. - this.window.webContents.on('did-finish-load', finishLoad); - } - break; + if (this.isSSO) { + // Linux doesn't support custom URL Schemes. Check if launch page is loaded. + this.window.webContents.on('did-finish-load', finishLoad); + } + break; - case 'loadstop': - this.window.webContents.on('did-finish-load', received); - break; + case 'loadstop': + this.window.webContents.on('did-finish-load', received); + break; - case 'loaderror': - this.window.webContents.on('did-fail-load', received); - break; - case 'exit': - this.window.on('close', received); - break; - default: + case 'loaderror': + this.window.webContents.on('did-fail-load', received); + break; + case 'exit': + this.window.on('close', received); + break; + default: + } } return (): void => { // Unsubscribing. We need to remove the listeners. + if (this.window.isDestroyed() || this.window.webContents.isDestroyed()) { + // Page has been destroyed already, no need to remove listeners. + return; + } + switch (name) { case 'loadstart': this.window.webContents.removeListener('did-start-loading', received);