@checkly/playwright-core 1.48.22-beta.1 → 1.48.22
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/lib/generated/clockSource.js +1 -2
- package/lib/generated/consoleApiSource.js +1 -2
- package/lib/generated/injectedScriptSource.js +1 -2
- package/lib/generated/pollingRecorderSource.js +1 -2
- package/lib/generated/utilityScriptSource.js +1 -2
- package/lib/generated/webSocketMockSource.js +1 -2
- package/lib/vite/{traceViewer/assets/codeMirrorModule-xvopPhZ4.js → recorder/assets/codeMirrorModule-d0KhC1qL.js} +1 -1
- package/lib/vite/recorder/assets/codeMirrorModule-ez37Vkbh.css +1 -0
- package/lib/vite/recorder/assets/index-BW-aOBcL.css +1 -0
- package/lib/vite/recorder/assets/index-Bxxcmxlu.js +42 -0
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-pBPtArIT.js +24 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-tzBrK1V4.js +24 -0
- package/lib/vite/traceViewer/assets/{inspectorTab-wfvwpMHs.js → inspectorTab-BuJ3wAX_.js} +3 -3
- package/lib/vite/traceViewer/assets/{inspectorTab-BPzhNk9r.js → inspectorTab-Soeeuvzv.js} +3 -3
- package/lib/vite/traceViewer/assets/{workbench-DLv_q9ji.js → workbench-DdmJ9AJV.js} +1 -1
- package/lib/vite/traceViewer/assets/{workbench-LKskf2Iy.js → workbench-lypYlf00.js} +1 -1
- package/lib/vite/traceViewer/{embedded.BIubxTi3.js → embedded.BkvOrz5Z.js} +1 -1
- package/lib/vite/traceViewer/{embedded.BXYl5zRv.js → embedded.DInvAijy.js} +1 -1
- package/lib/vite/traceViewer/embedded.html +6 -6
- package/lib/vite/traceViewer/{index.DPD22sZn.js → index.Dha3cgqs.js} +1 -1
- package/lib/vite/traceViewer/{index.DZkJsFod.js → index._Iolt-uE.js} +1 -1
- package/lib/vite/traceViewer/index.html +7 -7
- package/lib/vite/traceViewer/{recorder.BVExlUUk.js → recorder.DNMfnSiu.js} +1 -1
- package/lib/vite/traceViewer/{recorder.BaRuS6Pc.js → recorder.DTSaNaly.js} +1 -1
- package/lib/vite/traceViewer/recorder.html +4 -4
- package/lib/vite/traceViewer/{uiMode.DjTS7tqC.js → uiMode.BM7yhjzl.js} +1 -1
- package/lib/vite/traceViewer/{uiMode.B11wexdJ.js → uiMode.Cr1tvTWS.js} +1 -1
- package/lib/vite/traceViewer/uiMode.html +7 -7
- package/package.json +1 -1
- package/lib/cli/cli.js +0 -61
- package/lib/common/debugLogger.js +0 -90
- package/lib/generated/recorderSource.js +0 -7
- package/lib/server/recorder/codeGenerator.js +0 -154
- package/lib/server/recorder/csharp.js +0 -311
- package/lib/server/recorder/java.js +0 -217
- package/lib/server/recorder/javascript.js +0 -230
- package/lib/server/recorder/jsonl.js +0 -48
- package/lib/server/recorder/language.js +0 -45
- package/lib/server/recorder/python.js +0 -276
- package/lib/server/recorder/recorderActions.js +0 -6
- package/lib/server/recorder/utils.js +0 -46
- package/lib/utils/glob.js +0 -84
- package/lib/utils/mimeType.js +0 -30
- package/lib/vite/recorder/assets/codeMirrorModule--bQcPrZ2.js +0 -16437
- package/lib/vite/recorder/assets/codeMirrorModule-Cy8X9Wtw.css +0 -344
- package/lib/vite/recorder/assets/index-BMeslH8X.js +0 -9946
- package/lib/vite/recorder/assets/index-BjXmTggo.css +0 -2515
- package/lib/vite/traceViewer/assets/codeMirrorModule-75b0ca4f.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-BTYWvxEC.js +0 -16437
- package/lib/vite/traceViewer/assets/codeMirrorModule-CBokkFJ2.js +0 -16431
- package/lib/vite/traceViewer/assets/codeMirrorModule-CNHvVrFd.js +0 -16437
- package/lib/vite/traceViewer/assets/codeMirrorModule-CpGx_S8D.js +0 -16443
- package/lib/vite/traceViewer/assets/codeMirrorModule-DGE2kpkE.js +0 -16443
- package/lib/vite/traceViewer/assets/codeMirrorModule-DblsdhjA.js +0 -16449
- package/lib/vite/traceViewer/assets/codeMirrorModule-DtXZtbmO.js +0 -16437
- package/lib/vite/traceViewer/assets/codeMirrorModule-SomGa-Da.js +0 -16443
- package/lib/vite/traceViewer/assets/codeMirrorModule-c1454a2e.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-c9bb9834.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-cc2329e4.js +0 -15593
- package/lib/vite/traceViewer/assets/codeMirrorModule-d2cc7db0.js +0 -15579
- package/lib/vite/traceViewer/assets/codeMirrorModule-da915a35.js +0 -15586
- package/lib/vite/traceViewer/assets/codeMirrorModule-f03b1a3e.js +0 -15579
- package/lib/vite/traceViewer/assets/codeMirrorModule-f333a775.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-lDjkI8Ax.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-uWDlVSQz.js +0 -15585
- package/lib/vite/traceViewer/assets/codeMirrorModule-yboVpgC0.js +0 -15592
- package/lib/vite/traceViewer/assets/inspectorTab-B4ynvyY9.js +0 -17361
- package/lib/vite/traceViewer/assets/inspectorTab-BB2Bm-wy.js +0 -17361
- package/lib/vite/traceViewer/assets/inspectorTab-BqBvUFio.js +0 -17361
- package/lib/vite/traceViewer/assets/inspectorTab-CHcHvp_a.js +0 -17361
- package/lib/vite/traceViewer/assets/inspectorTab-C_OTuI8x.js +0 -17361
- package/lib/vite/traceViewer/assets/inspectorTab-DOc4D3cX.js +0 -17361
- package/lib/vite/traceViewer/assets/inspectorTab-Dw0Gnh1T.js +0 -17361
- package/lib/vite/traceViewer/assets/inspectorTab-Ywa000c9.js +0 -17361
- package/lib/vite/traceViewer/assets/testServerConnection-D-tXL3sj.js +0 -224
- package/lib/vite/traceViewer/assets/workbench-CROk6Fcc.js +0 -1473
- package/lib/vite/traceViewer/assets/workbench-CWtpwfKK.js +0 -1473
- package/lib/vite/traceViewer/assets/workbench-CfXOj3eT.js +0 -1473
- package/lib/vite/traceViewer/assets/workbench-D9CTkv-4.js +0 -1473
- package/lib/vite/traceViewer/assets/workbench-DNolpp3y.js +0 -1473
- package/lib/vite/traceViewer/assets/workbench-DUc2iD0P.js +0 -1473
- package/lib/vite/traceViewer/assets/workbench-DjoIOtwK.js +0 -1473
- package/lib/vite/traceViewer/assets/workbench-M-Dh_RgU.js +0 -1473
- package/lib/vite/traceViewer/assets/workbench-dnZM5a7x.js +0 -1473
- package/lib/vite/traceViewer/assets/wsPort-54626118.js +0 -18361
- package/lib/vite/traceViewer/assets/wsPort-57f274c6.js +0 -18361
- package/lib/vite/traceViewer/assets/wsPort-762c6840.js +0 -64
- package/lib/vite/traceViewer/assets/wsPort-85286e61.js +0 -18361
- package/lib/vite/traceViewer/assets/wsPort-98e00a94.js +0 -64
- package/lib/vite/traceViewer/assets/wsPort-CAXygIGt.js +0 -18540
- package/lib/vite/traceViewer/assets/wsPort-cc0077b5.js +0 -18542
- package/lib/vite/traceViewer/assets/wsPort-edfeeb7d.js +0 -64
- package/lib/vite/traceViewer/assets/wsPort-ee2830d7.js +0 -64
- package/lib/vite/traceViewer/assets/wsPort-peeLnQhT.js +0 -18564
- package/lib/vite/traceViewer/assets/xtermModule-443332e6.js +0 -9
- package/lib/vite/traceViewer/assets/xtermModule-60687b6b.js +0 -6410
- package/lib/vite/traceViewer/assets/xtermModule-DZP0glxx.js +0 -5982
- package/lib/vite/traceViewer/assets/xtermModule-_6TC5FYT.js +0 -6529
- package/lib/vite/traceViewer/codeMirrorModule.5d0f417c.css +0 -1
- package/lib/vite/traceViewer/codeMirrorModule.Cy8X9Wtw.css +0 -344
- package/lib/vite/traceViewer/codeMirrorModule.eb494ea9.css +0 -344
- package/lib/vite/traceViewer/codeMirrorModule.svF_VrcJ.css +0 -344
- package/lib/vite/traceViewer/codicon.79f233d0.ttf +0 -0
- package/lib/vite/traceViewer/codicon.zGuYmc9o.ttf +0 -0
- package/lib/vite/traceViewer/embedded.6N1v7bZ1.js +0 -106
- package/lib/vite/traceViewer/embedded.BOw0jX78.js +0 -106
- package/lib/vite/traceViewer/embedded.BaqdbLsy.js +0 -106
- package/lib/vite/traceViewer/embedded.CHH7D63q.js +0 -106
- package/lib/vite/traceViewer/embedded.CwwTDBzP.js +0 -106
- package/lib/vite/traceViewer/embedded.DeCrOtlO.js +0 -106
- package/lib/vite/traceViewer/embedded.DjZq4InJ.css +0 -68
- package/lib/vite/traceViewer/embedded.DnD_eIZU.js +0 -106
- package/lib/vite/traceViewer/embedded.i_k4ceMJ.js +0 -106
- package/lib/vite/traceViewer/embedded.ymLJ2mBS.js +0 -106
- package/lib/vite/traceViewer/index.1a1fe659.css +0 -1
- package/lib/vite/traceViewer/index.1b525c1c.js +0 -181
- package/lib/vite/traceViewer/index.55e65778.js +0 -181
- package/lib/vite/traceViewer/index.5mge2rY_.css +0 -124
- package/lib/vite/traceViewer/index.5nqVcfiC.js +0 -180
- package/lib/vite/traceViewer/index.5ooko4n7.js +0 -180
- package/lib/vite/traceViewer/index.76e9f312.css +0 -124
- package/lib/vite/traceViewer/index.Bfh46hDK.js +0 -197
- package/lib/vite/traceViewer/index.Bugo2TbS.js +0 -197
- package/lib/vite/traceViewer/index.BzvnAP7t.js +0 -197
- package/lib/vite/traceViewer/index.C8ZWP1Qw.js +0 -197
- package/lib/vite/traceViewer/index.CM_h9lHr.js +0 -197
- package/lib/vite/traceViewer/index.CY13pBr8.js +0 -197
- package/lib/vite/traceViewer/index.DW2ZzZfL.js +0 -197
- package/lib/vite/traceViewer/index.DblJtEW_.js +0 -197
- package/lib/vite/traceViewer/index.QanXxRUb.css +0 -131
- package/lib/vite/traceViewer/index.UtHmfPiA.js +0 -197
- package/lib/vite/traceViewer/index.a265fbdb.js +0 -2
- package/lib/vite/traceViewer/index.c9f6fa8f.js +0 -2
- package/lib/vite/traceViewer/index.d86e70ca.js +0 -181
- package/lib/vite/traceViewer/index.decad628.js +0 -2
- package/lib/vite/traceViewer/index.e8730524.js +0 -181
- package/lib/vite/traceViewer/index.ed9a3c58.js +0 -2
- package/lib/vite/traceViewer/inspectorTab.DGJWXOSd.css +0 -3145
- package/lib/vite/traceViewer/recorder.3Xfrl_zV.js +0 -551
- package/lib/vite/traceViewer/recorder.B76AH9PE.js +0 -551
- package/lib/vite/traceViewer/recorder.BHq8OXiu.js +0 -551
- package/lib/vite/traceViewer/recorder.BWH6blRw.js +0 -551
- package/lib/vite/traceViewer/recorder.DBDpiNOK.css +0 -15
- package/lib/vite/traceViewer/recorder.Db1aK_DY.js +0 -551
- package/lib/vite/traceViewer/recorder.Fwf59ZKh.js +0 -551
- package/lib/vite/traceViewer/recorder.uj3cfoMf.js +0 -551
- package/lib/vite/traceViewer/recorder.zV_xPHM4.js +0 -551
- package/lib/vite/traceViewer/uiMode.08ab2d90.js +0 -4
- package/lib/vite/traceViewer/uiMode.0d0d667b.js +0 -4
- package/lib/vite/traceViewer/uiMode.216233d5.js +0 -1484
- package/lib/vite/traceViewer/uiMode.2c31018f.css +0 -1324
- package/lib/vite/traceViewer/uiMode.3ff70f7d.js +0 -4
- package/lib/vite/traceViewer/uiMode.4d0a45af.js +0 -1484
- package/lib/vite/traceViewer/uiMode.66eb0ce2.js +0 -1484
- package/lib/vite/traceViewer/uiMode.8b41a49d.css +0 -1
- package/lib/vite/traceViewer/uiMode.8d080c01.js +0 -1486
- package/lib/vite/traceViewer/uiMode.BH2Nj2h0.js +0 -1724
- package/lib/vite/traceViewer/uiMode.BKrDfnAk.js +0 -1725
- package/lib/vite/traceViewer/uiMode.BMYUvsRh.js +0 -1725
- package/lib/vite/traceViewer/uiMode.BVpTBGoe.js +0 -1724
- package/lib/vite/traceViewer/uiMode.BWhJCEE9.js +0 -1725
- package/lib/vite/traceViewer/uiMode.Bg9fACTB.js +0 -1725
- package/lib/vite/traceViewer/uiMode.CBRJkC_K.js +0 -1724
- package/lib/vite/traceViewer/uiMode.CYBsUhm_.js +0 -1724
- package/lib/vite/traceViewer/uiMode.DCSdxlAq.js +0 -1724
- package/lib/vite/traceViewer/uiMode.DRmgrHSk.css +0 -1462
- package/lib/vite/traceViewer/uiMode.DtleKuGI.js +0 -1724
- package/lib/vite/traceViewer/uiMode.UamAvOMX.js +0 -1725
- package/lib/vite/traceViewer/uiMode._Kp3dUXk.js +0 -1724
- package/lib/vite/traceViewer/uiMode.bBcXYWNF.js +0 -1725
- package/lib/vite/traceViewer/uiMode.ca6ec898.js +0 -4
- package/lib/vite/traceViewer/uiMode.e-PLonGl.js +0 -1490
- package/lib/vite/traceViewer/uiMode.e_-GuqEi.js +0 -1725
- package/lib/vite/traceViewer/uiMode.f1YADWIl.js +0 -1724
- package/lib/vite/traceViewer/uiMode.kHsXCfV8.js +0 -1490
- package/lib/vite/traceViewer/uiMode.myF_lyEH.js +0 -1724
- package/lib/vite/traceViewer/uiMode.xvJHbkzl.css +0 -1324
- package/lib/vite/traceViewer/workbench.9Es1K_T7.css +0 -549
- package/lib/vite/traceViewer/workbench.BQNDbcQ0.css +0 -550
- package/lib/vite/traceViewer/wsPort.162042f9.css +0 -3450
- package/lib/vite/traceViewer/wsPort.997c92cf.css +0 -3513
- package/lib/vite/traceViewer/wsPort.9c9a6767.css +0 -1
- package/lib/vite/traceViewer/wsPort.p5jUwABW.css +0 -3450
- package/lib/vite/traceViewer/xtermModule.125f4259.css +0 -191
- package/lib/vite/traceViewer/xtermModule.4oRVGWQ-.css +0 -209
- package/lib/vite/traceViewer/xtermModule.6428296b.css +0 -32
- package/lib/vite/traceViewer/xtermModule.OKEVRlkP.css +0 -209
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import { M as MultiTraceModel, r as reactExports, c as connect, j as jsxs, a as jsx, T as ToolbarButton, t as toggleTheme, W as Workbench, b as applyTheme, d as reactDomExports } from "./assets/wsPort-85286e61.js";
|
|
2
|
-
const workbenchLoader = "";
|
|
3
|
-
const WorkbenchLoader = () => {
|
|
4
|
-
const [isServer, setIsServer] = reactExports.useState(false);
|
|
5
|
-
const [traceURLs, setTraceURLs] = reactExports.useState([]);
|
|
6
|
-
const [uploadedTraceNames, setUploadedTraceNames] = reactExports.useState([]);
|
|
7
|
-
const [model, setModel] = reactExports.useState(emptyModel);
|
|
8
|
-
const [progress, setProgress] = reactExports.useState({ done: 0, total: 0 });
|
|
9
|
-
const [dragOver, setDragOver] = reactExports.useState(false);
|
|
10
|
-
const [processingErrorMessage, setProcessingErrorMessage] = reactExports.useState(null);
|
|
11
|
-
const [fileForLocalModeError, setFileForLocalModeError] = reactExports.useState(null);
|
|
12
|
-
const processTraceFiles = reactExports.useCallback((files) => {
|
|
13
|
-
const blobUrls = [];
|
|
14
|
-
const fileNames = [];
|
|
15
|
-
const url = new URL(window.location.href);
|
|
16
|
-
for (let i = 0; i < files.length; i++) {
|
|
17
|
-
const file = files.item(i);
|
|
18
|
-
if (!file)
|
|
19
|
-
continue;
|
|
20
|
-
const blobTraceURL = URL.createObjectURL(file);
|
|
21
|
-
blobUrls.push(blobTraceURL);
|
|
22
|
-
fileNames.push(file.name);
|
|
23
|
-
url.searchParams.append("trace", blobTraceURL);
|
|
24
|
-
url.searchParams.append("traceFileName", file.name);
|
|
25
|
-
}
|
|
26
|
-
const href = url.toString();
|
|
27
|
-
window.history.pushState({}, "", href);
|
|
28
|
-
setTraceURLs(blobUrls);
|
|
29
|
-
setUploadedTraceNames(fileNames);
|
|
30
|
-
setDragOver(false);
|
|
31
|
-
setProcessingErrorMessage(null);
|
|
32
|
-
}, []);
|
|
33
|
-
const handleDropEvent = reactExports.useCallback((event) => {
|
|
34
|
-
event.preventDefault();
|
|
35
|
-
processTraceFiles(event.dataTransfer.files);
|
|
36
|
-
}, [processTraceFiles]);
|
|
37
|
-
const handleFileInputChange = reactExports.useCallback((event) => {
|
|
38
|
-
event.preventDefault();
|
|
39
|
-
if (!event.target.files)
|
|
40
|
-
return;
|
|
41
|
-
processTraceFiles(event.target.files);
|
|
42
|
-
}, [processTraceFiles]);
|
|
43
|
-
reactExports.useEffect(() => {
|
|
44
|
-
const params = new URL(window.location.href).searchParams;
|
|
45
|
-
const newTraceURLs = params.getAll("trace");
|
|
46
|
-
setIsServer(params.has("isServer"));
|
|
47
|
-
for (const url of newTraceURLs) {
|
|
48
|
-
if (url.startsWith("file:")) {
|
|
49
|
-
setFileForLocalModeError(url || null);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
if (params.has("isServer")) {
|
|
54
|
-
connect({
|
|
55
|
-
onEvent(method, params2) {
|
|
56
|
-
if (method === "loadTrace") {
|
|
57
|
-
setTraceURLs(params2.url ? [params2.url] : []);
|
|
58
|
-
setDragOver(false);
|
|
59
|
-
setProcessingErrorMessage(null);
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
onClose() {
|
|
63
|
-
}
|
|
64
|
-
}).then((sendMessage) => {
|
|
65
|
-
sendMessage("ready");
|
|
66
|
-
});
|
|
67
|
-
} else if (!newTraceURLs.some((url) => url.startsWith("blob:"))) {
|
|
68
|
-
setTraceURLs(newTraceURLs);
|
|
69
|
-
}
|
|
70
|
-
}, []);
|
|
71
|
-
reactExports.useEffect(() => {
|
|
72
|
-
(async () => {
|
|
73
|
-
if (traceURLs.length) {
|
|
74
|
-
const swListener = (event) => {
|
|
75
|
-
if (event.data.method === "progress")
|
|
76
|
-
setProgress(event.data.params);
|
|
77
|
-
};
|
|
78
|
-
navigator.serviceWorker.addEventListener("message", swListener);
|
|
79
|
-
setProgress({ done: 0, total: 1 });
|
|
80
|
-
const contextEntries = [];
|
|
81
|
-
for (let i = 0; i < traceURLs.length; i++) {
|
|
82
|
-
const url = traceURLs[i];
|
|
83
|
-
const params = new URLSearchParams();
|
|
84
|
-
params.set("trace", url);
|
|
85
|
-
if (uploadedTraceNames.length)
|
|
86
|
-
params.set("traceFileName", uploadedTraceNames[i]);
|
|
87
|
-
const response = await fetch(`contexts?${params.toString()}`);
|
|
88
|
-
if (!response.ok) {
|
|
89
|
-
if (!isServer)
|
|
90
|
-
setTraceURLs([]);
|
|
91
|
-
setProcessingErrorMessage((await response.json()).error);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
contextEntries.push(...await response.json());
|
|
95
|
-
}
|
|
96
|
-
navigator.serviceWorker.removeEventListener("message", swListener);
|
|
97
|
-
const model2 = new MultiTraceModel(contextEntries);
|
|
98
|
-
setProgress({ done: 0, total: 0 });
|
|
99
|
-
setModel(model2);
|
|
100
|
-
} else {
|
|
101
|
-
setModel(emptyModel);
|
|
102
|
-
}
|
|
103
|
-
})();
|
|
104
|
-
}, [isServer, traceURLs, uploadedTraceNames]);
|
|
105
|
-
return /* @__PURE__ */ jsxs("div", { className: "vbox workbench-loader", onDragOver: (event) => {
|
|
106
|
-
event.preventDefault();
|
|
107
|
-
setDragOver(true);
|
|
108
|
-
}, children: [
|
|
109
|
-
/* @__PURE__ */ jsxs("div", { className: "hbox header", children: [
|
|
110
|
-
/* @__PURE__ */ jsx("div", { className: "logo", children: /* @__PURE__ */ jsx("img", { src: "playwright-logo.svg", alt: "Playwright logo" }) }),
|
|
111
|
-
/* @__PURE__ */ jsx("div", { className: "product", children: "Playwright" }),
|
|
112
|
-
model.title && /* @__PURE__ */ jsx("div", { className: "title", children: model.title }),
|
|
113
|
-
/* @__PURE__ */ jsx("div", { className: "spacer" }),
|
|
114
|
-
/* @__PURE__ */ jsx(ToolbarButton, { icon: "color-mode", title: "Toggle color mode", toggled: false, onClick: () => toggleTheme() })
|
|
115
|
-
] }),
|
|
116
|
-
/* @__PURE__ */ jsx("div", { className: "progress", children: /* @__PURE__ */ jsx("div", { className: "inner-progress", style: { width: progress.total ? 100 * progress.done / progress.total + "%" : 0 } }) }),
|
|
117
|
-
/* @__PURE__ */ jsx(Workbench, { model }),
|
|
118
|
-
fileForLocalModeError && /* @__PURE__ */ jsxs("div", { className: "drop-target", children: [
|
|
119
|
-
/* @__PURE__ */ jsx("div", { children: "Trace Viewer uses Service Workers to show traces. To view trace:" }),
|
|
120
|
-
/* @__PURE__ */ jsxs("div", { style: { paddingTop: 20 }, children: [
|
|
121
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
122
|
-
"1. Click ",
|
|
123
|
-
/* @__PURE__ */ jsx("a", { href: fileForLocalModeError, children: "here" }),
|
|
124
|
-
" to put your trace into the download shelf"
|
|
125
|
-
] }),
|
|
126
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
127
|
-
"2. Go to ",
|
|
128
|
-
/* @__PURE__ */ jsx("a", { href: "https://trace.playwright.dev", children: "trace.playwright.dev" })
|
|
129
|
-
] }),
|
|
130
|
-
/* @__PURE__ */ jsx("div", { children: "3. Drop the trace from the download shelf into the page" })
|
|
131
|
-
] })
|
|
132
|
-
] }),
|
|
133
|
-
!isServer && !dragOver && !fileForLocalModeError && (!traceURLs.length || processingErrorMessage) && /* @__PURE__ */ jsxs("div", { className: "drop-target", children: [
|
|
134
|
-
/* @__PURE__ */ jsx("div", { className: "processing-error", children: processingErrorMessage }),
|
|
135
|
-
/* @__PURE__ */ jsx("div", { className: "title", children: "Drop Playwright Trace to load" }),
|
|
136
|
-
/* @__PURE__ */ jsx("div", { children: "or" }),
|
|
137
|
-
/* @__PURE__ */ jsx("button", { onClick: () => {
|
|
138
|
-
const input = document.createElement("input");
|
|
139
|
-
input.type = "file";
|
|
140
|
-
input.multiple = true;
|
|
141
|
-
input.click();
|
|
142
|
-
input.addEventListener("change", (e) => handleFileInputChange(e));
|
|
143
|
-
}, children: "Select file(s)" }),
|
|
144
|
-
/* @__PURE__ */ jsx("div", { style: { maxWidth: 400 }, children: "Playwright Trace Viewer is a Progressive Web App, it does not send your trace anywhere, it opens it locally." })
|
|
145
|
-
] }),
|
|
146
|
-
isServer && !traceURLs.length && /* @__PURE__ */ jsx("div", { className: "drop-target", children: /* @__PURE__ */ jsx("div", { className: "title", children: "Select test to see the trace" }) }),
|
|
147
|
-
dragOver && /* @__PURE__ */ jsx(
|
|
148
|
-
"div",
|
|
149
|
-
{
|
|
150
|
-
className: "drop-target",
|
|
151
|
-
onDragLeave: () => {
|
|
152
|
-
setDragOver(false);
|
|
153
|
-
},
|
|
154
|
-
onDrop: (event) => handleDropEvent(event),
|
|
155
|
-
children: /* @__PURE__ */ jsx("div", { className: "title", children: "Release to analyse the Playwright Trace" })
|
|
156
|
-
}
|
|
157
|
-
)
|
|
158
|
-
] });
|
|
159
|
-
};
|
|
160
|
-
const emptyModel = new MultiTraceModel([]);
|
|
161
|
-
(async () => {
|
|
162
|
-
applyTheme();
|
|
163
|
-
if (window.location.protocol !== "file:") {
|
|
164
|
-
if (window.location.href.includes("isUnderTest=true"))
|
|
165
|
-
await new Promise((f) => setTimeout(f, 1e3));
|
|
166
|
-
if (!navigator.serviceWorker)
|
|
167
|
-
throw new Error(`Service workers are not supported.
|
|
168
|
-
Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.`);
|
|
169
|
-
navigator.serviceWorker.register("sw.bundle.js");
|
|
170
|
-
if (!navigator.serviceWorker.controller) {
|
|
171
|
-
await new Promise((f) => {
|
|
172
|
-
navigator.serviceWorker.oncontrollerchange = () => f();
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
setInterval(function() {
|
|
176
|
-
fetch("ping");
|
|
177
|
-
}, 1e4);
|
|
178
|
-
}
|
|
179
|
-
reactDomExports.render(/* @__PURE__ */ jsx(WorkbenchLoader, {}), document.querySelector("#root"));
|
|
180
|
-
})();
|
|
181
|
-
//# sourceMappingURL=index.d86e70ca.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{M as E,r as s,c as R,j as c,a as r,T as x,t as C,W as j,b as F,d as O}from"./assets/wsPort-ee2830d7.js";const I=()=>{const[l,P]=s.useState(!1),[d,h]=s.useState([]),[p,W]=s.useState([]),[v,S]=s.useState(L),[f,m]=s.useState({done:0,total:0}),[b,g]=s.useState(!1),[k,w]=s.useState(null),[T,U]=s.useState(null),u=s.useCallback(e=>{const o=[],a=[],t=new URL(window.location.href);for(let i=0;i<e.length;i++){const n=e.item(i);if(!n)continue;const N=URL.createObjectURL(n);o.push(N),a.push(n.name),t.searchParams.append("trace",N),t.searchParams.append("traceFileName",n.name)}const y=t.toString();window.history.pushState({},"",y),h(o),W(a),g(!1),w(null)},[]),D=s.useCallback(e=>{e.preventDefault(),u(e.dataTransfer.files)},[u]),M=s.useCallback(e=>{e.preventDefault(),e.target.files&&u(e.target.files)},[u]);return s.useEffect(()=>{const e=new URL(window.location.href).searchParams,o=e.getAll("trace");P(e.has("isServer"));for(const a of o)if(a.startsWith("file:")){U(a||null);return}e.has("isServer")?R({onEvent(a,t){a==="loadTrace"&&(h(t.url?[t.url]:[]),g(!1),w(null))},onClose(){}}).then(a=>{a("ready")}):o.some(a=>a.startsWith("blob:"))||h(o)},[]),s.useEffect(()=>{(async()=>{if(d.length){const e=t=>{t.data.method==="progress"&&m(t.data.params)};navigator.serviceWorker.addEventListener("message",e),m({done:0,total:1});const o=[];for(let t=0;t<d.length;t++){const y=d[t],i=new URLSearchParams;i.set("trace",y),p.length&&i.set("traceFileName",p[t]);const n=await fetch(`contexts?${i.toString()}`);if(!n.ok){l||h([]),w((await n.json()).error);return}o.push(...await n.json())}navigator.serviceWorker.removeEventListener("message",e);const a=new E(o);m({done:0,total:0}),S(a)}else S(L)})()},[l,d,p]),c("div",{className:"vbox workbench-loader",onDragOver:e=>{e.preventDefault(),g(!0)},children:[c("div",{className:"hbox header",children:[r("div",{className:"logo",children:r("img",{src:"playwright-logo.svg",alt:"Playwright logo"})}),r("div",{className:"product",children:"Playwright"}),v.title&&r("div",{className:"title",children:v.title}),r("div",{className:"spacer"}),r(x,{icon:"color-mode",title:"Toggle color mode",toggled:!1,onClick:()=>C()})]}),r("div",{className:"progress",children:r("div",{className:"inner-progress",style:{width:f.total?100*f.done/f.total+"%":0}})}),r(j,{model:v}),T&&c("div",{className:"drop-target",children:[r("div",{children:"Trace Viewer uses Service Workers to show traces. To view trace:"}),c("div",{style:{paddingTop:20},children:[c("div",{children:["1. Click ",r("a",{href:T,children:"here"})," to put your trace into the download shelf"]}),c("div",{children:["2. Go to ",r("a",{href:"https://trace.playwright.dev",children:"trace.playwright.dev"})]}),r("div",{children:"3. Drop the trace from the download shelf into the page"})]})]}),!l&&!b&&!T&&(!d.length||k)&&c("div",{className:"drop-target",children:[r("div",{className:"processing-error",children:k}),r("div",{className:"title",children:"Drop Playwright Trace to load"}),r("div",{children:"or"}),r("button",{onClick:()=>{const e=document.createElement("input");e.type="file",e.multiple=!0,e.click(),e.addEventListener("change",o=>M(o))},children:"Select file(s)"}),r("div",{style:{maxWidth:400},children:"Playwright Trace Viewer is a Progressive Web App, it does not send your trace anywhere, it opens it locally."})]}),l&&!d.length&&r("div",{className:"drop-target",children:r("div",{className:"title",children:"Select test to see the trace"})}),b&&r("div",{className:"drop-target",onDragLeave:()=>{g(!1)},onDrop:e=>D(e),children:r("div",{className:"title",children:"Release to analyse the Playwright Trace"})})]})},L=new E([]);(async()=>{if(F(),window.location.protocol!=="file:"){if(window.location.href.includes("isUnderTest=true")&&await new Promise(l=>setTimeout(l,1e3)),!navigator.serviceWorker)throw new Error(`Service workers are not supported.
|
|
2
|
-
Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.`);navigator.serviceWorker.register("sw.bundle.js"),navigator.serviceWorker.controller||await new Promise(l=>{navigator.serviceWorker.oncontrollerchange=()=>l()}),setInterval(function(){fetch("ping")},1e4)}O.render(r(I,{}),document.querySelector("#root"))})();
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import { M as MultiTraceModel, r as reactExports, c as connect, j as jsxs, a as jsx, T as ToolbarButton, t as toggleTheme, W as Workbench, b as applyTheme, d as reactDomExports } from "./assets/wsPort-57f274c6.js";
|
|
2
|
-
const workbenchLoader = "";
|
|
3
|
-
const WorkbenchLoader = () => {
|
|
4
|
-
const [isServer, setIsServer] = reactExports.useState(false);
|
|
5
|
-
const [traceURLs, setTraceURLs] = reactExports.useState([]);
|
|
6
|
-
const [uploadedTraceNames, setUploadedTraceNames] = reactExports.useState([]);
|
|
7
|
-
const [model, setModel] = reactExports.useState(emptyModel);
|
|
8
|
-
const [progress, setProgress] = reactExports.useState({ done: 0, total: 0 });
|
|
9
|
-
const [dragOver, setDragOver] = reactExports.useState(false);
|
|
10
|
-
const [processingErrorMessage, setProcessingErrorMessage] = reactExports.useState(null);
|
|
11
|
-
const [fileForLocalModeError, setFileForLocalModeError] = reactExports.useState(null);
|
|
12
|
-
const processTraceFiles = reactExports.useCallback((files) => {
|
|
13
|
-
const blobUrls = [];
|
|
14
|
-
const fileNames = [];
|
|
15
|
-
const url = new URL(window.location.href);
|
|
16
|
-
for (let i = 0; i < files.length; i++) {
|
|
17
|
-
const file = files.item(i);
|
|
18
|
-
if (!file)
|
|
19
|
-
continue;
|
|
20
|
-
const blobTraceURL = URL.createObjectURL(file);
|
|
21
|
-
blobUrls.push(blobTraceURL);
|
|
22
|
-
fileNames.push(file.name);
|
|
23
|
-
url.searchParams.append("trace", blobTraceURL);
|
|
24
|
-
url.searchParams.append("traceFileName", file.name);
|
|
25
|
-
}
|
|
26
|
-
const href = url.toString();
|
|
27
|
-
window.history.pushState({}, "", href);
|
|
28
|
-
setTraceURLs(blobUrls);
|
|
29
|
-
setUploadedTraceNames(fileNames);
|
|
30
|
-
setDragOver(false);
|
|
31
|
-
setProcessingErrorMessage(null);
|
|
32
|
-
}, []);
|
|
33
|
-
const handleDropEvent = reactExports.useCallback((event) => {
|
|
34
|
-
event.preventDefault();
|
|
35
|
-
processTraceFiles(event.dataTransfer.files);
|
|
36
|
-
}, [processTraceFiles]);
|
|
37
|
-
const handleFileInputChange = reactExports.useCallback((event) => {
|
|
38
|
-
event.preventDefault();
|
|
39
|
-
if (!event.target.files)
|
|
40
|
-
return;
|
|
41
|
-
processTraceFiles(event.target.files);
|
|
42
|
-
}, [processTraceFiles]);
|
|
43
|
-
reactExports.useEffect(() => {
|
|
44
|
-
const params = new URL(window.location.href).searchParams;
|
|
45
|
-
const newTraceURLs = params.getAll("trace");
|
|
46
|
-
setIsServer(params.has("isServer"));
|
|
47
|
-
for (const url of newTraceURLs) {
|
|
48
|
-
if (url.startsWith("file:")) {
|
|
49
|
-
setFileForLocalModeError(url || null);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
if (params.has("isServer")) {
|
|
54
|
-
connect({
|
|
55
|
-
onEvent(method, params2) {
|
|
56
|
-
if (method === "loadTrace") {
|
|
57
|
-
setTraceURLs(params2.url ? [params2.url] : []);
|
|
58
|
-
setDragOver(false);
|
|
59
|
-
setProcessingErrorMessage(null);
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
onClose() {
|
|
63
|
-
}
|
|
64
|
-
}).then((sendMessage) => {
|
|
65
|
-
sendMessage("ready");
|
|
66
|
-
});
|
|
67
|
-
} else if (!newTraceURLs.some((url) => url.startsWith("blob:"))) {
|
|
68
|
-
setTraceURLs(newTraceURLs);
|
|
69
|
-
}
|
|
70
|
-
}, []);
|
|
71
|
-
reactExports.useEffect(() => {
|
|
72
|
-
(async () => {
|
|
73
|
-
if (traceURLs.length) {
|
|
74
|
-
const swListener = (event) => {
|
|
75
|
-
if (event.data.method === "progress")
|
|
76
|
-
setProgress(event.data.params);
|
|
77
|
-
};
|
|
78
|
-
navigator.serviceWorker.addEventListener("message", swListener);
|
|
79
|
-
setProgress({ done: 0, total: 1 });
|
|
80
|
-
const contextEntries = [];
|
|
81
|
-
for (let i = 0; i < traceURLs.length; i++) {
|
|
82
|
-
const url = traceURLs[i];
|
|
83
|
-
const params = new URLSearchParams();
|
|
84
|
-
params.set("trace", url);
|
|
85
|
-
if (uploadedTraceNames.length)
|
|
86
|
-
params.set("traceFileName", uploadedTraceNames[i]);
|
|
87
|
-
const response = await fetch(`contexts?${params.toString()}`);
|
|
88
|
-
if (!response.ok) {
|
|
89
|
-
if (!isServer)
|
|
90
|
-
setTraceURLs([]);
|
|
91
|
-
setProcessingErrorMessage((await response.json()).error);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
contextEntries.push(...await response.json());
|
|
95
|
-
}
|
|
96
|
-
navigator.serviceWorker.removeEventListener("message", swListener);
|
|
97
|
-
const model2 = new MultiTraceModel(contextEntries);
|
|
98
|
-
setProgress({ done: 0, total: 0 });
|
|
99
|
-
setModel(model2);
|
|
100
|
-
} else {
|
|
101
|
-
setModel(emptyModel);
|
|
102
|
-
}
|
|
103
|
-
})();
|
|
104
|
-
}, [isServer, traceURLs, uploadedTraceNames]);
|
|
105
|
-
return /* @__PURE__ */ jsxs("div", { className: "vbox workbench-loader", onDragOver: (event) => {
|
|
106
|
-
event.preventDefault();
|
|
107
|
-
setDragOver(true);
|
|
108
|
-
}, children: [
|
|
109
|
-
/* @__PURE__ */ jsxs("div", { className: "hbox header", children: [
|
|
110
|
-
/* @__PURE__ */ jsx("div", { className: "logo", children: /* @__PURE__ */ jsx("img", { src: "playwright-logo.svg", alt: "Playwright logo" }) }),
|
|
111
|
-
/* @__PURE__ */ jsx("div", { className: "product", children: "Playwright" }),
|
|
112
|
-
model.title && /* @__PURE__ */ jsx("div", { className: "title", children: model.title }),
|
|
113
|
-
/* @__PURE__ */ jsx("div", { className: "spacer" }),
|
|
114
|
-
/* @__PURE__ */ jsx(ToolbarButton, { icon: "color-mode", title: "Toggle color mode", toggled: false, onClick: () => toggleTheme() })
|
|
115
|
-
] }),
|
|
116
|
-
/* @__PURE__ */ jsx("div", { className: "progress", children: /* @__PURE__ */ jsx("div", { className: "inner-progress", style: { width: progress.total ? 100 * progress.done / progress.total + "%" : 0 } }) }),
|
|
117
|
-
/* @__PURE__ */ jsx(Workbench, { model }),
|
|
118
|
-
fileForLocalModeError && /* @__PURE__ */ jsxs("div", { className: "drop-target", children: [
|
|
119
|
-
/* @__PURE__ */ jsx("div", { children: "Trace Viewer uses Service Workers to show traces. To view trace:" }),
|
|
120
|
-
/* @__PURE__ */ jsxs("div", { style: { paddingTop: 20 }, children: [
|
|
121
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
122
|
-
"1. Click ",
|
|
123
|
-
/* @__PURE__ */ jsx("a", { href: fileForLocalModeError, children: "here" }),
|
|
124
|
-
" to put your trace into the download shelf"
|
|
125
|
-
] }),
|
|
126
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
127
|
-
"2. Go to ",
|
|
128
|
-
/* @__PURE__ */ jsx("a", { href: "https://trace.playwright.dev", children: "trace.playwright.dev" })
|
|
129
|
-
] }),
|
|
130
|
-
/* @__PURE__ */ jsx("div", { children: "3. Drop the trace from the download shelf into the page" })
|
|
131
|
-
] })
|
|
132
|
-
] }),
|
|
133
|
-
!isServer && !dragOver && !fileForLocalModeError && (!traceURLs.length || processingErrorMessage) && /* @__PURE__ */ jsxs("div", { className: "drop-target", children: [
|
|
134
|
-
/* @__PURE__ */ jsx("div", { className: "processing-error", children: processingErrorMessage }),
|
|
135
|
-
/* @__PURE__ */ jsx("div", { className: "title", children: "Drop Playwright Trace to load" }),
|
|
136
|
-
/* @__PURE__ */ jsx("div", { children: "or" }),
|
|
137
|
-
/* @__PURE__ */ jsx("button", { onClick: () => {
|
|
138
|
-
const input = document.createElement("input");
|
|
139
|
-
input.type = "file";
|
|
140
|
-
input.multiple = true;
|
|
141
|
-
input.click();
|
|
142
|
-
input.addEventListener("change", (e) => handleFileInputChange(e));
|
|
143
|
-
}, children: "Select file(s)" }),
|
|
144
|
-
/* @__PURE__ */ jsx("div", { style: { maxWidth: 400 }, children: "Playwright Trace Viewer is a Progressive Web App, it does not send your trace anywhere, it opens it locally." })
|
|
145
|
-
] }),
|
|
146
|
-
isServer && !traceURLs.length && /* @__PURE__ */ jsx("div", { className: "drop-target", children: /* @__PURE__ */ jsx("div", { className: "title", children: "Select test to see the trace" }) }),
|
|
147
|
-
dragOver && /* @__PURE__ */ jsx(
|
|
148
|
-
"div",
|
|
149
|
-
{
|
|
150
|
-
className: "drop-target",
|
|
151
|
-
onDragLeave: () => {
|
|
152
|
-
setDragOver(false);
|
|
153
|
-
},
|
|
154
|
-
onDrop: (event) => handleDropEvent(event),
|
|
155
|
-
children: /* @__PURE__ */ jsx("div", { className: "title", children: "Release to analyse the Playwright Trace" })
|
|
156
|
-
}
|
|
157
|
-
)
|
|
158
|
-
] });
|
|
159
|
-
};
|
|
160
|
-
const emptyModel = new MultiTraceModel([]);
|
|
161
|
-
(async () => {
|
|
162
|
-
applyTheme();
|
|
163
|
-
if (window.location.protocol !== "file:") {
|
|
164
|
-
if (window.location.href.includes("isUnderTest=true"))
|
|
165
|
-
await new Promise((f) => setTimeout(f, 1e3));
|
|
166
|
-
if (!navigator.serviceWorker)
|
|
167
|
-
throw new Error(`Service workers are not supported.
|
|
168
|
-
Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.`);
|
|
169
|
-
navigator.serviceWorker.register("sw.bundle.js");
|
|
170
|
-
if (!navigator.serviceWorker.controller) {
|
|
171
|
-
await new Promise((f) => {
|
|
172
|
-
navigator.serviceWorker.oncontrollerchange = () => f();
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
setInterval(function() {
|
|
176
|
-
fetch("ping");
|
|
177
|
-
}, 1e4);
|
|
178
|
-
}
|
|
179
|
-
reactDomExports.render(/* @__PURE__ */ jsx(WorkbenchLoader, {}), document.querySelector("#root"));
|
|
180
|
-
})();
|
|
181
|
-
//# sourceMappingURL=index.e8730524.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{M as E,r as s,c as R,j as c,a as r,T as x,t as C,W as j,b as F,d as O}from"./assets/wsPort-762c6840.js";const I=()=>{const[l,P]=s.useState(!1),[d,h]=s.useState([]),[p,W]=s.useState([]),[v,S]=s.useState(L),[f,m]=s.useState({done:0,total:0}),[b,g]=s.useState(!1),[k,w]=s.useState(null),[T,U]=s.useState(null),u=s.useCallback(e=>{const o=[],a=[],t=new URL(window.location.href);for(let i=0;i<e.length;i++){const n=e.item(i);if(!n)continue;const N=URL.createObjectURL(n);o.push(N),a.push(n.name),t.searchParams.append("trace",N),t.searchParams.append("traceFileName",n.name)}const y=t.toString();window.history.pushState({},"",y),h(o),W(a),g(!1),w(null)},[]),D=s.useCallback(e=>{e.preventDefault(),u(e.dataTransfer.files)},[u]),M=s.useCallback(e=>{e.preventDefault(),e.target.files&&u(e.target.files)},[u]);return s.useEffect(()=>{const e=new URL(window.location.href).searchParams,o=e.getAll("trace");P(e.has("isServer"));for(const a of o)if(a.startsWith("file:")){U(a||null);return}e.has("isServer")?R({onEvent(a,t){a==="loadTrace"&&(h(t.url?[t.url]:[]),g(!1),w(null))},onClose(){}}).then(a=>{a("ready")}):o.some(a=>a.startsWith("blob:"))||h(o)},[]),s.useEffect(()=>{(async()=>{if(d.length){const e=t=>{t.data.method==="progress"&&m(t.data.params)};navigator.serviceWorker.addEventListener("message",e),m({done:0,total:1});const o=[];for(let t=0;t<d.length;t++){const y=d[t],i=new URLSearchParams;i.set("trace",y),p.length&&i.set("traceFileName",p[t]);const n=await fetch(`contexts?${i.toString()}`);if(!n.ok){l||h([]),w((await n.json()).error);return}o.push(...await n.json())}navigator.serviceWorker.removeEventListener("message",e);const a=new E(o);m({done:0,total:0}),S(a)}else S(L)})()},[l,d,p]),c("div",{className:"vbox workbench-loader",onDragOver:e=>{e.preventDefault(),g(!0)},children:[c("div",{className:"hbox header",children:[r("div",{className:"logo",children:r("img",{src:"playwright-logo.svg",alt:"Playwright logo"})}),r("div",{className:"product",children:"Playwright"}),v.title&&r("div",{className:"title",children:v.title}),r("div",{className:"spacer"}),r(x,{icon:"color-mode",title:"Toggle color mode",toggled:!1,onClick:()=>C()})]}),r("div",{className:"progress",children:r("div",{className:"inner-progress",style:{width:f.total?100*f.done/f.total+"%":0}})}),r(j,{model:v}),T&&c("div",{className:"drop-target",children:[r("div",{children:"Trace Viewer uses Service Workers to show traces. To view trace:"}),c("div",{style:{paddingTop:20},children:[c("div",{children:["1. Click ",r("a",{href:T,children:"here"})," to put your trace into the download shelf"]}),c("div",{children:["2. Go to ",r("a",{href:"https://trace.playwright.dev",children:"trace.playwright.dev"})]}),r("div",{children:"3. Drop the trace from the download shelf into the page"})]})]}),!l&&!b&&!T&&(!d.length||k)&&c("div",{className:"drop-target",children:[r("div",{className:"processing-error",children:k}),r("div",{className:"title",children:"Drop Playwright Trace to load"}),r("div",{children:"or"}),r("button",{onClick:()=>{const e=document.createElement("input");e.type="file",e.multiple=!0,e.click(),e.addEventListener("change",o=>M(o))},children:"Select file(s)"}),r("div",{style:{maxWidth:400},children:"Playwright Trace Viewer is a Progressive Web App, it does not send your trace anywhere, it opens it locally."})]}),l&&!d.length&&r("div",{className:"drop-target",children:r("div",{className:"title",children:"Select test to see the trace"})}),b&&r("div",{className:"drop-target",onDragLeave:()=>{g(!1)},onDrop:e=>D(e),children:r("div",{className:"title",children:"Release to analyse the Playwright Trace"})})]})},L=new E([]);(async()=>{if(F(),window.location.protocol!=="file:"){if(window.location.href.includes("isUnderTest=true")&&await new Promise(l=>setTimeout(l,1e3)),!navigator.serviceWorker)throw new Error(`Service workers are not supported.
|
|
2
|
-
Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.`);navigator.serviceWorker.register("sw.bundle.js"),navigator.serviceWorker.controller||await new Promise(l=>{navigator.serviceWorker.oncontrollerchange=()=>l()}),setInterval(function(){fetch("ping")},1e4)}O.render(r(I,{}),document.querySelector("#root"))})();
|