From 0d9638fe20ed722639117d12f940458e26a7eb58 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Fri, 3 Jan 2020 10:07:49 -0800 Subject: [PATCH] feat(webkit): support pageerror event (#362) --- src/webkit/wkPage.ts | 9 ++++++++- test/assets/error.html | 1 + test/interception.spec.js | 19 ------------------- test/page.spec.js | 2 +- 4 files changed, 10 insertions(+), 21 deletions(-) diff --git a/src/webkit/wkPage.ts b/src/webkit/wkPage.ts index 315aa8eaea..8a0b4de5ee 100644 --- a/src/webkit/wkPage.ts +++ b/src/webkit/wkPage.ts @@ -213,7 +213,7 @@ export class WKPage implements PageDelegate { } async _onConsoleMessage(event: Protocol.Console.messageAddedPayload) { - const { type, level, text, parameters, url, line: lineNumber, column: columnNumber } = event.message; + const { type, level, text, parameters, url, line: lineNumber, column: columnNumber, source } = event.message; if (level === 'debug' && parameters && parameters[0].value === BINDING_CALL_MESSAGE) { const parsedObjectId = JSON.parse(parameters[1].objectId); const context = this._contextIdToContext.get(parsedObjectId.injectedScriptId); @@ -226,6 +226,13 @@ export class WKPage implements PageDelegate { (context._delegate as WKExecutionContext)._jsonStringifyObjectId = parameters[1].objectId; return; } + if (level === 'error' && source === 'javascript') { + const error = new Error(text); + error.stack = ''; + this._page.emit(Events.Page.PageError, error); + return; + } + let derivedType: string = type; if (type === 'log') derivedType = level; diff --git a/test/assets/error.html b/test/assets/error.html index 130400c006..100c1d2dc4 100644 --- a/test/assets/error.html +++ b/test/assets/error.html @@ -1,4 +1,5 @@