From 4a9cd8fe06d414558cc256cc0a9277fbf8557317 Mon Sep 17 00:00:00 2001 From: Artem-Babich <51639399+Artem-Babich@users.noreply.github.com> Date: Mon, 28 Mar 2022 13:02:32 +0400 Subject: [PATCH] fix: avoid focusing already removed iframe(closes #2178) --- src/client/sandbox/event/focus-blur.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/client/sandbox/event/focus-blur.ts b/src/client/sandbox/event/focus-blur.ts index d118cb365..a289e9acb 100644 --- a/src/client/sandbox/event/focus-blur.ts +++ b/src/client/sandbox/event/focus-blur.ts @@ -291,6 +291,11 @@ export default class FocusBlurSandbox extends SandboxBase { !styleUtils.isElementInInvisibleIframe(el); const elDocument = (el[INTERNAL_PROPS.processedContext] || this.window).document; + // NOTE: In some cases focus event can be raised for the element in the iframe at the moment when the iframe is removed from the document. + // For example, in React application by its internal mechanism: https://github.com/DevExpress/testcafe-hammerhead/issues/2178 + if(!elDocument.defaultView) + return null; + if (!raiseEventInIframe || isNativeFocus && !styleUtils.isElementVisible(el, elDocument)) return null;