From ca9c0c12377f4c72f41e82beb5103650da15ac85 Mon Sep 17 00:00:00 2001 From: Puja Jagani Date: Wed, 24 Jan 2024 11:57:25 +0530 Subject: [PATCH] [bidi] [js] Add realm destroyed event --- .../selenium-webdriver/bidi/scriptManager.js | 4 ++++ .../test/bidi/script_test.js | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/javascript/node/selenium-webdriver/bidi/scriptManager.js b/javascript/node/selenium-webdriver/bidi/scriptManager.js index 0aca9d8f94220..f02aedc62628e 100644 --- a/javascript/node/selenium-webdriver/bidi/scriptManager.js +++ b/javascript/node/selenium-webdriver/bidi/scriptManager.js @@ -359,6 +359,10 @@ class ScriptManager { await this.subscribeAndHandleEvent('script.realmCreated', callback) } + async onRealmDestroyed(callback) { + await this.subscribeAndHandleEvent('script.realmDestroyed', callback) + } + async subscribeAndHandleEvent(eventType, callback) { if (this._browsingContextIds != null) { await this.bidi.subscribe(eventType, this._browsingContextIds) diff --git a/javascript/node/selenium-webdriver/test/bidi/script_test.js b/javascript/node/selenium-webdriver/test/bidi/script_test.js index f1e67173d79cf..3749c215b5e9d 100644 --- a/javascript/node/selenium-webdriver/test/bidi/script_test.js +++ b/javascript/node/selenium-webdriver/test/bidi/script_test.js @@ -1006,6 +1006,27 @@ suite( assert.notEqual(realmInfo.realmId, null) assert.equal(realmInfo.realmType, RealmType.WINDOW) }) + + xit('can listen to realm destroyed message', async function () { + const manager = await ScriptManager(undefined, driver) + + let realmInfo = null + + await manager.onRealmDestroyed((result) => { + realmInfo = result + }) + + const id = await driver.getWindowHandle() + const browsingContext = await BrowsingContext(driver, { + browsingContextId: id, + }) + + await browsingContext.close() + + assert.notEqual(realmInfo, null) + assert.notEqual(realmInfo.realmId, null) + assert.equal(realmInfo.realmType, RealmType.WINDOW) + }) }) }, {browsers: [Browser.FIREFOX]}