From 9404d2abb61aff153cb6274d6c578ca1fe272d5c Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Fri, 13 Nov 2020 14:47:55 -0800 Subject: [PATCH] fix(debug): do not generate source urls for anonymous scripts (#3691) --- src/server/chromium/crCoverage.ts | 4 ---- src/utils/sourceMap.ts | 8 ++------ test/chromium-js-coverage.spec.ts | 9 --------- 3 files changed, 2 insertions(+), 19 deletions(-) diff --git a/src/server/chromium/crCoverage.ts b/src/server/chromium/crCoverage.ts index 379621432a..28e12fcd0f 100644 --- a/src/server/chromium/crCoverage.ts +++ b/src/server/chromium/crCoverage.ts @@ -19,7 +19,6 @@ import { CRSession } from './crConnection'; import { helper, RegisteredListener } from '../helper'; import { Protocol } from './protocol'; import * as types from '../types'; -import * as sourceMap from '../../utils/sourceMap'; import { assert } from '../../utils/utils'; export class CRCoverage { @@ -102,9 +101,6 @@ class JSCoverage { } async _onScriptParsed(event: Protocol.Debugger.scriptParsedPayload) { - // Ignore playwright-injected scripts - if (sourceMap.isPlaywrightSourceUrl(event.url)) - return; this._scriptIds.add(event.scriptId); // Ignore other anonymous scripts unless the reportAnonymousScripts option is true. if (!event.url && !this._reportAnonymousScripts) diff --git a/src/utils/sourceMap.ts b/src/utils/sourceMap.ts index 69df044ccb..3237a82385 100644 --- a/src/utils/sourceMap.ts +++ b/src/utils/sourceMap.ts @@ -28,23 +28,19 @@ let sourceUrlCounter = 0; const playwrightSourceUrlPrefix = '__playwright_evaluation_script__'; const sourceUrlRegex = /^[\040\t]*\/\/[@#] sourceURL=\s*(\S*?)\s*$/m; -export function isPlaywrightSourceUrl(s: string): boolean { - return s.startsWith(playwrightSourceUrlPrefix); -} - export function ensureSourceUrl(expression: string): string { return sourceUrlRegex.test(expression) ? expression : expression + generateSourceUrl(); } export async function generateSourceMapUrl(functionText: string, generatedText: string): Promise { if (!isDebugMode()) - return generateSourceUrl(); + return ''; const sourceMapUrl = await innerGenerateSourceMapUrl(functionText, generatedText); return sourceMapUrl || generateSourceUrl(); } export function generateSourceUrl(): string { - return `\n//# sourceURL=${playwrightSourceUrlPrefix}${sourceUrlCounter++}\n`; + return isDebugMode() ? `\n//# sourceURL=${playwrightSourceUrlPrefix}${sourceUrlCounter++}\n` : ''; } async function innerGenerateSourceMapUrl(functionText: string, generatedText: string): Promise { diff --git a/test/chromium-js-coverage.spec.ts b/test/chromium-js-coverage.spec.ts index ddb1c23d34..d7c83789bf 100644 --- a/test/chromium-js-coverage.spec.ts +++ b/test/chromium-js-coverage.spec.ts @@ -58,15 +58,6 @@ describe('oopif', (suite, { browserName }) => { expect(coverage.length).toBe(2); }); - it('should ignore playwright internal scripts if reportAnonymousScripts is true', async function({page, server}) { - await page.coverage.startJSCoverage({reportAnonymousScripts: true}); - await page.goto(server.EMPTY_PAGE); - await page.evaluate('console.log("foo")'); - await page.evaluate(() => console.log('bar')); - const coverage = await page.coverage.stopJSCoverage(); - expect(coverage.length).toBe(0); - }); - it('should report multiple scripts', async function({page, server}) { await page.coverage.startJSCoverage(); await page.goto(server.PREFIX + '/jscoverage/multiple.html');