@descryy/runtime-browser 0.5.1 → 0.5.3
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/dist/browser-action-collector.d.ts +11 -3
- package/dist/browser-action-collector.d.ts.map +1 -1
- package/dist/browser-action-collector.js +102 -11
- package/dist/browser-action-collector.js.map +1 -1
- package/dist/browser-console-collector.d.ts +2 -0
- package/dist/browser-console-collector.d.ts.map +1 -1
- package/dist/browser-console-collector.js +60 -6
- package/dist/browser-console-collector.js.map +1 -1
- package/dist/browser-network-collector.d.ts +31 -1
- package/dist/browser-network-collector.d.ts.map +1 -1
- package/dist/browser-network-collector.js +231 -11
- package/dist/browser-network-collector.js.map +1 -1
- package/dist/browser-recording-collector.d.ts +8 -1
- package/dist/browser-recording-collector.d.ts.map +1 -1
- package/dist/browser-recording-collector.js +141 -17
- package/dist/browser-recording-collector.js.map +1 -1
- package/dist/browser-session.d.ts +131 -5
- package/dist/browser-session.d.ts.map +1 -1
- package/dist/browser-session.js +547 -95
- package/dist/browser-session.js.map +1 -1
- package/dist/dom-evidence.d.ts +6 -0
- package/dist/dom-evidence.d.ts.map +1 -1
- package/dist/dom-evidence.js +40 -11
- package/dist/dom-evidence.js.map +1 -1
- package/dist/frontend-initiator-capture.d.ts +5 -1
- package/dist/frontend-initiator-capture.d.ts.map +1 -1
- package/dist/frontend-initiator-capture.js +72 -10
- package/dist/frontend-initiator-capture.js.map +1 -1
- package/dist/index.d.ts +9 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/network-correlation.d.ts +2 -11
- package/dist/network-correlation.d.ts.map +1 -1
- package/dist/network-correlation.js +1 -25
- package/dist/network-correlation.js.map +1 -1
- package/dist/script-url-mapping.d.ts +1 -0
- package/dist/script-url-mapping.d.ts.map +1 -1
- package/dist/script-url-mapping.js +7 -0
- package/dist/script-url-mapping.js.map +1 -1
- package/dist/secret-fields.d.ts +37 -0
- package/dist/secret-fields.d.ts.map +1 -0
- package/dist/secret-fields.js +121 -0
- package/dist/secret-fields.js.map +1 -0
- package/package.json +6 -6
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
* forever, not evidence.
|
|
29
29
|
*
|
|
30
30
|
* **B3: every `NETWORK_RESPONSE`/`HTTP_ERROR` payload above also carries an
|
|
31
|
-
* `outcome`** — `"answered"` (a real response arrived, any status)
|
|
31
|
+
* `outcome`** — `"answered"` (a real response arrived, any status),
|
|
32
|
+
* `"aborted"` with an `abortedBy` of `navigation`, `page` or `origin-guard`
|
|
33
|
+
* (cancelled on the client side, not a server failure), or
|
|
32
34
|
* `"unanswered"` (a real Playwright `requestfailed`, this collector's own
|
|
33
35
|
* timeout, a WebSocket `socketerror`, or the session closing while the
|
|
34
36
|
* request was still open — see `stop()`). A `NETWORK_REQUEST` with neither
|
|
@@ -44,6 +46,25 @@
|
|
|
44
46
|
* open when the collector stops, instead of the silent drop that used to
|
|
45
47
|
* happen there.
|
|
46
48
|
*
|
|
49
|
+
* **Every payload above also carries `exchangeId`** — a transport-level id
|
|
50
|
+
* for one HTTP exchange, assigned to the underlying Playwright `Request`
|
|
51
|
+
* object the moment `onRequest` sees it and carried into every terminal
|
|
52
|
+
* event for that same request (`NETWORK_RESPONSE`, its paired `HTTP_ERROR`,
|
|
53
|
+
* a `requestfailed` `HTTP_ERROR`, this collector's own timeout, and
|
|
54
|
+
* `stop()`'s drain). It is deliberately not `Evidence.requestId` — that
|
|
55
|
+
* field is documented as an application-supplied correlation header
|
|
56
|
+
* (`x-request-id`/`request-id`, absent unless the app propagates one) and
|
|
57
|
+
* `correlationOrigin` above already distinguishes which side of the wire it
|
|
58
|
+
* came from; overloading it with a transport identity that exists
|
|
59
|
+
* unconditionally would make that existing, tested claim false.
|
|
60
|
+
* `descry-core`'s browser driver prefers `exchangeId` when pairing a
|
|
61
|
+
* request to its response, ahead of `requestId` and a per-URL FIFO fallback
|
|
62
|
+
* — see `documents/decisions-inbox/DEC-NEXT-transport-level-exchange-id-for-browser-requests.md`
|
|
63
|
+
* in that repo. WebSocket events do not carry one: Playwright's `WebSocket`
|
|
64
|
+
* object is a different identity, not a `Request`, and this field's whole
|
|
65
|
+
* point is pairing terminal HTTP events back to the `Request` that started
|
|
66
|
+
* them.
|
|
67
|
+
*
|
|
47
68
|
* **"initiator where available" above is no longer only `resourceType`.**
|
|
48
69
|
* With a `stackTraceParser` injected, `NETWORK_REQUEST.stackTrace` carries
|
|
49
70
|
* a real, resolved call-site stack for `fetch()` requests (Chromium only —
|
|
@@ -102,6 +123,17 @@ import { rewriteScriptUrls } from "./script-url-mapping.js";
|
|
|
102
123
|
import { createFrontendInitiatorCapture, stripInitiatorWrapperFrame, INITIATOR_HEADER_NAME } from "./frontend-initiator-capture.js";
|
|
103
124
|
import { COLLECTOR_VERSION } from "./collector-version.js";
|
|
104
125
|
const DEFAULT_NETWORK_TIMEOUT_MS = 30000;
|
|
126
|
+
/** A page load of a top-level frame -- the only kind of request whose start can abort others on the page. Service-worker requests have no frame, and `frame()` throws for them. */
|
|
127
|
+
function isMainFrameNavigation(request) {
|
|
128
|
+
if (!request.isNavigationRequest())
|
|
129
|
+
return false;
|
|
130
|
+
try {
|
|
131
|
+
return request.frame().parentFrame() === null;
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
105
137
|
function notThisCollectorsJob(what) {
|
|
106
138
|
return { availability: "unavailable", reason: `BrowserNetworkCollector handles network observation only, not ${what} -- see the dedicated collector.` };
|
|
107
139
|
}
|
|
@@ -159,7 +191,8 @@ const CAPABILITIES_WITH_STACKS = {
|
|
|
159
191
|
},
|
|
160
192
|
stackCapture: {
|
|
161
193
|
availability: "degraded",
|
|
162
|
-
reason: "captures the
|
|
194
|
+
reason: "captures the call-site stack for same-origin fetch() requests only (Chromium + fetch(), via an injected header carrying a per-call id -- not XMLHttpRequest, not Firefox/WebKit, and not a cross-origin call, which carries no header and so no stack); " +
|
|
195
|
+
"the stack is asserted by page script (callSiteAssertedBy: page), accepted only from frames of an origin mapped to a configured service root, and a Request with a body or a binding slower than 250 ms is sent without one; " +
|
|
163
196
|
"a header stripped by an intermediate proxy, or a call site the parser cannot symbolicate, degrades that one request's stackTrace to null rather than the whole capability.",
|
|
164
197
|
},
|
|
165
198
|
};
|
|
@@ -170,6 +203,7 @@ const BODY_CAPTURABLE_CONTENT_TYPE = /^(application\/json|text\/)/i;
|
|
|
170
203
|
* Starting value, not a measurement.
|
|
171
204
|
*/
|
|
172
205
|
export const MAX_RESPONSE_BODY_BYTES = 256 * 1024;
|
|
206
|
+
const EVENT_STREAM_CONTENT_TYPE = /^text\/event-stream/i;
|
|
173
207
|
const NOT_CAPTURED = { body: null, bodyTruncated: false, bodyByteLength: null };
|
|
174
208
|
function parseContentLength(headers) {
|
|
175
209
|
const raw = headers["content-length"];
|
|
@@ -181,6 +215,9 @@ function parseContentLength(headers) {
|
|
|
181
215
|
/** Exported for direct unit testing (RT-261) -- exercising the cap does not need a real browser response, just something shaped like one. */
|
|
182
216
|
export async function captureResponseBody(response, headers) {
|
|
183
217
|
const contentType = headers["content-type"] ?? "";
|
|
218
|
+
if (EVENT_STREAM_CONTENT_TYPE.test(contentType)) {
|
|
219
|
+
return { ...NOT_CAPTURED, bodySkippedReason: "text/event-stream is an unbounded stream; reading it would buffer it until the connection closes." };
|
|
220
|
+
}
|
|
184
221
|
if (!BODY_CAPTURABLE_CONTENT_TYPE.test(contentType))
|
|
185
222
|
return NOT_CAPTURED;
|
|
186
223
|
// content-length lets a huge body be skipped WITHOUT reading it at all --
|
|
@@ -202,6 +239,43 @@ export async function captureResponseBody(response, headers) {
|
|
|
202
239
|
const kept = Buffer.from(text, "utf8").subarray(0, MAX_RESPONSE_BODY_BYTES).toString("utf8");
|
|
203
240
|
return { body: kept, bodyTruncated: true, bodyByteLength: byteLength };
|
|
204
241
|
}
|
|
242
|
+
export const MAX_REQUEST_BODY_BYTES = 256 * 1024;
|
|
243
|
+
function mostlyPrintable(text) {
|
|
244
|
+
if (text.length === 0)
|
|
245
|
+
return true;
|
|
246
|
+
let control = 0;
|
|
247
|
+
for (let i = 0; i < text.length; i++) {
|
|
248
|
+
const code = text.charCodeAt(i);
|
|
249
|
+
if (code < 0x20 && code !== 9 && code !== 10 && code !== 13)
|
|
250
|
+
control++;
|
|
251
|
+
}
|
|
252
|
+
return control / text.length < 0.05;
|
|
253
|
+
}
|
|
254
|
+
export function captureRequestBody(body) {
|
|
255
|
+
if (body === null)
|
|
256
|
+
return { postData: null, postDataTruncated: false, postDataByteLength: null, postDataBinary: false };
|
|
257
|
+
const truncated = body.length > MAX_REQUEST_BODY_BYTES;
|
|
258
|
+
const kept = truncated ? body.subarray(0, MAX_REQUEST_BODY_BYTES) : body;
|
|
259
|
+
let text;
|
|
260
|
+
try {
|
|
261
|
+
text = new TextDecoder("utf-8", { fatal: true }).decode(kept, { stream: truncated });
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
return { postData: null, postDataTruncated: false, postDataByteLength: body.length, postDataBinary: true };
|
|
265
|
+
}
|
|
266
|
+
if (!mostlyPrintable(text)) {
|
|
267
|
+
return { postData: null, postDataTruncated: false, postDataByteLength: body.length, postDataBinary: true };
|
|
268
|
+
}
|
|
269
|
+
return { postData: text, postDataTruncated: truncated, postDataByteLength: body.length, postDataBinary: false };
|
|
270
|
+
}
|
|
271
|
+
function requestBodyOf(request) {
|
|
272
|
+
try {
|
|
273
|
+
return captureRequestBody(request.postDataBuffer());
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
return captureRequestBody(null);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
205
279
|
export function createBrowserNetworkCollector(options) {
|
|
206
280
|
const { session } = options;
|
|
207
281
|
const { page } = session;
|
|
@@ -218,6 +292,39 @@ export function createBrowserNetworkCollector(options) {
|
|
|
218
292
|
// the moment either real event fires, or when this collector's own timer
|
|
219
293
|
// fires first and reports the exchange as timed out.
|
|
220
294
|
const pending = new Map();
|
|
295
|
+
/**
|
|
296
|
+
* A transport-level id for one HTTP exchange -- one Playwright `Request`
|
|
297
|
+
* object, from `request` through to whichever terminal event closes it
|
|
298
|
+
* out -- independent of any application header (`requestId`/`traceId`
|
|
299
|
+
* above are read from `x-request-id`/traceparent-style headers an app may
|
|
300
|
+
* or may not send; this exists unconditionally). Keyed by the `Request`
|
|
301
|
+
* object itself, the same identity `pending` already uses and for the
|
|
302
|
+
* same reason: a URL or a client-supplied header can collide across two
|
|
303
|
+
* concurrent requests to the same endpoint, an object reference cannot.
|
|
304
|
+
* `exchangeCounter` is monotonic per collector instance, prefixed with
|
|
305
|
+
* this session's id so an id is unique across concurrently running
|
|
306
|
+
* sessions, not just within one.
|
|
307
|
+
*/
|
|
308
|
+
const exchangeIds = new WeakMap();
|
|
309
|
+
let exchangeCounter = 0;
|
|
310
|
+
/**
|
|
311
|
+
* Assigned synchronously, on first call for a given `Request` -- in
|
|
312
|
+
* practice always from `onRequest`, before any `await`, since Playwright
|
|
313
|
+
* fires `request` before `requestfinished`/`requestfailed` for the same
|
|
314
|
+
* object. Idempotent past the first call so every other emit site for
|
|
315
|
+
* the same request (the timeout branch, `onRequestFinished`,
|
|
316
|
+
* `onRequestFailed`, `stop()`'s drain) reads back the identical id rather
|
|
317
|
+
* than minting a second one.
|
|
318
|
+
*/
|
|
319
|
+
function exchangeIdFor(request) {
|
|
320
|
+
let id = exchangeIds.get(request);
|
|
321
|
+
if (id === undefined) {
|
|
322
|
+
exchangeCounter += 1;
|
|
323
|
+
id = `${session.sessionId}:${exchangeCounter}`;
|
|
324
|
+
exchangeIds.set(request, id);
|
|
325
|
+
}
|
|
326
|
+
return id;
|
|
327
|
+
}
|
|
221
328
|
/**
|
|
222
329
|
* In-flight `onRequest` handlers -- the identical reason
|
|
223
330
|
* `BrowserConsoleCollector.onPageError` keeps one (RT-023 regression):
|
|
@@ -228,6 +335,56 @@ export function createBrowserNetworkCollector(options) {
|
|
|
228
335
|
*/
|
|
229
336
|
const inFlight = new Set();
|
|
230
337
|
const activeSockets = new Map();
|
|
338
|
+
/**
|
|
339
|
+
* A response whose headers arrived, keyed by its request. `requestfailed`
|
|
340
|
+
* also fires when the headers arrived and only the body was cut off -- a
|
|
341
|
+
* Remix form post answered 204 with `x-remix-redirect`, whose body read is
|
|
342
|
+
* abandoned when the page moves on. That request was answered, and its
|
|
343
|
+
* status is known, so it must not be reported as never answered.
|
|
344
|
+
*/
|
|
345
|
+
const responses = new WeakMap();
|
|
346
|
+
/** Main-frame navigations started so far, and the count when each request began -- so an abort can be pinned on a navigation that started after the request did. */
|
|
347
|
+
let mainFrameNavigations = 0;
|
|
348
|
+
const navigationsAtStart = new WeakMap();
|
|
349
|
+
function onResponse(response) {
|
|
350
|
+
responses.set(response.request(), response);
|
|
351
|
+
}
|
|
352
|
+
/** A main-frame navigation began after this request did, so the document that asked for it is gone. */
|
|
353
|
+
function supersededByNavigation(request) {
|
|
354
|
+
const startedAt = navigationsAtStart.get(request);
|
|
355
|
+
return startedAt !== undefined && mainFrameNavigations > startedAt;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Why a request with no answer was aborted, or `null` for a real network failure.
|
|
359
|
+
* `net::ERR_ABORTED` is Chromium's code for a request cancelled on the client side -- a
|
|
360
|
+
* connection the server refused, reset or never resolved carries its own code
|
|
361
|
+
* (`ERR_CONNECTION_REFUSED`, `ERR_CONNECTION_RESET`, `ERR_NAME_NOT_RESOLVED`, ...). So an
|
|
362
|
+
* abort is `navigation` when a main-frame navigation began after the request did, and
|
|
363
|
+
* otherwise `page`: the page's own `AbortController`, a superseded revalidation, a download
|
|
364
|
+
* taking over. Neither is a failure of the application's server.
|
|
365
|
+
*/
|
|
366
|
+
function abortReasonFor(request, errorText) {
|
|
367
|
+
if (session.wasBlockedByOriginGuard?.(request) === true)
|
|
368
|
+
return "origin-guard";
|
|
369
|
+
if (!/\bERR_ABORTED\b/.test(errorText))
|
|
370
|
+
return null;
|
|
371
|
+
return supersededByNavigation(request) ? "navigation" : "page";
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Measured, not assumed: Chromium fires no `requestfailed` for a `fetch` abandoned because
|
|
375
|
+
* its document navigated away -- the request simply never ends. Without this, such a request
|
|
376
|
+
* reached the timeout or the session-close drain and was reported as never answered.
|
|
377
|
+
*/
|
|
378
|
+
function abandonedFields(request) {
|
|
379
|
+
return supersededByNavigation(request) ? { outcome: "aborted", abortedBy: "navigation" } : null;
|
|
380
|
+
}
|
|
381
|
+
function track(work, what) {
|
|
382
|
+
const handled = work.catch((error) => {
|
|
383
|
+
console.error(`[browser-network:${session.sessionId}] ${what} handling failed: ${String(error)}`);
|
|
384
|
+
});
|
|
385
|
+
inFlight.add(handled);
|
|
386
|
+
void handled.finally(() => inFlight.delete(handled));
|
|
387
|
+
}
|
|
231
388
|
function clearPending(request) {
|
|
232
389
|
const timer = pending.get(request);
|
|
233
390
|
if (timer !== undefined) {
|
|
@@ -314,7 +471,7 @@ export function createBrowserNetworkCollector(options) {
|
|
|
314
471
|
function describe(error) {
|
|
315
472
|
return error instanceof Error ? error.message : String(error);
|
|
316
473
|
}
|
|
317
|
-
async function emitNetworkRequest(request, headers, traceId, requestId) {
|
|
474
|
+
async function emitNetworkRequest(request, headers, traceId, requestId, exchangeId) {
|
|
318
475
|
const stackTrace = await resolveInitiatorStack(headers);
|
|
319
476
|
emit?.({
|
|
320
477
|
timestamp: new Date().toISOString(),
|
|
@@ -326,9 +483,11 @@ export function createBrowserNetworkCollector(options) {
|
|
|
326
483
|
method: request.method(),
|
|
327
484
|
url: request.url(),
|
|
328
485
|
headers,
|
|
329
|
-
|
|
486
|
+
...requestBodyOf(request),
|
|
330
487
|
resourceType: request.resourceType(),
|
|
331
488
|
browserSessionId: session.sessionId,
|
|
489
|
+
exchangeId,
|
|
490
|
+
...(stackTrace !== null ? { callSiteAssertedBy: "page" } : {}),
|
|
332
491
|
},
|
|
333
492
|
traceId,
|
|
334
493
|
requestId,
|
|
@@ -345,6 +504,14 @@ export function createBrowserNetworkCollector(options) {
|
|
|
345
504
|
});
|
|
346
505
|
}
|
|
347
506
|
function onRequest(request) {
|
|
507
|
+
// Assigned first, synchronously, before anything else touches this
|
|
508
|
+
// `Request` -- this is the one call site every other emit site for the
|
|
509
|
+
// same request (the timeout below, `onRequestFinished`,
|
|
510
|
+
// `onRequestFailed`, `stop()`'s drain) relies on having already run.
|
|
511
|
+
const exchangeId = exchangeIdFor(request);
|
|
512
|
+
if (isMainFrameNavigation(request))
|
|
513
|
+
mainFrameNavigations += 1;
|
|
514
|
+
navigationsAtStart.set(request, mainFrameNavigations);
|
|
348
515
|
const headers = request.headers();
|
|
349
516
|
const { traceId, requestId } = extractHeaderCorrelationIds(headers);
|
|
350
517
|
// The timeout window starts here, synchronously -- not after
|
|
@@ -353,6 +520,13 @@ export function createBrowserNetworkCollector(options) {
|
|
|
353
520
|
// supposed to measure.
|
|
354
521
|
const timer = setTimeout(() => {
|
|
355
522
|
pending.delete(request);
|
|
523
|
+
const response = responses.get(request);
|
|
524
|
+
if (response !== undefined) {
|
|
525
|
+
// Headers arrived and the body is still streaming (SSE, a long
|
|
526
|
+
// download): answered, with a status -- only the body is incomplete.
|
|
527
|
+
track(emitAnswered(request, response, `collector timeout: the response arrived but its body did not finish within ${networkTimeoutMs}ms`), "timeout");
|
|
528
|
+
return;
|
|
529
|
+
}
|
|
356
530
|
emit?.({
|
|
357
531
|
timestamp: new Date().toISOString(),
|
|
358
532
|
source,
|
|
@@ -373,10 +547,14 @@ export function createBrowserNetworkCollector(options) {
|
|
|
373
547
|
// Additive and optional: a consumer that predates this field
|
|
374
548
|
// falls back to today's status-only reading.
|
|
375
549
|
outcome: "unanswered",
|
|
550
|
+
...abandonedFields(request),
|
|
376
551
|
method: request.method(),
|
|
377
552
|
url: request.url(),
|
|
378
|
-
networkError:
|
|
553
|
+
networkError: abandonedFields(request) === null
|
|
554
|
+
? `collector timeout: no response within ${networkTimeoutMs}ms`
|
|
555
|
+
: "the page navigated away after this request started, and no answer to it ever arrived",
|
|
379
556
|
browserSessionId: session.sessionId,
|
|
557
|
+
exchangeId,
|
|
380
558
|
},
|
|
381
559
|
traceId,
|
|
382
560
|
requestId,
|
|
@@ -390,7 +568,7 @@ export function createBrowserNetworkCollector(options) {
|
|
|
390
568
|
});
|
|
391
569
|
}, networkTimeoutMs);
|
|
392
570
|
pending.set(request, timer);
|
|
393
|
-
const handled = emitNetworkRequest(request, headers, traceId, requestId).catch((error) => {
|
|
571
|
+
const handled = emitNetworkRequest(request, headers, traceId, requestId, exchangeId).catch((error) => {
|
|
394
572
|
// Defence in depth. `resolveInitiatorStack` now absorbs the one failure
|
|
395
573
|
// that actually reached here in practice, so anything still arriving is
|
|
396
574
|
// unanticipated — which is exactly the case that most needs disclosing
|
|
@@ -412,6 +590,16 @@ export function createBrowserNetworkCollector(options) {
|
|
|
412
590
|
const response = await request.response();
|
|
413
591
|
if (response === null)
|
|
414
592
|
return; // finished with no response is a real, if rare, Playwright outcome -- nothing to report
|
|
593
|
+
await emitAnswered(request, response, null);
|
|
594
|
+
}
|
|
595
|
+
/**
|
|
596
|
+
* One answered exchange: `NETWORK_RESPONSE`, plus `HTTP_ERROR` for >= 400.
|
|
597
|
+
* `bodyIncomplete` is non-null when the headers arrived but the body never
|
|
598
|
+
* finished (cut off by a navigation, or still streaming at the timeout) --
|
|
599
|
+
* the body is then not read at all, since a read could hang or fail, and
|
|
600
|
+
* the payload says why it is missing.
|
|
601
|
+
*/
|
|
602
|
+
async function emitAnswered(request, response, bodyIncomplete) {
|
|
415
603
|
const headers = await response.allHeaders().catch(() => response.headers());
|
|
416
604
|
// **A response inherits its own request's correlation ids.** This read
|
|
417
605
|
// the response headers alone, and the result was that a NETWORK_REQUEST
|
|
@@ -446,7 +634,7 @@ export function createBrowserNetworkCollector(options) {
|
|
|
446
634
|
requestId: fromResponse.requestId !== null ? "response-headers" : fromRequest.requestId !== null ? "request-headers" : null,
|
|
447
635
|
};
|
|
448
636
|
const status = response.status();
|
|
449
|
-
const { body, bodyTruncated, bodyByteLength } = await captureResponseBody(response, headers);
|
|
637
|
+
const { body, bodyTruncated, bodyByteLength, bodySkippedReason } = bodyIncomplete === null ? await captureResponseBody(response, headers) : { ...NOT_CAPTURED, bodyByteLength: parseContentLength(headers) };
|
|
450
638
|
const basePayload = {
|
|
451
639
|
status,
|
|
452
640
|
// B3: a real response arrived, so this is "answered" regardless of
|
|
@@ -464,9 +652,12 @@ export function createBrowserNetworkCollector(options) {
|
|
|
464
652
|
// body indistinguishable from "the response really was empty/short".
|
|
465
653
|
bodyTruncated,
|
|
466
654
|
bodyByteLength,
|
|
655
|
+
...(bodyIncomplete === null ? {} : { bodyIncomplete }),
|
|
656
|
+
...(bodySkippedReason === undefined ? {} : { bodySkippedReason }),
|
|
467
657
|
timing: request.timing(),
|
|
468
658
|
browserSessionId: session.sessionId,
|
|
469
659
|
correlationOrigin,
|
|
660
|
+
exchangeId: exchangeIdFor(request),
|
|
470
661
|
};
|
|
471
662
|
emit?.({
|
|
472
663
|
timestamp: new Date().toISOString(),
|
|
@@ -510,6 +701,16 @@ export function createBrowserNetworkCollector(options) {
|
|
|
510
701
|
clearPending(request);
|
|
511
702
|
if (alreadyTimedOut)
|
|
512
703
|
return; // already reported as a collector timeout; a late Playwright failure is not double-reported
|
|
704
|
+
const errorText = request.failure()?.errorText ?? "unknown network failure";
|
|
705
|
+
const response = responses.get(request);
|
|
706
|
+
if (response !== undefined) {
|
|
707
|
+
track(emitAnswered(request, response, `the response arrived, then its body was cut off (${errorText})`), "requestfailed");
|
|
708
|
+
return;
|
|
709
|
+
}
|
|
710
|
+
// "aborted" is not a failure of the application: the page moved on, the
|
|
711
|
+
// page cancelled it, or Descry's origin guard refused it. Every other
|
|
712
|
+
// network error stays "unanswered" -- see abortReasonFor.
|
|
713
|
+
const abortedBy = abortReasonFor(request, errorText);
|
|
513
714
|
const headers = request.headers();
|
|
514
715
|
const { traceId, requestId } = extractHeaderCorrelationIds(headers);
|
|
515
716
|
emit?.({
|
|
@@ -524,11 +725,13 @@ export function createBrowserNetworkCollector(options) {
|
|
|
524
725
|
status: null,
|
|
525
726
|
// B3: Playwright's own `requestfailed` fired -- a definitive,
|
|
526
727
|
// Chromium-reported network failure, not merely "no answer yet."
|
|
527
|
-
outcome: "unanswered",
|
|
728
|
+
outcome: abortedBy === null ? "unanswered" : "aborted",
|
|
729
|
+
...(abortedBy === null ? {} : { abortedBy }),
|
|
528
730
|
method: request.method(),
|
|
529
731
|
url: request.url(),
|
|
530
|
-
networkError:
|
|
732
|
+
networkError: errorText,
|
|
531
733
|
browserSessionId: session.sessionId,
|
|
734
|
+
exchangeId: exchangeIdFor(request),
|
|
532
735
|
},
|
|
533
736
|
traceId,
|
|
534
737
|
requestId,
|
|
@@ -706,7 +909,9 @@ export function createBrowserNetworkCollector(options) {
|
|
|
706
909
|
networkTimeoutMs = options.networkTimeoutMs ?? context.configuration.timeoutMs ?? DEFAULT_NETWORK_TIMEOUT_MS;
|
|
707
910
|
stacksParsed = options.stackTraceParser !== undefined && context.resolveSourceRoot !== undefined;
|
|
708
911
|
if (stacksParsed) {
|
|
709
|
-
initiatorCapture = createFrontendInitiatorCapture(
|
|
912
|
+
initiatorCapture = createFrontendInitiatorCapture({
|
|
913
|
+
isTrustedOrigin: (origin) => resolveSourceRoot?.(origin).found === true,
|
|
914
|
+
});
|
|
710
915
|
// Must be installed (and, per `page.addInitScript`'s own contract,
|
|
711
916
|
// installed before any navigation this execution wants covered) —
|
|
712
917
|
// start() being async is exactly what lets a caller await this
|
|
@@ -716,6 +921,7 @@ export function createBrowserNetworkCollector(options) {
|
|
|
716
921
|
await initiatorCapture.install(page);
|
|
717
922
|
}
|
|
718
923
|
page.on("request", onRequest);
|
|
924
|
+
page.on("response", onResponse);
|
|
719
925
|
page.on("requestfinished", onRequestFinishedHandler);
|
|
720
926
|
page.on("requestfailed", onRequestFailed);
|
|
721
927
|
page.on("websocket", onWebSocket);
|
|
@@ -723,6 +929,7 @@ export function createBrowserNetworkCollector(options) {
|
|
|
723
929
|
},
|
|
724
930
|
async stop() {
|
|
725
931
|
page.off("request", onRequest);
|
|
932
|
+
page.off("response", onResponse);
|
|
726
933
|
page.off("requestfinished", onRequestFinishedHandler);
|
|
727
934
|
page.off("requestfailed", onRequestFailed);
|
|
728
935
|
page.off("websocket", onWebSocket);
|
|
@@ -736,6 +943,11 @@ export function createBrowserNetworkCollector(options) {
|
|
|
736
943
|
// same way, not silently folded into the next reader's guess.
|
|
737
944
|
for (const [request, timer] of pending) {
|
|
738
945
|
clearTimeout(timer);
|
|
946
|
+
const response = responses.get(request);
|
|
947
|
+
if (response !== undefined) {
|
|
948
|
+
track(emitAnswered(request, response, "the browser session closed while this response's body was still arriving"), "stop");
|
|
949
|
+
continue;
|
|
950
|
+
}
|
|
739
951
|
const headers = request.headers();
|
|
740
952
|
const { traceId, requestId } = extractHeaderCorrelationIds(headers);
|
|
741
953
|
emit?.({
|
|
@@ -747,10 +959,14 @@ export function createBrowserNetworkCollector(options) {
|
|
|
747
959
|
payload: {
|
|
748
960
|
status: null,
|
|
749
961
|
outcome: "unanswered",
|
|
962
|
+
...abandonedFields(request),
|
|
750
963
|
method: request.method(),
|
|
751
964
|
url: request.url(),
|
|
752
|
-
networkError:
|
|
965
|
+
networkError: abandonedFields(request) === null
|
|
966
|
+
? "the browser session closed while this request was still outstanding -- no response and no requestfailed event ever arrived."
|
|
967
|
+
: "the page navigated away after this request started, and no answer to it ever arrived before the session closed.",
|
|
753
968
|
browserSessionId: session.sessionId,
|
|
969
|
+
exchangeId: exchangeIdFor(request),
|
|
754
970
|
},
|
|
755
971
|
traceId,
|
|
756
972
|
requestId,
|
|
@@ -764,6 +980,10 @@ export function createBrowserNetworkCollector(options) {
|
|
|
764
980
|
});
|
|
765
981
|
}
|
|
766
982
|
pending.clear();
|
|
983
|
+
const rejectedInitiatorCalls = initiatorCapture?.rejectedCallCount() ?? 0;
|
|
984
|
+
if (rejectedInitiatorCalls > 0) {
|
|
985
|
+
emitCollectorError(`${String(rejectedInitiatorCalls)} call(s) to the page-callable initiator binding were refused (malformed arguments, or a frame whose origin is not mapped to a configured service root); no call-site stack was taken from them.`, new Error("initiator binding calls refused"));
|
|
986
|
+
}
|
|
767
987
|
// `page.off("websocket", ...)` above only stops new sockets from
|
|
768
988
|
// being tracked -- a socket already open keeps its own `socketerror`/
|
|
769
989
|
// `close` listeners live until they are individually detached here,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-network-collector.js","sourceRoot":"","sources":["../src/browser-network-collector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser-network-collector.js","sourceRoot":"","sources":["../src/browser-network-collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
* matching `BrowserConsoleCollector`'s own precedent, because Playwright
|
|
87
87
|
* offers a real way to detach it.
|
|
88
88
|
*/
|
|
89
|
-
import type
|
|
89
|
+
import { type BrowserSession } from "./browser-session.ts";
|
|
90
90
|
/** The element actually acted on -- role, accessible name, a selector when one is addressable. Mirrors the port's own `PerformedTarget` field-for-field so a host can forward this unmodified. */
|
|
91
91
|
export interface RecordedTarget {
|
|
92
92
|
readonly role: string;
|
|
@@ -105,6 +105,8 @@ export interface RecordedInteraction {
|
|
|
105
105
|
readonly text: string | null;
|
|
106
106
|
/** True only for a `fill` whose source field this collector's page-side script recognised as a password field. When true, `text` is null and was never populated from the field's real value in the first place. */
|
|
107
107
|
readonly secret: boolean;
|
|
108
|
+
/** The page the interaction happened on (for `navigate`, the page it reached). */
|
|
109
|
+
readonly pageUrl: string;
|
|
108
110
|
readonly at: string;
|
|
109
111
|
}
|
|
110
112
|
export interface BrowserRecordingCollectorOptions {
|
|
@@ -116,5 +118,10 @@ export interface BrowserRecordingCollector {
|
|
|
116
118
|
/** Stops capturing and returns every interaction captured since `start()`, in order. Throws if this collector is not currently capturing. */
|
|
117
119
|
stop(): Promise<readonly RecordedInteraction[]>;
|
|
118
120
|
}
|
|
121
|
+
export declare const MAX_RECORDED_INTERACTIONS = 5000;
|
|
122
|
+
export declare class RecordingOverflowError extends Error {
|
|
123
|
+
constructor(sessionId: string);
|
|
124
|
+
}
|
|
125
|
+
export declare function sanitizeRecordedUrl(url: string): string;
|
|
119
126
|
export declare function createBrowserRecordingCollector(options: BrowserRecordingCollectorOptions): BrowserRecordingCollector;
|
|
120
127
|
//# sourceMappingURL=browser-recording-collector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-recording-collector.d.ts","sourceRoot":"","sources":["../src/browser-recording-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AAIH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"browser-recording-collector.d.ts","sourceRoot":"","sources":["../src/browser-recording-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AAIH,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG5E,kMAAkM;AAClM,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iKAAiK;IACjK,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,kEAAkE;AAClE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC1D,yFAAyF;IACzF,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gJAAgJ;IAChJ,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oNAAoN;IACpN,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,mKAAmK;IACnK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,6IAA6I;IAC7I,IAAI,IAAI,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAAC;CACjD;AAID,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAU/C,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,SAAS,EAAE,MAAM;CAI9B;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAcvD;AAgQD,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,gCAAgC,GAAG,yBAAyB,CAgIpH"}
|