From 0bcfa923600bdb93d6e3bdff0085d4ad0c0f9531 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Wed, 28 Apr 2021 20:39:01 -0700 Subject: [PATCH] fix: break require cycle (#6353) We have `CRBrowserContext` that extends `BrowserContext`, and it sometimes fails beacause `BrowserContext` is undefined, depending on the require order. Below is the require cycle. ```log server/browserContext.ts server/supplements/recorderSupplement.ts server/supplements/recorder/recorderApp.ts server/playwright.ts server/android/android.ts server/chromium/crBrowser.ts server/browserContext.ts ``` Fixing this by using `require`. --- src/server/supplements/recorder/recorderApp.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/server/supplements/recorder/recorderApp.ts b/src/server/supplements/recorder/recorderApp.ts index 0f7e67ae60..3514618aaa 100644 --- a/src/server/supplements/recorder/recorderApp.ts +++ b/src/server/supplements/recorder/recorderApp.ts @@ -20,7 +20,6 @@ import * as util from 'util'; import { CRPage } from '../../chromium/crPage'; import { Page } from '../../page'; import { ProgressController } from '../../progress'; -import { createPlaywright } from '../../playwright'; import { EventEmitter } from 'events'; import { internalCallMetadata } from '../../instrumentation'; import type { CallLog, EventData, Mode, Source } from './recorderTypes'; @@ -95,7 +94,7 @@ export class RecorderApp extends EventEmitter { } static async open(inspectedContext: BrowserContext): Promise { - const recorderPlaywright = createPlaywright(true); + const recorderPlaywright = require('../../playwright').createPlaywright() as import('../../playwright').Playwright; const args = [ '--app=data:text/html,', '--window-size=600,600',