From fdda58d7384a6a4ed30937f615ca21fb576e06a9 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Mon, 24 Feb 2025 09:49:26 -0800 Subject: [PATCH] check _objectId in releaseHandle --- .../playwright-core/src/server/bidi/bidiExecutionContext.ts | 4 +++- .../playwright-core/src/server/chromium/crExecutionContext.ts | 4 +++- .../playwright-core/src/server/firefox/ffExecutionContext.ts | 4 +++- .../playwright-core/src/server/webkit/wkExecutionContext.ts | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/playwright-core/src/server/bidi/bidiExecutionContext.ts b/packages/playwright-core/src/server/bidi/bidiExecutionContext.ts index 18f5824b87..431e1b9841 100644 --- a/packages/playwright-core/src/server/bidi/bidiExecutionContext.ts +++ b/packages/playwright-core/src/server/bidi/bidiExecutionContext.ts @@ -122,9 +122,11 @@ export class BidiExecutionContext implements js.ExecutionContextDelegate { } async releaseHandle(handle: js.JSHandle): Promise { + if (!handle._objectId) + return; await this._session.send('script.disown', { target: this._target, - handles: [handle._objectId!], + handles: [handle._objectId], }); } diff --git a/packages/playwright-core/src/server/chromium/crExecutionContext.ts b/packages/playwright-core/src/server/chromium/crExecutionContext.ts index a085c48318..da11f1e686 100644 --- a/packages/playwright-core/src/server/chromium/crExecutionContext.ts +++ b/packages/playwright-core/src/server/chromium/crExecutionContext.ts @@ -89,7 +89,9 @@ export class CRExecutionContext implements js.ExecutionContextDelegate { } async releaseHandle(handle: js.JSHandle): Promise { - await releaseObject(this._client, handle._objectId!); + if (!handle._objectId) + return; + await releaseObject(this._client, handle._objectId); } } diff --git a/packages/playwright-core/src/server/firefox/ffExecutionContext.ts b/packages/playwright-core/src/server/firefox/ffExecutionContext.ts index cf67d59d00..1b9af6bfaa 100644 --- a/packages/playwright-core/src/server/firefox/ffExecutionContext.ts +++ b/packages/playwright-core/src/server/firefox/ffExecutionContext.ts @@ -83,9 +83,11 @@ export class FFExecutionContext implements js.ExecutionContextDelegate { } async releaseHandle(handle: js.JSHandle): Promise { + if (!handle._objectId) + return; await this._session.send('Runtime.disposeObject', { executionContextId: this._executionContextId, - objectId: handle._objectId!, + objectId: handle._objectId, }); } } diff --git a/packages/playwright-core/src/server/webkit/wkExecutionContext.ts b/packages/playwright-core/src/server/webkit/wkExecutionContext.ts index a3f519ee6c..c7533d1ac5 100644 --- a/packages/playwright-core/src/server/webkit/wkExecutionContext.ts +++ b/packages/playwright-core/src/server/webkit/wkExecutionContext.ts @@ -102,7 +102,9 @@ export class WKExecutionContext implements js.ExecutionContextDelegate { } async releaseHandle(handle: js.JSHandle): Promise { - await this._session.send('Runtime.releaseObject', { objectId: handle._objectId! }); + if (!handle._objectId) + return; + await this._session.send('Runtime.releaseObject', { objectId: handle._objectId }); } }