@geometra/proxy 1.19.22 → 1.19.23
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/a11y-enrich.d.ts +9 -2
- package/dist/a11y-enrich.d.ts.map +1 -1
- package/dist/a11y-enrich.js +204 -85
- package/dist/a11y-enrich.js.map +1 -1
- package/dist/dom-actions.d.ts.map +1 -1
- package/dist/dom-actions.js +60 -0
- package/dist/dom-actions.js.map +1 -1
- package/dist/extractor.d.ts +16 -1
- package/dist/extractor.d.ts.map +1 -1
- package/dist/extractor.js +108 -23
- package/dist/extractor.js.map +1 -1
- package/dist/geometry-ws.d.ts +22 -1
- package/dist/geometry-ws.d.ts.map +1 -1
- package/dist/geometry-ws.js +111 -22
- package/dist/geometry-ws.js.map +1 -1
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts +15 -3
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +69 -35
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
package/dist/extractor.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { performance } from 'node:perf_hooks';
|
|
2
|
+
import { enrichSnapshotWithCdpAx, shouldEnrichSnapshotWithCdpAx, } from './a11y-enrich.js';
|
|
2
3
|
import { frameOriginInRootPage } from './frame-offset.js';
|
|
3
4
|
import { offsetLayoutSubtree } from './layout-offset.js';
|
|
4
5
|
/**
|
|
@@ -21,15 +22,26 @@ function browserExtractGeometry() {
|
|
|
21
22
|
return out;
|
|
22
23
|
}
|
|
23
24
|
function getAccessibleName(el) {
|
|
25
|
+
const role = el.getAttribute('role');
|
|
24
26
|
const aria = el.getAttribute('aria-label');
|
|
25
27
|
if (aria)
|
|
26
28
|
return aria.trim() || undefined;
|
|
27
|
-
const
|
|
28
|
-
if (
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
const labelledBy = el.getAttribute('aria-labelledby');
|
|
30
|
+
if (labelledBy) {
|
|
31
|
+
const text = labelledBy
|
|
32
|
+
.split(/\s+/)
|
|
33
|
+
.map(id => {
|
|
34
|
+
const target = document.getElementById(id);
|
|
35
|
+
if (!target)
|
|
36
|
+
return '';
|
|
37
|
+
return textWithoutNestedControls(target).replace(/\s+/g, ' ').trim();
|
|
38
|
+
})
|
|
39
|
+
.filter(Boolean)
|
|
40
|
+
.join(' ')
|
|
41
|
+
.trim();
|
|
42
|
+
if (text)
|
|
43
|
+
return text.length > 100 ? text.slice(0, 100) : text;
|
|
44
|
+
}
|
|
33
45
|
if ((el instanceof HTMLInputElement || el instanceof HTMLSelectElement || el instanceof HTMLTextAreaElement) &&
|
|
34
46
|
el.labels &&
|
|
35
47
|
el.labels.length > 0) {
|
|
@@ -37,10 +49,44 @@ function browserExtractGeometry() {
|
|
|
37
49
|
if (t)
|
|
38
50
|
return t;
|
|
39
51
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
52
|
+
if (el instanceof HTMLElement && el.id) {
|
|
53
|
+
const label = document.querySelector(`label[for="${CSS.escape(el.id)}"]`);
|
|
54
|
+
const t = label ? textWithoutNestedControls(label).replace(/\s+/g, ' ').trim() : '';
|
|
55
|
+
if (t)
|
|
56
|
+
return t;
|
|
57
|
+
}
|
|
58
|
+
if (el.parentElement?.tagName.toLowerCase() === 'label') {
|
|
59
|
+
const t = textWithoutNestedControls(el.parentElement).replace(/\s+/g, ' ').trim();
|
|
60
|
+
if (t)
|
|
61
|
+
return t;
|
|
62
|
+
}
|
|
63
|
+
if (el instanceof HTMLInputElement && ['button', 'submit', 'reset'].includes(el.type)) {
|
|
64
|
+
const value = el.value?.trim();
|
|
65
|
+
if (value)
|
|
66
|
+
return value.length > 100 ? value.slice(0, 100) : value;
|
|
67
|
+
}
|
|
68
|
+
const alt = el.getAttribute('alt');
|
|
69
|
+
if (alt)
|
|
70
|
+
return alt.trim() || undefined;
|
|
71
|
+
if (el.tagName.toLowerCase() === 'a' || el.tagName.toLowerCase() === 'button' || role === 'link' || role === 'button') {
|
|
72
|
+
const descendantAlt = Array.from(el.querySelectorAll('img[alt]'))
|
|
73
|
+
.map(img => img.getAttribute('alt')?.trim() ?? '')
|
|
74
|
+
.find(Boolean);
|
|
75
|
+
if (descendantAlt)
|
|
76
|
+
return descendantAlt.length > 100 ? descendantAlt.slice(0, 100) : descendantAlt;
|
|
77
|
+
}
|
|
78
|
+
const title = el.getAttribute('title');
|
|
79
|
+
if (title)
|
|
80
|
+
return title.trim() || undefined;
|
|
81
|
+
const textLikeControl = el instanceof HTMLTextAreaElement ||
|
|
82
|
+
el instanceof HTMLSelectElement ||
|
|
83
|
+
(el instanceof HTMLInputElement && !['checkbox', 'radio', 'file', 'button', 'submit', 'reset', 'hidden', 'range', 'color'].includes(el.type)) ||
|
|
84
|
+
role === 'textbox' ||
|
|
85
|
+
role === 'combobox';
|
|
86
|
+
const placeholder = el.getAttribute('aria-placeholder') || (textLikeControl ? el.getAttribute('placeholder') : null);
|
|
87
|
+
if (placeholder)
|
|
88
|
+
return placeholder.trim() || undefined;
|
|
89
|
+
const tc = textWithoutNestedControls(el).replace(/\s+/g, ' ').trim();
|
|
44
90
|
if (tc && tc.length > 0) {
|
|
45
91
|
return tc.length > 100 ? tc.slice(0, 100) : tc;
|
|
46
92
|
}
|
|
@@ -544,10 +590,15 @@ function cloneLayout(layout) {
|
|
|
544
590
|
function cloneTree(tree) {
|
|
545
591
|
return structuredClone(tree);
|
|
546
592
|
}
|
|
547
|
-
|
|
593
|
+
async function captureFrameGeometry(frame) {
|
|
548
594
|
const raw = await frame.evaluate(browserExtractGeometry);
|
|
549
|
-
|
|
550
|
-
|
|
595
|
+
return {
|
|
596
|
+
layout: raw.layout,
|
|
597
|
+
tree: raw.tree,
|
|
598
|
+
};
|
|
599
|
+
}
|
|
600
|
+
export async function extractFrameGeometry(frame) {
|
|
601
|
+
const { tree, layout } = await captureFrameGeometry(frame);
|
|
551
602
|
return {
|
|
552
603
|
layout,
|
|
553
604
|
tree,
|
|
@@ -555,8 +606,12 @@ export async function extractFrameGeometry(frame) {
|
|
|
555
606
|
};
|
|
556
607
|
}
|
|
557
608
|
export async function mergeAllIframes(tree, layout, ownerFrame) {
|
|
609
|
+
if (ownerFrame.childFrames().length === 0)
|
|
610
|
+
return;
|
|
558
611
|
async function dfs(t, l, f) {
|
|
559
612
|
const subFrames = f.childFrames();
|
|
613
|
+
if (subFrames.length === 0)
|
|
614
|
+
return;
|
|
560
615
|
let slot = 0;
|
|
561
616
|
const tch = t.children ?? [];
|
|
562
617
|
const lch = l.children;
|
|
@@ -566,7 +621,7 @@ export async function mergeAllIframes(tree, layout, ownerFrame) {
|
|
|
566
621
|
if (st.semantic?.tag === 'iframe') {
|
|
567
622
|
const cf = subFrames[slot++];
|
|
568
623
|
if (cf && !cf.isDetached()) {
|
|
569
|
-
const snap = await
|
|
624
|
+
const snap = await captureFrameGeometry(cf);
|
|
570
625
|
await mergeAllIframes(snap.tree, snap.layout, cf);
|
|
571
626
|
const { x: ox, y: oy } = await frameOriginInRootPage(cf);
|
|
572
627
|
sl.children = snap.layout.children.map(c => {
|
|
@@ -589,14 +644,44 @@ export async function mergeAllIframes(tree, layout, ownerFrame) {
|
|
|
589
644
|
/**
|
|
590
645
|
* Full page: main frame + every nested iframe (any origin) + optional CDP AX name enrichment.
|
|
591
646
|
*/
|
|
592
|
-
export async function extractGeometry(page) {
|
|
593
|
-
const
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
647
|
+
export async function extractGeometry(page, options) {
|
|
648
|
+
const trace = options?.trace;
|
|
649
|
+
const totalStartedAt = performance.now();
|
|
650
|
+
const mainFrameStartedAt = performance.now();
|
|
651
|
+
const mainFrame = await captureFrameGeometry(page.mainFrame());
|
|
652
|
+
if (trace) {
|
|
653
|
+
trace.mainFrameMs = performance.now() - mainFrameStartedAt;
|
|
654
|
+
trace.iframeCount = Math.max(0, page.frames().length - 1);
|
|
655
|
+
}
|
|
656
|
+
const main = {
|
|
657
|
+
layout: mainFrame.layout,
|
|
658
|
+
tree: mainFrame.tree,
|
|
659
|
+
treeJson: '',
|
|
600
660
|
};
|
|
661
|
+
const iframeMergeStartedAt = performance.now();
|
|
662
|
+
await mergeAllIframes(main.tree, main.layout, page.mainFrame());
|
|
663
|
+
if (trace) {
|
|
664
|
+
trace.iframeMergeMs = performance.now() - iframeMergeStartedAt;
|
|
665
|
+
}
|
|
666
|
+
const axDecisionStartedAt = performance.now();
|
|
667
|
+
const shouldRunAxEnrichment = shouldEnrichSnapshotWithCdpAx(main);
|
|
668
|
+
if (trace) {
|
|
669
|
+
trace.axDecisionMs = performance.now() - axDecisionStartedAt;
|
|
670
|
+
trace.axRan = shouldRunAxEnrichment;
|
|
671
|
+
}
|
|
672
|
+
if (shouldRunAxEnrichment) {
|
|
673
|
+
const axEnrichStartedAt = performance.now();
|
|
674
|
+
await enrichSnapshotWithCdpAx(page, main, options?.axSessionManager);
|
|
675
|
+
if (trace) {
|
|
676
|
+
trace.axEnrichMs = performance.now() - axEnrichStartedAt;
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
const treeJsonStartedAt = performance.now();
|
|
680
|
+
main.treeJson = JSON.stringify(main.tree);
|
|
681
|
+
if (trace) {
|
|
682
|
+
trace.treeJsonMs = performance.now() - treeJsonStartedAt;
|
|
683
|
+
trace.totalMs = performance.now() - totalStartedAt;
|
|
684
|
+
}
|
|
685
|
+
return main;
|
|
601
686
|
}
|
|
602
687
|
//# sourceMappingURL=extractor.js.map
|
package/dist/extractor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../src/extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../src/extractor.ts"],"names":[],"mappings":"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"}
|
package/dist/geometry-ws.d.ts
CHANGED
|
@@ -1,14 +1,34 @@
|
|
|
1
1
|
import type { Page } from 'playwright';
|
|
2
|
+
import { type ExtractGeometryTrace } from './extractor.js';
|
|
2
3
|
export interface GeometryWsHub {
|
|
3
4
|
/** Run extraction and broadcast (debounced observer calls this). */
|
|
4
5
|
scheduleExtract: () => void;
|
|
5
6
|
/** Wait until any in-flight extract + broadcast finishes. */
|
|
6
7
|
flushExtract: () => Promise<void>;
|
|
8
|
+
getTrace: () => GeometryWsTrace;
|
|
7
9
|
close: () => Promise<void>;
|
|
8
10
|
}
|
|
11
|
+
export interface GeometryExtractRecoveryTrace {
|
|
12
|
+
attemptCount: number;
|
|
13
|
+
domContentLoadedWaitMs: number;
|
|
14
|
+
loadWaitMs: number;
|
|
15
|
+
}
|
|
16
|
+
export interface GeometryFirstExtractTrace {
|
|
17
|
+
beforeInputMs: number;
|
|
18
|
+
extractMs: number;
|
|
19
|
+
broadcastMs: number;
|
|
20
|
+
totalMs: number;
|
|
21
|
+
changed: boolean;
|
|
22
|
+
extractor: ExtractGeometryTrace;
|
|
23
|
+
recovery: GeometryExtractRecoveryTrace;
|
|
24
|
+
}
|
|
25
|
+
export interface GeometryWsTrace {
|
|
26
|
+
extractCount: number;
|
|
27
|
+
firstExtract?: GeometryFirstExtractTrace;
|
|
28
|
+
}
|
|
9
29
|
export declare function startGeometryWebSocket(options: {
|
|
10
30
|
port: number;
|
|
11
|
-
page: Page
|
|
31
|
+
page: Page | Promise<Page>;
|
|
12
32
|
/** DOM mutation debounce (ms). */
|
|
13
33
|
debounceMs?: number;
|
|
14
34
|
/** Optional promise that must resolve before extracts or input actions run. */
|
|
@@ -16,5 +36,6 @@ export declare function startGeometryWebSocket(options: {
|
|
|
16
36
|
onListening?: (port: number) => void;
|
|
17
37
|
onError?: (err: unknown) => void;
|
|
18
38
|
}): GeometryWsHub;
|
|
39
|
+
export declare function primeDomObserver(page: Page, scheduleExtract: () => void): Promise<void>;
|
|
19
40
|
export declare function installDomObserver(page: Page, scheduleExtract: () => void): Promise<void>;
|
|
20
41
|
//# sourceMappingURL=geometry-ws.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry-ws.d.ts","sourceRoot":"","sources":["../src/geometry-ws.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"geometry-ws.d.ts","sourceRoot":"","sources":["../src/geometry-ws.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAiBtC,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAiU3E,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,6DAA6D;IAC7D,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,QAAQ,EAAE,MAAM,eAAe,CAAA;IAC/B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,oBAAoB,CAAA;IAC/B,QAAQ,EAAE,4BAA4B,CAAA;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,yBAAyB,CAAA;CACzC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CACjC,GAAG,aAAa,CA2QhB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB/F"}
|
package/dist/geometry-ws.js
CHANGED
|
@@ -1,9 +1,48 @@
|
|
|
1
|
+
import { performance } from 'node:perf_hooks';
|
|
1
2
|
import { WebSocketServer } from 'ws';
|
|
2
3
|
import { attachFiles, clearFillLookupCache, createFillLookupCache, fillFields, pickListboxOption, resolveExistingFiles, setFieldChoice, setFieldText, selectNativeOption, setCheckedControl, wheelAt, } from './dom-actions.js';
|
|
4
|
+
import { createCdpAxSessionManager } from './a11y-enrich.js';
|
|
3
5
|
import { coalescePatches, diffLayout } from './diff-layout.js';
|
|
4
6
|
import { extractGeometry } from './extractor.js';
|
|
5
7
|
import { isClickEventMessage, isCompositionMessage, isFillFieldsMessage, isFileMessage, isKeyMessage, isListboxPickMessage, isNavigateMessage, isResizeMessage, isSetFieldChoiceMessage, isSetFieldTextMessage, isSetCheckedMessage, isSelectOptionMessage, isWheelMessage, PROXY_PROTOCOL_VERSION, } from './types.js';
|
|
6
8
|
const DOM_OBSERVER_BINDINGS = new WeakSet();
|
|
9
|
+
async function bindDomObserverBridge(page, scheduleExtract) {
|
|
10
|
+
if (DOM_OBSERVER_BINDINGS.has(page))
|
|
11
|
+
return;
|
|
12
|
+
await page.exposeFunction('__geometraProxyNotify', () => {
|
|
13
|
+
scheduleExtract();
|
|
14
|
+
});
|
|
15
|
+
await page.addInitScript(() => {
|
|
16
|
+
const w = window;
|
|
17
|
+
if (w.__geometraProxyObserverBootstrapped)
|
|
18
|
+
return;
|
|
19
|
+
const install = () => {
|
|
20
|
+
if (w.__geometraProxyObserverInstalled)
|
|
21
|
+
return;
|
|
22
|
+
const root = document.documentElement;
|
|
23
|
+
if (!root)
|
|
24
|
+
return;
|
|
25
|
+
const observer = new MutationObserver(() => {
|
|
26
|
+
void w.__geometraProxyNotify?.();
|
|
27
|
+
});
|
|
28
|
+
observer.observe(root, {
|
|
29
|
+
subtree: true,
|
|
30
|
+
childList: true,
|
|
31
|
+
attributes: true,
|
|
32
|
+
characterData: true,
|
|
33
|
+
});
|
|
34
|
+
w.__geometraProxyObserverInstalled = true;
|
|
35
|
+
};
|
|
36
|
+
if (document.readyState === 'loading') {
|
|
37
|
+
document.addEventListener('DOMContentLoaded', install, { once: true });
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
install();
|
|
41
|
+
}
|
|
42
|
+
w.__geometraProxyObserverBootstrapped = true;
|
|
43
|
+
});
|
|
44
|
+
DOM_OBSERVER_BINDINGS.add(page);
|
|
45
|
+
}
|
|
7
46
|
function isProtocolCompatible(peerVersion) {
|
|
8
47
|
if (peerVersion === undefined)
|
|
9
48
|
return true;
|
|
@@ -66,7 +105,7 @@ async function applyKeyPhase(page, msg) {
|
|
|
66
105
|
if (msg.shiftKey)
|
|
67
106
|
await page.keyboard.up('Shift');
|
|
68
107
|
}
|
|
69
|
-
async function handleClientMessage(
|
|
108
|
+
async function handleClientMessage(waitForPage, ws, raw, fieldLookupCache, waitForBeforeInput, onViewportOrInput, onHandlerError) {
|
|
70
109
|
let msg;
|
|
71
110
|
try {
|
|
72
111
|
msg = JSON.parse(String(raw));
|
|
@@ -98,6 +137,7 @@ async function handleClientMessage(page, ws, raw, fieldLookupCache, waitForBefor
|
|
|
98
137
|
}));
|
|
99
138
|
};
|
|
100
139
|
try {
|
|
140
|
+
const page = await waitForPage();
|
|
101
141
|
if (isResizeMessage(msg)) {
|
|
102
142
|
const w = Math.max(1, Math.floor(msg.width));
|
|
103
143
|
const h = Math.max(1, Math.floor(msg.height));
|
|
@@ -244,6 +284,7 @@ export function startGeometryWebSocket(options) {
|
|
|
244
284
|
const debounceMs = options.debounceMs ?? 50;
|
|
245
285
|
const clients = new Set();
|
|
246
286
|
const wss = new WebSocketServer({ port: options.port });
|
|
287
|
+
const axSessionManager = createCdpAxSessionManager();
|
|
247
288
|
let prevLayout = null;
|
|
248
289
|
let prevTreeJson = null;
|
|
249
290
|
let debounceTimer = null;
|
|
@@ -253,16 +294,23 @@ export function startGeometryWebSocket(options) {
|
|
|
253
294
|
let pendingInputAcks = [];
|
|
254
295
|
const fieldLookupCache = createFillLookupCache();
|
|
255
296
|
const beforeInput = options.beforeInput?.then(() => undefined);
|
|
297
|
+
const trace = { extractCount: 0 };
|
|
298
|
+
const pagePromise = Promise.resolve(options.page);
|
|
256
299
|
async function waitForBeforeInput() {
|
|
257
300
|
if (!beforeInput)
|
|
258
301
|
return;
|
|
259
302
|
await beforeInput;
|
|
260
303
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
304
|
+
async function waitForPage() {
|
|
305
|
+
return await pagePromise;
|
|
306
|
+
}
|
|
307
|
+
void pagePromise.then(page => {
|
|
308
|
+
page.on('framenavigated', frame => {
|
|
309
|
+
if (frame === page.mainFrame()) {
|
|
310
|
+
clearFillLookupCache(fieldLookupCache);
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
}).catch(err => options.onError?.(err));
|
|
266
314
|
function sendPendingInputAcks() {
|
|
267
315
|
if (pendingInputAcks.length === 0)
|
|
268
316
|
return;
|
|
@@ -343,10 +391,37 @@ export function startGeometryWebSocket(options) {
|
|
|
343
391
|
return true;
|
|
344
392
|
}
|
|
345
393
|
async function runExtract() {
|
|
394
|
+
const runStartedAt = performance.now();
|
|
395
|
+
const beforeInputStartedAt = performance.now();
|
|
346
396
|
try {
|
|
347
397
|
await waitForBeforeInput();
|
|
348
|
-
const
|
|
349
|
-
|
|
398
|
+
const beforeInputMs = performance.now() - beforeInputStartedAt;
|
|
399
|
+
const extractorTrace = {};
|
|
400
|
+
const recoveryTrace = {
|
|
401
|
+
attemptCount: 0,
|
|
402
|
+
domContentLoadedWaitMs: 0,
|
|
403
|
+
loadWaitMs: 0,
|
|
404
|
+
};
|
|
405
|
+
const page = await waitForPage();
|
|
406
|
+
const extractStartedAt = performance.now();
|
|
407
|
+
const snap = await extractGeometryWithRecovery(page, axSessionManager, extractorTrace, recoveryTrace);
|
|
408
|
+
const extractMs = performance.now() - extractStartedAt;
|
|
409
|
+
const broadcastStartedAt = performance.now();
|
|
410
|
+
const changed = broadcastSnapshot(snap);
|
|
411
|
+
const broadcastMs = performance.now() - broadcastStartedAt;
|
|
412
|
+
trace.extractCount += 1;
|
|
413
|
+
if (!trace.firstExtract) {
|
|
414
|
+
trace.firstExtract = {
|
|
415
|
+
beforeInputMs,
|
|
416
|
+
extractMs,
|
|
417
|
+
broadcastMs,
|
|
418
|
+
totalMs: performance.now() - runStartedAt,
|
|
419
|
+
changed,
|
|
420
|
+
extractor: { ...extractorTrace },
|
|
421
|
+
recovery: { ...recoveryTrace },
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
return changed;
|
|
350
425
|
}
|
|
351
426
|
catch (err) {
|
|
352
427
|
options.onError?.(err);
|
|
@@ -412,7 +487,7 @@ export function startGeometryWebSocket(options) {
|
|
|
412
487
|
}
|
|
413
488
|
ws.on('message', (raw) => {
|
|
414
489
|
actionQueue = actionQueue
|
|
415
|
-
.then(() => handleClientMessage(
|
|
490
|
+
.then(() => handleClientMessage(waitForPage, ws, raw, fieldLookupCache, waitForBeforeInput, (kind, requestId, result) => {
|
|
416
491
|
if (kind === 'resize') {
|
|
417
492
|
void runExtractQueued();
|
|
418
493
|
}
|
|
@@ -439,22 +514,23 @@ export function startGeometryWebSocket(options) {
|
|
|
439
514
|
await runExtractQueued();
|
|
440
515
|
sendPendingInputAcks();
|
|
441
516
|
},
|
|
517
|
+
getTrace: () => structuredClone(trace),
|
|
442
518
|
close: () => new Promise((resolve, reject) => {
|
|
443
|
-
|
|
444
|
-
ws
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
519
|
+
void axSessionManager.close().finally(() => {
|
|
520
|
+
for (const ws of clients) {
|
|
521
|
+
ws.close();
|
|
522
|
+
}
|
|
523
|
+
clients.clear();
|
|
524
|
+
wss.close(err => (err ? reject(err) : resolve()));
|
|
525
|
+
});
|
|
448
526
|
}),
|
|
449
527
|
};
|
|
450
528
|
}
|
|
529
|
+
export async function primeDomObserver(page, scheduleExtract) {
|
|
530
|
+
await bindDomObserverBridge(page, scheduleExtract);
|
|
531
|
+
}
|
|
451
532
|
export async function installDomObserver(page, scheduleExtract) {
|
|
452
|
-
|
|
453
|
-
await page.exposeFunction('__geometraProxyNotify', () => {
|
|
454
|
-
scheduleExtract();
|
|
455
|
-
});
|
|
456
|
-
DOM_OBSERVER_BINDINGS.add(page);
|
|
457
|
-
}
|
|
533
|
+
await bindDomObserverBridge(page, scheduleExtract);
|
|
458
534
|
await page.evaluate(() => {
|
|
459
535
|
const w = window;
|
|
460
536
|
if (w.__geometraProxyObserverInstalled)
|
|
@@ -475,18 +551,31 @@ function isNavigationTransitionError(err) {
|
|
|
475
551
|
const message = err instanceof Error ? err.message : String(err);
|
|
476
552
|
return /Execution context was destroyed|Cannot find context with specified id|Frame was detached|navigation/i.test(message);
|
|
477
553
|
}
|
|
478
|
-
async function extractGeometryWithRecovery(page) {
|
|
554
|
+
async function extractGeometryWithRecovery(page, axSessionManager, extractTrace, recoveryTrace) {
|
|
479
555
|
let lastNavigationError = null;
|
|
556
|
+
let domContentLoadedWaitMs = 0;
|
|
557
|
+
let loadWaitMs = 0;
|
|
480
558
|
for (let attempt = 0; attempt < 3; attempt++) {
|
|
481
559
|
try {
|
|
482
|
-
|
|
560
|
+
if (recoveryTrace) {
|
|
561
|
+
recoveryTrace.attemptCount = attempt + 1;
|
|
562
|
+
}
|
|
563
|
+
return await extractGeometry(page, { axSessionManager, trace: extractTrace });
|
|
483
564
|
}
|
|
484
565
|
catch (err) {
|
|
485
566
|
if (page.isClosed() || !isNavigationTransitionError(err))
|
|
486
567
|
throw err;
|
|
487
568
|
lastNavigationError = err instanceof Error ? err : new Error(String(err));
|
|
569
|
+
const domContentLoadedStartedAt = performance.now();
|
|
488
570
|
await page.waitForLoadState('domcontentloaded', { timeout: 2500 }).catch(() => { });
|
|
571
|
+
domContentLoadedWaitMs += performance.now() - domContentLoadedStartedAt;
|
|
572
|
+
const loadStartedAt = performance.now();
|
|
489
573
|
await page.waitForLoadState('load', { timeout: 1000 }).catch(() => { });
|
|
574
|
+
loadWaitMs += performance.now() - loadStartedAt;
|
|
575
|
+
if (recoveryTrace) {
|
|
576
|
+
recoveryTrace.domContentLoadedWaitMs = domContentLoadedWaitMs;
|
|
577
|
+
recoveryTrace.loadWaitMs = loadWaitMs;
|
|
578
|
+
}
|
|
490
579
|
}
|
|
491
580
|
}
|
|
492
581
|
const detail = lastNavigationError?.message ?? 'Navigation interrupted extraction';
|