From 13550b7329c428063b95663c979c241c27b32656 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Mon, 29 Jan 2024 15:00:42 -0800 Subject: [PATCH] fix: add new line before sourceURL (#29199) Reference https://github.com/microsoft/playwright/issues/29116 --- packages/playwright-core/src/client/clientHelper.ts | 6 +++++- packages/playwright-core/src/client/frame.ts | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/playwright-core/src/client/clientHelper.ts b/packages/playwright-core/src/client/clientHelper.ts index f2a617ea09..540230a4fc 100644 --- a/packages/playwright-core/src/client/clientHelper.ts +++ b/packages/playwright-core/src/client/clientHelper.ts @@ -43,8 +43,12 @@ export async function evaluationScript(fun: Function | string | { path?: string, if (fun.path !== undefined) { let source = await fs.promises.readFile(fun.path, 'utf8'); if (addSourceUrl) - source += '\n//# sourceURL=' + fun.path.replace(/\n/g, ''); + source = addSourceUrlToScript(source, fun.path); return source; } throw new Error('Either path or content property must be present'); } + +export function addSourceUrlToScript(source: string, path: string): string { + return `${source}\n//# sourceURL=${path.replace(/\n/g, '')}`; +} diff --git a/packages/playwright-core/src/client/frame.ts b/packages/playwright-core/src/client/frame.ts index 6845d8be6b..582490d0af 100644 --- a/packages/playwright-core/src/client/frame.ts +++ b/packages/playwright-core/src/client/frame.ts @@ -35,6 +35,7 @@ import { kLifecycleEvents } from './types'; import { urlMatches } from '../utils/network'; import type * as api from '../../types/types'; import type * as structs from '../../types/structs'; +import { addSourceUrlToScript } from './clientHelper'; export type WaitForNavigationOptions = { timeout?: number, @@ -266,7 +267,7 @@ export class Frame extends ChannelOwner implements api.Fr const copy = { ...options }; if (copy.path) { copy.content = (await fs.promises.readFile(copy.path)).toString(); - copy.content += '//# sourceURL=' + copy.path.replace(/\n/g, ''); + copy.content = addSourceUrlToScript(copy.content, copy.path); } return ElementHandle.from((await this._channel.addScriptTag({ ...copy })).element); }