testplane 8.47.3 → 8.47.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/package.json +4 -4
- package/build/src/browser/cdp/selectivity/click-command-guard.d.ts +10 -0
- package/build/src/browser/cdp/selectivity/click-command-guard.js +57 -0
- package/build/src/browser/cdp/selectivity/click-command-guard.js.map +1 -0
- package/build/src/browser/cdp/selectivity/coverage-hooks.d.ts +13 -0
- package/build/src/browser/cdp/selectivity/coverage-hooks.js +43 -0
- package/build/src/browser/cdp/selectivity/coverage-hooks.js.map +1 -0
- package/build/src/browser/cdp/selectivity/index.js +71 -12
- package/build/src/browser/cdp/selectivity/index.js.map +1 -1
- package/build/src/browser/cdp/selectivity/js-selectivity.d.ts +42 -5
- package/build/src/browser/cdp/selectivity/js-selectivity.js +139 -66
- package/build/src/browser/cdp/selectivity/js-selectivity.js.map +1 -1
- package/build/src/browser/cdp/selectivity/navigation-guard.d.ts +18 -0
- package/build/src/browser/cdp/selectivity/navigation-guard.js +234 -0
- package/build/src/browser/cdp/selectivity/navigation-guard.js.map +1 -0
- package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
package/build/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "testplane",
|
|
3
|
-
"version": "8.47.
|
|
3
|
+
"version": "8.47.5",
|
|
4
4
|
"description": "Tests framework based on mocha and wdio",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"files": [
|
|
@@ -70,10 +70,10 @@
|
|
|
70
70
|
"@jspm/core": "2.0.1",
|
|
71
71
|
"@jsquash/png": "3.1.1",
|
|
72
72
|
"@puppeteer/browsers": "2.7.1",
|
|
73
|
-
"@testplane/devtools": "8.32.
|
|
73
|
+
"@testplane/devtools": "8.32.6",
|
|
74
74
|
"@testplane/wdio-protocols": "9.4.7",
|
|
75
|
-
"@testplane/wdio-utils": "9.5.
|
|
76
|
-
"@testplane/webdriverio": "9.5.
|
|
75
|
+
"@testplane/wdio-utils": "9.5.5",
|
|
76
|
+
"@testplane/webdriverio": "9.5.30",
|
|
77
77
|
"@vitest/spy": "2.1.4",
|
|
78
78
|
"buffer-crc32": "1.0.0",
|
|
79
79
|
"chalk": "2.4.2",
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ClickCommandGuard {
|
|
2
|
+
startClick: () => void;
|
|
3
|
+
waitForNavigationCompletion: () => Promise<void>;
|
|
4
|
+
cancelClick: () => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Install one persistent click wrapper because WebdriverIO commands cannot be restored after overwriteCommand.
|
|
8
|
+
* The active guard can still be replaced or disabled when a browser session is reused.
|
|
9
|
+
*/
|
|
10
|
+
export declare const enableClickCommandGuard: (browser: WebdriverIO.Browser, guard: ClickCommandGuard) => (() => void);
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enableClickCommandGuard = void 0;
|
|
4
|
+
const activeGuards = new WeakMap();
|
|
5
|
+
const guardedBrowsers = new WeakSet();
|
|
6
|
+
/**
|
|
7
|
+
* Install one persistent click wrapper because WebdriverIO commands cannot be restored after overwriteCommand.
|
|
8
|
+
* The active guard can still be replaced or disabled when a browser session is reused.
|
|
9
|
+
*/
|
|
10
|
+
const enableClickCommandGuard = (browser, guard) => {
|
|
11
|
+
activeGuards.set(browser, guard);
|
|
12
|
+
const disableGuard = () => {
|
|
13
|
+
if (activeGuards.get(browser) === guard) {
|
|
14
|
+
guard.cancelClick();
|
|
15
|
+
activeGuards.delete(browser);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
if (guardedBrowsers.has(browser)) {
|
|
19
|
+
return disableGuard;
|
|
20
|
+
}
|
|
21
|
+
let guardedClickQueue = Promise.resolve();
|
|
22
|
+
try {
|
|
23
|
+
browser.overwriteCommand("click", async function (originalClick, options) {
|
|
24
|
+
const invocationGuard = activeGuards.get(browser);
|
|
25
|
+
if (!invocationGuard) {
|
|
26
|
+
return originalClick(options);
|
|
27
|
+
}
|
|
28
|
+
const guardedClickPromise = guardedClickQueue.then(async () => {
|
|
29
|
+
if (activeGuards.get(browser) !== invocationGuard) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
invocationGuard.startClick();
|
|
33
|
+
try {
|
|
34
|
+
const result = await originalClick(options);
|
|
35
|
+
await invocationGuard.waitForNavigationCompletion();
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
invocationGuard.cancelClick();
|
|
40
|
+
throw err;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
guardedClickQueue = guardedClickPromise.then(() => undefined, () => undefined);
|
|
44
|
+
return guardedClickPromise;
|
|
45
|
+
}, true);
|
|
46
|
+
guardedBrowsers.add(browser);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
if (activeGuards.get(browser) === guard) {
|
|
50
|
+
activeGuards.delete(browser);
|
|
51
|
+
}
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
return disableGuard;
|
|
55
|
+
};
|
|
56
|
+
exports.enableClickCommandGuard = enableClickCommandGuard;
|
|
57
|
+
//# sourceMappingURL=click-command-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"click-command-guard.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/click-command-guard.ts"],"names":[],"mappings":";;;AAMA,MAAM,YAAY,GAAG,IAAI,OAAO,EAA0C,CAAC;AAC3E,MAAM,eAAe,GAAG,IAAI,OAAO,EAAuB,CAAC;AAE3D;;;GAGG;AACI,MAAM,uBAAuB,GAAG,CAAC,OAA4B,EAAE,KAAwB,EAAgB,EAAE;IAC5G,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAEjC,MAAM,YAAY,GAAG,GAAS,EAAE;QAC5B,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC;YACtC,KAAK,CAAC,WAAW,EAAE,CAAC;YACpB,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,IAAI,iBAAiB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAE1C,IAAI,CAAC;QACD,OAAO,CAAC,gBAAgB,CACpB,OAAO,EACP,KAAK,WAAsC,aAAa,EAAE,OAAO;YAC7D,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAElD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnB,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;YAED,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBAC1D,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,eAAe,EAAE,CAAC;oBAChD,OAAO;gBACX,CAAC;gBAED,eAAe,CAAC,UAAU,EAAE,CAAC;gBAE7B,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;oBAE5C,MAAM,eAAe,CAAC,2BAA2B,EAAE,CAAC;oBAEpD,OAAO,MAAM,CAAC;gBAClB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,eAAe,CAAC,WAAW,EAAE,CAAC;oBAE9B,MAAM,GAAG,CAAC;gBACd,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,iBAAiB,GAAG,mBAAmB,CAAC,IAAI,CACxC,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAClB,CAAC;YAEF,OAAO,mBAAmB,CAAC;QAC/B,CAAC,EACD,IAAI,CACP,CAAC;QACF,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC;YACtC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,GAAG,CAAC;IACd,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC,CAAC;AAjEW,QAAA,uBAAuB,2BAiElC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const CoveragePause: {
|
|
2
|
+
readonly PageStart: "pageStart";
|
|
3
|
+
readonly BfcacheRestore: "bfcacheRestore";
|
|
4
|
+
readonly BeforeUnload: "beforeUnload";
|
|
5
|
+
};
|
|
6
|
+
type CoveragePause = (typeof CoveragePause)[keyof typeof CoveragePause];
|
|
7
|
+
/** Hooks injected into every document and, once, into the already open document. */
|
|
8
|
+
export declare const coverageHooksScripts: {
|
|
9
|
+
newDocument: string;
|
|
10
|
+
currentDocument: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const getCoveragePause: (functionName?: string) => CoveragePause | null;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCoveragePause = exports.coverageHooksScripts = exports.CoveragePause = void 0;
|
|
4
|
+
const PAGE_START_FUNCTION = "__testplane_cdp_coverage_page_start";
|
|
5
|
+
const BFCACHE_RESTORE_FUNCTION = "__testplane_cdp_coverage_bfcache_restore";
|
|
6
|
+
const BEFORE_UNLOAD_FUNCTION = "__testplane_cdp_coverage_snapshot_pause";
|
|
7
|
+
const HOOKS_MARKER = "__testplane_cdp_coverage_hooks_installed";
|
|
8
|
+
exports.CoveragePause = {
|
|
9
|
+
PageStart: "pageStart",
|
|
10
|
+
BfcacheRestore: "bfcacheRestore",
|
|
11
|
+
BeforeUnload: "beforeUnload",
|
|
12
|
+
};
|
|
13
|
+
const createCoverageHooksScript = (pauseAtPageStart) => [
|
|
14
|
+
`if (window.top === window && !window.${HOOKS_MARKER}) {`,
|
|
15
|
+
` Object.defineProperty(window, "${HOOKS_MARKER}", { value: true });`,
|
|
16
|
+
` function ${PAGE_START_FUNCTION}() { debugger; }`,
|
|
17
|
+
` function ${BFCACHE_RESTORE_FUNCTION}() { debugger; }`,
|
|
18
|
+
pauseAtPageStart ? ` ${PAGE_START_FUNCTION}();` : null,
|
|
19
|
+
` window.addEventListener("pageshow", function (e) { if (e.persisted) { ${BFCACHE_RESTORE_FUNCTION}(); } });`,
|
|
20
|
+
` window.addEventListener("beforeunload", function ${BEFORE_UNLOAD_FUNCTION}() { debugger; });`,
|
|
21
|
+
"}",
|
|
22
|
+
]
|
|
23
|
+
.filter(Boolean)
|
|
24
|
+
.join("\n");
|
|
25
|
+
/** Hooks injected into every document and, once, into the already open document. */
|
|
26
|
+
exports.coverageHooksScripts = {
|
|
27
|
+
newDocument: createCoverageHooksScript(true),
|
|
28
|
+
currentDocument: createCoverageHooksScript(false),
|
|
29
|
+
};
|
|
30
|
+
const getCoveragePause = (functionName) => {
|
|
31
|
+
switch (functionName) {
|
|
32
|
+
case PAGE_START_FUNCTION:
|
|
33
|
+
return exports.CoveragePause.PageStart;
|
|
34
|
+
case BFCACHE_RESTORE_FUNCTION:
|
|
35
|
+
return exports.CoveragePause.BfcacheRestore;
|
|
36
|
+
case BEFORE_UNLOAD_FUNCTION:
|
|
37
|
+
return exports.CoveragePause.BeforeUnload;
|
|
38
|
+
default:
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.getCoveragePause = getCoveragePause;
|
|
43
|
+
//# sourceMappingURL=coverage-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-hooks.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/coverage-hooks.ts"],"names":[],"mappings":";;;AAAA,MAAM,mBAAmB,GAAG,qCAAqC,CAAC;AAClE,MAAM,wBAAwB,GAAG,0CAA0C,CAAC;AAC5E,MAAM,sBAAsB,GAAG,yCAAyC,CAAC;AACzE,MAAM,YAAY,GAAG,0CAA0C,CAAC;AAEnD,QAAA,aAAa,GAAG;IACzB,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;CACtB,CAAC;AAIX,MAAM,yBAAyB,GAAG,CAAC,gBAAyB,EAAU,EAAE,CACpE;IACI,wCAAwC,YAAY,KAAK;IACzD,sCAAsC,YAAY,sBAAsB;IACxE,gBAAgB,mBAAmB,kBAAkB;IACrD,gBAAgB,wBAAwB,kBAAkB;IAC1D,gBAAgB,CAAC,CAAC,CAAC,OAAO,mBAAmB,KAAK,CAAC,CAAC,CAAC,IAAI;IACzD,6EAA6E,wBAAwB,WAAW;IAChH,wDAAwD,sBAAsB,oBAAoB;IAClG,GAAG;CACN;KACI,MAAM,CAAC,OAAO,CAAC;KACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAEpB,oFAAoF;AACvE,QAAA,oBAAoB,GAAG;IAChC,WAAW,EAAE,yBAAyB,CAAC,IAAI,CAAC;IAC5C,eAAe,EAAE,yBAAyB,CAAC,KAAK,CAAC;CACpD,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,YAAqB,EAAwB,EAAE;IAC5E,QAAQ,YAAY,EAAE,CAAC;QACnB,KAAK,mBAAmB;YACpB,OAAO,qBAAa,CAAC,SAAS,CAAC;QACnC,KAAK,wBAAwB;YACzB,OAAO,qBAAa,CAAC,cAAc,CAAC;QACxC,KAAK,sBAAsB;YACvB,OAAO,qBAAa,CAAC,YAAY,CAAC;QACtC;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,gBAAgB,oBAW3B"}
|
|
@@ -18,6 +18,8 @@ const events_1 = require("../../../events");
|
|
|
18
18
|
const modes_1 = require("./modes");
|
|
19
19
|
const debug_1 = require("./debug");
|
|
20
20
|
const used_dumps_tracker_1 = require("./used-dumps-tracker");
|
|
21
|
+
const navigation_guard_1 = require("./navigation-guard");
|
|
22
|
+
const coverage_hooks_1 = require("./coverage-hooks");
|
|
21
23
|
/**
|
|
22
24
|
* Called at the end of testplane run
|
|
23
25
|
* Not using "Promise.all" here because all hashes are already calculated and cached at the start
|
|
@@ -116,8 +118,6 @@ const clearUnusedSelectivityDumps = async (config, isRunFailed) => {
|
|
|
116
118
|
}
|
|
117
119
|
};
|
|
118
120
|
exports.clearUnusedSelectivityDumps = clearUnusedSelectivityDumps;
|
|
119
|
-
const testplaneCoverageBreakScriptName = "__testplane_cdp_coverage_snapshot_pause";
|
|
120
|
-
const scriptToEvaluateOnNewDocument = `window.addEventListener("beforeunload", function ${testplaneCoverageBreakScriptName}() {debugger;});`;
|
|
121
121
|
const startSelectivity = async (browser) => {
|
|
122
122
|
const { enabled, compression, sourceRoot, testDependenciesPath, mapDependencyRelativePath, mapSourceMapUrl } = browser.config.selectivity;
|
|
123
123
|
if (!(0, modes_1.selectivityShouldWrite)(enabled) || !browser.publicAPI.isChromium) {
|
|
@@ -142,6 +142,7 @@ const startSelectivity = async (browser) => {
|
|
|
142
142
|
}
|
|
143
143
|
const wdSessionId = browser.sessionId;
|
|
144
144
|
const cdpSessionId = await cdp.target.attachToTarget(cdpTargetId).then(r => r.sessionId);
|
|
145
|
+
const pageLoadStrategy = browser.publicAPI.capabilities?.pageLoadStrategy ?? "normal";
|
|
145
146
|
const cssSelectivity = new css_selectivity_1.CSSSelectivity(cdp, cdpSessionId, wdSessionId, sourceRoot, mapSourceMapUrl);
|
|
146
147
|
const jsSelectivity = new js_selectivity_1.JSSelectivity(cdp, cdpSessionId, sourceRoot, mapSourceMapUrl);
|
|
147
148
|
await Promise.all([
|
|
@@ -160,34 +161,92 @@ const startSelectivity = async (browser) => {
|
|
|
160
161
|
});
|
|
161
162
|
let pageSwitchPromise = Promise.resolve();
|
|
162
163
|
let isSelectivityStopped = false;
|
|
164
|
+
// A failure to process coverage means the test's dependencies would be incomplete. Missing a dependency is worse
|
|
165
|
+
// than failing the test (an incomplete dump silently under-runs later), so we remember the error and rethrow it
|
|
166
|
+
// from stopSelectivity — but still resume the renderer so the browser is never left paused.
|
|
167
|
+
let pageSwitchError = null;
|
|
168
|
+
let clickNavigationGuard = null;
|
|
169
|
+
const resume = async () => {
|
|
170
|
+
await cdp.debugger.resume(cdpSessionId).catch(() => { });
|
|
171
|
+
};
|
|
163
172
|
const debuggerPausedFn = ({ callFrames }, eventCdpSessionId) => {
|
|
164
173
|
if (eventCdpSessionId !== cdpSessionId) {
|
|
165
174
|
return;
|
|
166
175
|
}
|
|
167
|
-
|
|
168
|
-
|
|
176
|
+
const coveragePause = (0, coverage_hooks_1.getCoveragePause)(callFrames[0]?.functionName);
|
|
177
|
+
const isBfcacheRestoreForClick = coveragePause === coverage_hooks_1.CoveragePause.BfcacheRestore && clickNavigationGuard?.onBfcacheRestorePause() === true;
|
|
178
|
+
if (coveragePause === coverage_hooks_1.CoveragePause.BeforeUnload && !isSelectivityStopped) {
|
|
179
|
+
// The injected top-frame beforeunload hook is a stable, synchronous navigation-intent signal. It avoids
|
|
180
|
+
// deprecated and experimental Page navigation lifecycle events.
|
|
181
|
+
clickNavigationGuard?.onBeforeUnloadPause();
|
|
182
|
+
}
|
|
183
|
+
if (isSelectivityStopped || !coveragePause) {
|
|
184
|
+
void resume();
|
|
169
185
|
return;
|
|
170
186
|
}
|
|
171
|
-
pageSwitchPromise = pageSwitchPromise.finally(() =>
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
187
|
+
pageSwitchPromise = pageSwitchPromise.finally(async () => {
|
|
188
|
+
try {
|
|
189
|
+
// "beforeunload": leaving page still alive — snapshot+resolve it (captures it before a cross-process swap).
|
|
190
|
+
// "page start" / bfcache restore: previous page done, next not started — resolve its tail, then reset
|
|
191
|
+
// coverage and clear the script maps so the next page starts with a clean window and id namespace.
|
|
192
|
+
const action = coveragePause === coverage_hooks_1.CoveragePause.BeforeUnload
|
|
193
|
+
? Promise.all([cssSelectivity.takeCoverageSnapshot(), jsSelectivity.takeCoverageSnapshot()])
|
|
194
|
+
: jsSelectivity.flushPage();
|
|
195
|
+
await action;
|
|
196
|
+
}
|
|
197
|
+
catch (err) {
|
|
198
|
+
pageSwitchError ||= err instanceof Error ? err : new Error(String(err));
|
|
199
|
+
}
|
|
200
|
+
finally {
|
|
201
|
+
await resume();
|
|
202
|
+
// pageshow.persisted is emitted after the document was restored. It is the completion signal for a
|
|
203
|
+
// BFCache navigation because a restored page does not emit a new DOMContentLoaded/load event, and
|
|
204
|
+
// Page.frameNavigated delivery is not required for this injected stable marker.
|
|
205
|
+
if (isBfcacheRestoreForClick) {
|
|
206
|
+
clickNavigationGuard?.completeBfcacheRestore();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
});
|
|
178
210
|
};
|
|
179
211
|
cdp.debugger.on("paused", debuggerPausedFn);
|
|
180
|
-
|
|
212
|
+
try {
|
|
213
|
+
await Promise.all([
|
|
214
|
+
cdp.page.addScriptToEvaluateOnNewDocument(cdpSessionId, { source: coverage_hooks_1.coverageHooksScripts.newDocument }),
|
|
215
|
+
cdp.runtime
|
|
216
|
+
.evaluate(cdpSessionId, { expression: coverage_hooks_1.coverageHooksScripts.currentDocument })
|
|
217
|
+
.catch(() => undefined),
|
|
218
|
+
]);
|
|
219
|
+
if (pageLoadStrategy !== "none") {
|
|
220
|
+
clickNavigationGuard = (0, navigation_guard_1.createClickNavigationGuard)({
|
|
221
|
+
browser: browser.publicAPI,
|
|
222
|
+
cdp,
|
|
223
|
+
cdpSessionId,
|
|
224
|
+
pageLoadStrategy,
|
|
225
|
+
pageLoadTimeout: browser.config.pageLoadTimeout,
|
|
226
|
+
waitForPageSwitch: () => pageSwitchPromise,
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
catch (err) {
|
|
231
|
+
cdp.debugger.off("paused", debuggerPausedFn);
|
|
232
|
+
await Promise.allSettled([cssSelectivity.stop(true), jsSelectivity.stop(true)]);
|
|
233
|
+
await cdp.target.detachFromTarget(cdpSessionId).catch(() => { });
|
|
234
|
+
throw err;
|
|
235
|
+
}
|
|
181
236
|
/** @param drop only performs cleanup without writing anything. Should be "true" if test is failed */
|
|
182
237
|
return async function stopSelectivity(test, drop) {
|
|
183
238
|
isSelectivityStopped = true;
|
|
184
239
|
await pageSwitchPromise;
|
|
240
|
+
clickNavigationGuard?.dispose();
|
|
185
241
|
const [cssDependenciesPromise, jsDependenciesPromise] = await Promise.allSettled([
|
|
186
242
|
cssSelectivity.stop(drop),
|
|
187
243
|
jsSelectivity.stop(drop),
|
|
188
244
|
]);
|
|
189
245
|
cdp.debugger.off("paused", debuggerPausedFn);
|
|
190
246
|
cdp.target.detachFromTarget(cdpSessionId).catch(() => { });
|
|
247
|
+
if (!drop && pageSwitchError) {
|
|
248
|
+
throw pageSwitchError;
|
|
249
|
+
}
|
|
191
250
|
if (jsDependenciesPromise.status === "rejected") {
|
|
192
251
|
throw jsDependenciesPromise.reason;
|
|
193
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,60 @@
|
|
|
1
1
|
import type { CDP } from "..";
|
|
2
2
|
import type { CDPSessionId } from "../types";
|
|
3
3
|
import type { SelectivityMapSourceMapUrlFn } from "../../../config/types";
|
|
4
|
+
/**
|
|
5
|
+
* CDP "scriptId" is NOT stable across a test: it is reused for different scripts over time (a cross-process
|
|
6
|
+
* navigation restarts the counter; bfcache restore re-issues the previous document's ids; freed ids get reassigned
|
|
7
|
+
* to new scripts). "Profiler.takePreciseCoverage" reports only the raw "scriptId", with no way to tell which script
|
|
8
|
+
* a given id currently means. Therefore coverage can only be attributed correctly if it is resolved WHILE the
|
|
9
|
+
* scripts are still live and the "scriptId -> source" mapping is current.
|
|
10
|
+
*
|
|
11
|
+
* The orchestration in index.ts pauses the renderer at two boundaries and drives this class:
|
|
12
|
+
* - on "beforeunload": takeCoverageSnapshot() — resolve the leaving page while its isolate is still alive
|
|
13
|
+
* (required for cross-process navigation, where the old isolate is gone by the time the next document starts);
|
|
14
|
+
* - at the new document start (and bfcache "pageshow"): flushPage() — resolve whatever is left of the previous
|
|
15
|
+
* page (same-process, incl. code that ran during unload), then RESET precise coverage and CLEAR the script maps
|
|
16
|
+
* so the next page parses into an empty map and its coverage window cannot mix with the previous page's.
|
|
17
|
+
* Because the maps are cleared at every page boundary, plain "scriptId" keys are unambiguous within a page.
|
|
18
|
+
*/
|
|
4
19
|
export declare class JSSelectivity {
|
|
5
20
|
private readonly _cdp;
|
|
6
21
|
private readonly _sessionId;
|
|
7
22
|
private readonly _sourceRoot;
|
|
8
23
|
private readonly _mapSourceMapUrl;
|
|
9
24
|
private _debuggerOnScriptParsedFn;
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private
|
|
13
|
-
private
|
|
14
|
-
|
|
25
|
+
private _scriptsSource;
|
|
26
|
+
private _scriptsSourceMap;
|
|
27
|
+
private _scriptIdToSourceUrl;
|
|
28
|
+
private _scriptIdToSourceMapUrl;
|
|
29
|
+
/** Last seen content hash per "scriptId" — used to detect a "scriptId" reused for a different script */
|
|
30
|
+
private _scriptIdToHash;
|
|
31
|
+
/** Source files collected across all pages of the current test */
|
|
32
|
+
private readonly _dependingSourceFiles;
|
|
15
33
|
constructor(cdp: CDP, sessionId: CDPSessionId, sourceRoot: string, mapSourceMapUrl: SelectivityMapSourceMapUrlFn | null);
|
|
34
|
+
private _loadScriptSource;
|
|
16
35
|
private _processScript;
|
|
17
36
|
private _ensureScriptsAreLoading;
|
|
18
37
|
private _waitForLoadingScripts;
|
|
38
|
+
/**
|
|
39
|
+
* Resolves the given coverage into original source files and accumulates them into "_dependingSourceFiles".
|
|
40
|
+
* Must run while the "scriptId -> source" maps still describe the scripts the coverage was taken from
|
|
41
|
+
* (i.e. before the page is navigated away and the maps are cleared).
|
|
42
|
+
*/
|
|
43
|
+
private _resolveCoverageToDeps;
|
|
19
44
|
start(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Called on "beforeunload", while the leaving page is still alive (its isolate not yet destroyed). Resolves the
|
|
47
|
+
* page's coverage into dependencies. Does NOT reset coverage or clear maps — that happens later, at the next
|
|
48
|
+
* page boundary (flushPage), once the leaving page has fully finished executing.
|
|
49
|
+
*/
|
|
20
50
|
takeCoverageSnapshot(): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Called at a page boundary — the new document's start, and on bfcache "pageshow" — while the renderer is paused
|
|
53
|
+
* before the incoming page's scripts run. Resolves whatever is left of the previous page (same-process code that
|
|
54
|
+
* ran during unload), then RESETS precise coverage and CLEARS the script maps. This guarantees the next page's
|
|
55
|
+
* coverage window and "scriptId" namespace start empty, so reused ids cannot be mistaken for the previous page's.
|
|
56
|
+
*/
|
|
57
|
+
flushPage(): Promise<void>;
|
|
21
58
|
/** @param drop only performs cleanup without providing actual deps. Should be "true" if test is failed */
|
|
22
59
|
stop(drop?: boolean): Promise<Set<string> | null>;
|
|
23
60
|
}
|