From 0ed43e878107325442b55d12142328abcbb35512 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Fri, 7 Feb 2020 10:52:59 -0800 Subject: [PATCH] feat(webkit) await the reading from pipe message (#894) --- package.json | 2 +- src/server/webkit.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d2a371ccfb..0e6ec41e2b 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "playwright": { "chromium_revision": "739261", "firefox_revision": "1025", - "webkit_revision": "1137" + "webkit_revision": "1139" }, "scripts": { "ctest": "cross-env BROWSER=chromium node test/test.js", diff --git a/src/server/webkit.ts b/src/server/webkit.ts index 5e3fbfb0f2..1c2f03c68b 100644 --- a/src/server/webkit.ts +++ b/src/server/webkit.ts @@ -22,7 +22,7 @@ import * as types from '../types'; import { WKBrowser } from '../webkit/wkBrowser'; import { execSync } from 'child_process'; import { PipeTransport } from './pipeTransport'; -import { launchProcess } from './processLauncher'; +import { launchProcess, waitForLine } from './processLauncher'; import * as fs from 'fs'; import * as path from 'path'; import * as platform from '../platform'; @@ -84,6 +84,7 @@ export class WebKit implements BrowserType { handleSIGINT = true, handleSIGTERM = true, handleSIGHUP = true, + timeout = 30000 } = options; let temporaryUserDataDir: string | null = null; @@ -135,6 +136,8 @@ export class WebKit implements BrowserType { }, }); + const timeoutError = new TimeoutError(`Timed out after ${timeout} ms while trying to connect to WebKit!`); + await waitForLine(launchedProcess, launchedProcess.stdout, /^Web Inspector is reading from pipe #3$/, timeout, timeoutError); transport = new PipeTransport(launchedProcess.stdio[3] as NodeJS.WritableStream, launchedProcess.stdio[4] as NodeJS.ReadableStream); browserServer = new BrowserServer(launchedProcess, gracefullyClose, launchType === 'server' ? wrapTransportWithWebSocket(transport, port || 0) : null); return { browserServer, transport };