camofox-browser 2.1.1 → 2.4.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/CHANGELOG.md +150 -0
- package/README.md +310 -34
- package/dist/src/cli/commands/content.d.ts.map +1 -1
- package/dist/src/cli/commands/content.js +37 -0
- package/dist/src/cli/commands/content.js.map +1 -1
- package/dist/src/cli/commands/core.d.ts.map +1 -1
- package/dist/src/cli/commands/core.js +21 -4
- package/dist/src/cli/commands/core.js.map +1 -1
- package/dist/src/cli/commands/interaction.d.ts.map +1 -1
- package/dist/src/cli/commands/interaction.js +5 -14
- package/dist/src/cli/commands/interaction.js.map +1 -1
- package/dist/src/cli/commands/navigation.d.ts.map +1 -1
- package/dist/src/cli/commands/navigation.js +12 -6
- package/dist/src/cli/commands/navigation.js.map +1 -1
- package/dist/src/cli/commands/server.d.ts.map +1 -1
- package/dist/src/cli/commands/server.js +9 -3
- package/dist/src/cli/commands/server.js.map +1 -1
- package/dist/src/cli/commands/session.d.ts.map +1 -1
- package/dist/src/cli/commands/session.js +23 -5
- package/dist/src/cli/commands/session.js.map +1 -1
- package/dist/src/cli/server/manager.d.ts +1 -0
- package/dist/src/cli/server/manager.d.ts.map +1 -1
- package/dist/src/cli/server/manager.js +7 -12
- package/dist/src/cli/server/manager.js.map +1 -1
- package/dist/src/middleware/lifecycle-activity.d.ts +9 -0
- package/dist/src/middleware/lifecycle-activity.d.ts.map +1 -0
- package/dist/src/middleware/lifecycle-activity.js +21 -0
- package/dist/src/middleware/lifecycle-activity.js.map +1 -0
- package/dist/src/openapi/spec.d.ts +4 -0
- package/dist/src/openapi/spec.d.ts.map +1 -0
- package/dist/src/openapi/spec.js +730 -0
- package/dist/src/openapi/spec.js.map +1 -0
- package/dist/src/routes/core.d.ts.map +1 -1
- package/dist/src/routes/core.js +545 -58
- package/dist/src/routes/core.js.map +1 -1
- package/dist/src/routes/docs.d.ts +3 -0
- package/dist/src/routes/docs.d.ts.map +1 -0
- package/dist/src/routes/docs.js +23 -0
- package/dist/src/routes/docs.js.map +1 -0
- package/dist/src/routes/openclaw.d.ts.map +1 -1
- package/dist/src/routes/openclaw.js +317 -90
- package/dist/src/routes/openclaw.js.map +1 -1
- package/dist/src/server.js +55 -4
- package/dist/src/server.js.map +1 -1
- package/dist/src/services/context-pool.d.ts +21 -4
- package/dist/src/services/context-pool.d.ts.map +1 -1
- package/dist/src/services/context-pool.js +290 -71
- package/dist/src/services/context-pool.js.map +1 -1
- package/dist/src/services/download.d.ts +2 -0
- package/dist/src/services/download.d.ts.map +1 -1
- package/dist/src/services/download.js +110 -80
- package/dist/src/services/download.js.map +1 -1
- package/dist/src/services/lifecycle-controller.d.ts +40 -0
- package/dist/src/services/lifecycle-controller.d.ts.map +1 -0
- package/dist/src/services/lifecycle-controller.js +106 -0
- package/dist/src/services/lifecycle-controller.js.map +1 -0
- package/dist/src/services/resource-extractor.d.ts +1 -0
- package/dist/src/services/resource-extractor.d.ts.map +1 -1
- package/dist/src/services/resource-extractor.js +7 -0
- package/dist/src/services/resource-extractor.js.map +1 -1
- package/dist/src/services/session.d.ts +109 -4
- package/dist/src/services/session.d.ts.map +1 -1
- package/dist/src/services/session.js +622 -64
- package/dist/src/services/session.js.map +1 -1
- package/dist/src/services/structured-extractor.d.ts +39 -0
- package/dist/src/services/structured-extractor.d.ts.map +1 -0
- package/dist/src/services/structured-extractor.js +487 -0
- package/dist/src/services/structured-extractor.js.map +1 -0
- package/dist/src/services/tab.d.ts +30 -3
- package/dist/src/services/tab.d.ts.map +1 -1
- package/dist/src/services/tab.js +872 -124
- package/dist/src/services/tab.js.map +1 -1
- package/dist/src/services/tracing.d.ts +7 -0
- package/dist/src/services/tracing.d.ts.map +1 -1
- package/dist/src/services/tracing.js +200 -19
- package/dist/src/services/tracing.js.map +1 -1
- package/dist/src/services/vnc.d.ts.map +1 -1
- package/dist/src/services/vnc.js +5 -3
- package/dist/src/services/vnc.js.map +1 -1
- package/dist/src/services/youtube.js +1 -1
- package/dist/src/services/youtube.js.map +1 -1
- package/dist/src/types.d.ts +71 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/config.d.ts +79 -3
- package/dist/src/utils/config.d.ts.map +1 -1
- package/dist/src/utils/config.js +145 -3
- package/dist/src/utils/config.js.map +1 -1
- package/dist/src/utils/presets.d.ts.map +1 -1
- package/dist/src/utils/presets.js +3 -1
- package/dist/src/utils/presets.js.map +1 -1
- package/dist/src/utils/proxy-profiles.d.ts +18 -0
- package/dist/src/utils/proxy-profiles.d.ts.map +1 -0
- package/dist/src/utils/proxy-profiles.js +197 -0
- package/dist/src/utils/proxy-profiles.js.map +1 -0
- package/dist/src/utils/sidecar-version.d.ts +12 -0
- package/dist/src/utils/sidecar-version.d.ts.map +1 -0
- package/dist/src/utils/sidecar-version.js +63 -0
- package/dist/src/utils/sidecar-version.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/openclaw.plugin.json +39 -0
- package/package.json +16 -4
- package/plugin.ts +949 -0
|
@@ -11,11 +11,16 @@ const node_fs_1 = __importDefault(require("node:fs"));
|
|
|
11
11
|
const node_child_process_1 = require("node:child_process");
|
|
12
12
|
const camoufox_js_1 = require("camoufox-js");
|
|
13
13
|
const fingerprints_js_1 = require("camoufox-js/dist/fingerprints.js");
|
|
14
|
+
// camoufox-js does not export version info from its public API.
|
|
15
|
+
// This deep import is the only way to detect the installed engine version.
|
|
16
|
+
// If it breaks on upgrade, getInstalledCamoufoxVersion() catches and returns 'unknown'.
|
|
17
|
+
const pkgman_js_1 = require("camoufox-js/dist/pkgman.js");
|
|
14
18
|
const playwright_core_1 = require("playwright-core");
|
|
15
19
|
const config_1 = require("../utils/config");
|
|
20
|
+
const sidecar_version_1 = require("../utils/sidecar-version");
|
|
16
21
|
const logging_1 = require("../middleware/logging");
|
|
17
22
|
const CONFIG = (0, config_1.loadConfig)();
|
|
18
|
-
const MAX_CONTEXTS =
|
|
23
|
+
const MAX_CONTEXTS = CONFIG.maxSessions;
|
|
19
24
|
function getHostOS() {
|
|
20
25
|
const platform = node_os_1.default.platform();
|
|
21
26
|
if (platform === 'darwin')
|
|
@@ -24,19 +29,67 @@ function getHostOS() {
|
|
|
24
29
|
return 'windows';
|
|
25
30
|
return 'linux';
|
|
26
31
|
}
|
|
27
|
-
function buildProxyConfig() {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
function buildProxyConfig(proxy) {
|
|
33
|
+
if (!proxy) {
|
|
34
|
+
// Fallback to configured server proxy
|
|
35
|
+
const { host, port, username, password } = CONFIG.proxy;
|
|
36
|
+
if (!host || !port)
|
|
37
|
+
return null;
|
|
38
|
+
return {
|
|
39
|
+
server: `http://${host}:${port}`,
|
|
40
|
+
username: username || undefined,
|
|
41
|
+
password: password || undefined,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
31
44
|
return {
|
|
32
|
-
server:
|
|
33
|
-
username: username
|
|
34
|
-
password: password
|
|
45
|
+
server: proxy.server,
|
|
46
|
+
username: proxy.username,
|
|
47
|
+
password: proxy.password,
|
|
35
48
|
};
|
|
36
49
|
}
|
|
37
|
-
function
|
|
50
|
+
function getInstalledCamoufoxVersion() {
|
|
51
|
+
try {
|
|
52
|
+
return (0, pkgman_js_1.installedVerStr)();
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return 'unknown';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function decodeDefaultProfileUserId(profileKey) {
|
|
59
|
+
if (!profileKey.startsWith('u:') || profileKey.indexOf(':', 2) !== -1)
|
|
60
|
+
return null;
|
|
61
|
+
try {
|
|
62
|
+
const encoded = profileKey.slice(2);
|
|
63
|
+
const bytes = Buffer.from(encoded, 'base64url');
|
|
64
|
+
if (bytes.length % 2 !== 0)
|
|
65
|
+
return null;
|
|
66
|
+
const decoded = bytes.toString('utf16le');
|
|
67
|
+
if (/^(?:u|s|p|o):/.test(decoded))
|
|
68
|
+
return null;
|
|
69
|
+
for (let i = 0; i < decoded.length; i += 1) {
|
|
70
|
+
const code = decoded.charCodeAt(i);
|
|
71
|
+
if (code >= 0xd800 && code <= 0xdbff) {
|
|
72
|
+
if (i + 1 >= decoded.length)
|
|
73
|
+
return null;
|
|
74
|
+
const next = decoded.charCodeAt(i + 1);
|
|
75
|
+
if (next < 0xdc00 || next > 0xdfff)
|
|
76
|
+
return null;
|
|
77
|
+
i += 1;
|
|
78
|
+
}
|
|
79
|
+
else if (code >= 0xdc00 && code <= 0xdfff) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return `u:${Buffer.from(decoded, 'utf16le').toString('base64url')}` === profileKey ? decoded : null;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function profileDirForProfileKey(profileKey) {
|
|
38
90
|
// Avoid path traversal from untrusted route params.
|
|
39
|
-
const
|
|
91
|
+
const defaultUserId = decodeDefaultProfileUserId(String(profileKey));
|
|
92
|
+
const safe = encodeURIComponent(defaultUserId ?? String(profileKey));
|
|
40
93
|
return node_path_1.default.join(CONFIG.profilesDir, safe);
|
|
41
94
|
}
|
|
42
95
|
function pickSeedOptions(opts) {
|
|
@@ -131,30 +184,57 @@ class ContextPool {
|
|
|
131
184
|
}
|
|
132
185
|
}
|
|
133
186
|
}
|
|
134
|
-
getEntry(
|
|
135
|
-
return this.pool.get(
|
|
187
|
+
getEntry(profileKey) {
|
|
188
|
+
return this.pool.get(profileKey);
|
|
136
189
|
}
|
|
137
190
|
getDisplayForUser(userId) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
191
|
+
// Find any entry for this userId (there may be multiple with different profile keys)
|
|
192
|
+
for (const entry of this.pool.values()) {
|
|
193
|
+
if (entry.userId !== String(userId))
|
|
194
|
+
continue;
|
|
195
|
+
if (entry.virtualDisplay) {
|
|
196
|
+
try {
|
|
197
|
+
const display = entry.virtualDisplay.get();
|
|
198
|
+
return typeof display === 'string' ? display : null;
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
148
203
|
}
|
|
204
|
+
const processDisplay = process.env.DISPLAY;
|
|
205
|
+
return typeof processDisplay === 'string' && processDisplay ? processDisplay : null;
|
|
149
206
|
}
|
|
150
|
-
|
|
151
|
-
return typeof processDisplay === 'string' && processDisplay ? processDisplay : null;
|
|
207
|
+
return null;
|
|
152
208
|
}
|
|
153
209
|
size() {
|
|
154
210
|
return this.pool.size;
|
|
155
211
|
}
|
|
156
212
|
listActiveUserIds() {
|
|
157
|
-
|
|
213
|
+
const userIds = new Set();
|
|
214
|
+
for (const entry of this.pool.values()) {
|
|
215
|
+
if (!entry.staged) {
|
|
216
|
+
userIds.add(entry.userId);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return Array.from(userIds);
|
|
220
|
+
}
|
|
221
|
+
getLifecycleSnapshot() {
|
|
222
|
+
let launchingContexts = 0;
|
|
223
|
+
let stagedContexts = 0;
|
|
224
|
+
for (const entry of this.pool.values()) {
|
|
225
|
+
if (entry.launching)
|
|
226
|
+
launchingContexts++;
|
|
227
|
+
if (entry.staged)
|
|
228
|
+
stagedContexts++;
|
|
229
|
+
}
|
|
230
|
+
return {
|
|
231
|
+
liveContexts: this.pool.size,
|
|
232
|
+
launchingContexts,
|
|
233
|
+
stagedContexts,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
getPoolEntries() {
|
|
237
|
+
return new Map(this.pool);
|
|
158
238
|
}
|
|
159
239
|
cleanupVirtualDisplay(entry) {
|
|
160
240
|
if (!entry.virtualDisplay)
|
|
@@ -169,12 +249,44 @@ class ContextPool {
|
|
|
169
249
|
entry.virtualDisplay = undefined;
|
|
170
250
|
}
|
|
171
251
|
}
|
|
172
|
-
async launchPersistentContext(userId, contextOptions) {
|
|
252
|
+
async launchPersistentContext(userId, profileKey, contextOptions, resolvedProxy) {
|
|
173
253
|
const hostOS = getHostOS();
|
|
174
|
-
const proxy = buildProxyConfig();
|
|
254
|
+
const proxy = buildProxyConfig(resolvedProxy);
|
|
175
255
|
const headless = this.headlessOverrides.get(userId) ?? CONFIG.headless;
|
|
176
|
-
const profileDir =
|
|
256
|
+
const profileDir = profileDirForProfileKey(profileKey);
|
|
177
257
|
node_fs_1.default.mkdirSync(profileDir, { recursive: true });
|
|
258
|
+
const compatPath = node_path_1.default.join(profileDir, 'compatibility.json');
|
|
259
|
+
try {
|
|
260
|
+
const currentVersion = getInstalledCamoufoxVersion();
|
|
261
|
+
if (currentVersion === 'unknown') {
|
|
262
|
+
throw new Error(`Cannot verify profile compatibility for user "${userId}": installed Camoufox version could not be determined. ` +
|
|
263
|
+
`Resolve the camoufox-js installation or delete the profile directory to reset: ${profileDir}`);
|
|
264
|
+
}
|
|
265
|
+
const compat = (0, sidecar_version_1.readVersionedSidecar)(compatPath, {
|
|
266
|
+
currentVersion: 1,
|
|
267
|
+
migrations: {},
|
|
268
|
+
label: 'profile compatibility',
|
|
269
|
+
});
|
|
270
|
+
if (compat) {
|
|
271
|
+
if (compat.camoufoxVersion === 'unknown') {
|
|
272
|
+
throw new Error(`Profile for user "${userId}" has unknown version provenance and cannot be verified. Delete the profile directory to reset: ${profileDir}`);
|
|
273
|
+
}
|
|
274
|
+
if (compat.camoufoxVersion !== currentVersion) {
|
|
275
|
+
throw new Error(`Profile for user "${userId}" was created with Camoufox ${compat.camoufoxVersion}, but the current version is ${currentVersion}. Delete the profile directory to reset: ${profileDir}`);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
(0, sidecar_version_1.writeVersionedSidecar)(compatPath, 1, {
|
|
280
|
+
camoufoxVersion: currentVersion,
|
|
281
|
+
createdAt: new Date().toISOString(),
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
catch (err) {
|
|
286
|
+
throw err instanceof Error
|
|
287
|
+
? err
|
|
288
|
+
: new Error(`Profile compatibility check failed for user "${userId}": ${String(err)}. Delete the profile directory to reset: ${profileDir}`);
|
|
289
|
+
}
|
|
178
290
|
let effectiveHeadless = headless === true;
|
|
179
291
|
let virtualDisplay = undefined;
|
|
180
292
|
if (headless === 'virtual' || (headless === false && hostOS === 'linux' && !hasUsableLinuxDisplay())) {
|
|
@@ -219,26 +331,46 @@ class ContextPool {
|
|
|
219
331
|
try {
|
|
220
332
|
const fpPath = node_path_1.default.join(profileDir, 'fingerprint.json');
|
|
221
333
|
let fingerprint;
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
334
|
+
const configuredOs = CONFIG.fingerprintDefaults.os;
|
|
335
|
+
const fingerprintOperatingSystems = Array.isArray(configuredOs)
|
|
336
|
+
? configuredOs
|
|
337
|
+
: configuredOs
|
|
338
|
+
? [configuredOs]
|
|
339
|
+
: [hostOS];
|
|
340
|
+
const configuredScreen = CONFIG.fingerprintDefaults.screen;
|
|
341
|
+
const fingerprintScreen = configuredScreen
|
|
342
|
+
? {
|
|
343
|
+
minWidth: configuredScreen.width,
|
|
344
|
+
maxWidth: configuredScreen.width,
|
|
345
|
+
minHeight: configuredScreen.height,
|
|
346
|
+
maxHeight: configuredScreen.height,
|
|
232
347
|
}
|
|
233
|
-
|
|
234
|
-
|
|
348
|
+
: undefined;
|
|
349
|
+
try {
|
|
350
|
+
const persistedFingerprint = (0, sidecar_version_1.readVersionedSidecar)(fpPath, {
|
|
351
|
+
currentVersion: 1,
|
|
352
|
+
migrations: {
|
|
353
|
+
0: (raw) => raw,
|
|
354
|
+
},
|
|
355
|
+
label: 'fingerprint sidecar',
|
|
356
|
+
});
|
|
357
|
+
fingerprint = persistedFingerprint ?? undefined;
|
|
358
|
+
if (fingerprint) {
|
|
359
|
+
(0, logging_1.log)('info', 'loaded persisted fingerprint', { userId, fpPath });
|
|
235
360
|
}
|
|
236
361
|
}
|
|
362
|
+
catch (err) {
|
|
363
|
+
throw err instanceof Error
|
|
364
|
+
? err
|
|
365
|
+
: new Error(`Fingerprint sidecar failed for user "${userId}": ${String(err)}. Delete ${fpPath} to reset.`);
|
|
366
|
+
}
|
|
237
367
|
if (!fingerprint) {
|
|
238
|
-
fingerprint = (0, fingerprints_js_1.generateFingerprint)(undefined, {
|
|
368
|
+
fingerprint = (0, fingerprints_js_1.generateFingerprint)(undefined, {
|
|
369
|
+
operatingSystems: fingerprintOperatingSystems,
|
|
370
|
+
...(fingerprintScreen ? { screen: fingerprintScreen } : {}),
|
|
371
|
+
});
|
|
239
372
|
try {
|
|
240
|
-
|
|
241
|
-
node_fs_1.default.writeFileSync(fpPath, JSON.stringify(fingerprint, null, 2), 'utf-8');
|
|
373
|
+
(0, sidecar_version_1.writeVersionedSidecar)(fpPath, 1, fingerprint);
|
|
242
374
|
(0, logging_1.log)('info', 'generated new fingerprint and persisted it', { userId, fpPath });
|
|
243
375
|
}
|
|
244
376
|
catch {
|
|
@@ -248,8 +380,11 @@ class ContextPool {
|
|
|
248
380
|
const opts = await (0, camoufox_js_1.launchOptions)({
|
|
249
381
|
headless: effectiveHeadless,
|
|
250
382
|
...(virtualDisplay ? { virtual_display: virtualDisplay.get() } : {}),
|
|
251
|
-
os: hostOS,
|
|
252
|
-
humanize: true,
|
|
383
|
+
os: configuredOs ?? hostOS,
|
|
384
|
+
humanize: CONFIG.fingerprintDefaults.humanize ?? true,
|
|
385
|
+
...(CONFIG.fingerprintDefaults.allowWebgl !== undefined
|
|
386
|
+
? { allow_webgl: CONFIG.fingerprintDefaults.allowWebgl }
|
|
387
|
+
: {}),
|
|
253
388
|
enable_cache: true,
|
|
254
389
|
proxy: proxy ?? undefined,
|
|
255
390
|
geoip: !!proxy,
|
|
@@ -277,23 +412,31 @@ class ContextPool {
|
|
|
277
412
|
throw err;
|
|
278
413
|
}
|
|
279
414
|
}
|
|
280
|
-
async restartContext(userId, headless) {
|
|
415
|
+
async restartContext(userId, headless, profileKey, options, resolvedProxy) {
|
|
281
416
|
const normalized = String(userId);
|
|
417
|
+
const targetProfileKey = profileKey ?? normalized;
|
|
282
418
|
if (headless !== undefined) {
|
|
283
419
|
this.headlessOverrides.set(normalized, headless);
|
|
284
420
|
}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
421
|
+
// Close all contexts for this userId (there may be multiple with different profiles)
|
|
422
|
+
const entriesToClose = [];
|
|
423
|
+
for (const [profileKey, entry] of this.pool.entries()) {
|
|
424
|
+
if (entry.userId === normalized) {
|
|
425
|
+
entriesToClose.push(profileKey);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
for (const profileKey of entriesToClose) {
|
|
429
|
+
await this.closeContext(profileKey);
|
|
288
430
|
}
|
|
289
|
-
|
|
431
|
+
// Return a new entry with the caller's runtime profile key.
|
|
432
|
+
return this.ensureContext(targetProfileKey, normalized, options, resolvedProxy);
|
|
290
433
|
}
|
|
291
434
|
async evictIfNeeded() {
|
|
292
435
|
if (this.pool.size <= MAX_CONTEXTS)
|
|
293
436
|
return;
|
|
294
437
|
let lru = null;
|
|
295
438
|
for (const entry of this.pool.values()) {
|
|
296
|
-
if (entry.launching)
|
|
439
|
+
if (entry.launching || entry.staged)
|
|
297
440
|
continue;
|
|
298
441
|
if (!lru || entry.lastAccess < lru.lastAccess)
|
|
299
442
|
lru = entry;
|
|
@@ -301,14 +444,18 @@ class ContextPool {
|
|
|
301
444
|
if (!lru)
|
|
302
445
|
return;
|
|
303
446
|
(0, logging_1.log)('info', 'evicting persistent context (LRU)', { userId: lru.userId, profileDir: lru.profileDir });
|
|
304
|
-
this.notifyEviction(lru.
|
|
305
|
-
await this.closeContext(lru.
|
|
447
|
+
this.notifyEviction(lru.profileKey);
|
|
448
|
+
await this.closeContext(lru.profileKey);
|
|
306
449
|
}
|
|
307
|
-
async ensureContext(userId, options) {
|
|
450
|
+
async ensureContext(profileKey, userId, options, resolvedProxy, staged = false, stagedGeneration) {
|
|
308
451
|
const normalized = String(userId);
|
|
309
|
-
let entry = this.pool.get(
|
|
452
|
+
let entry = this.pool.get(profileKey);
|
|
310
453
|
const seed = pickSeedOptions(options);
|
|
311
454
|
if (entry) {
|
|
455
|
+
if (staged) {
|
|
456
|
+
entry.staged = true;
|
|
457
|
+
entry.stagedGeneration = stagedGeneration;
|
|
458
|
+
}
|
|
312
459
|
entry.lastAccess = Date.now();
|
|
313
460
|
if (entry.launching) {
|
|
314
461
|
entry.context = await entry.launching;
|
|
@@ -322,7 +469,7 @@ class ContextPool {
|
|
|
322
469
|
void entry.context.pages();
|
|
323
470
|
}
|
|
324
471
|
catch {
|
|
325
|
-
this.pool.delete(
|
|
472
|
+
this.pool.delete(profileKey);
|
|
326
473
|
entry = undefined;
|
|
327
474
|
}
|
|
328
475
|
}
|
|
@@ -330,21 +477,27 @@ class ContextPool {
|
|
|
330
477
|
if (seedDiffers(entry.seedOptions, seed)) {
|
|
331
478
|
(0, logging_1.log)('warn', 'persistent context already exists; ignoring new context overrides', {
|
|
332
479
|
userId: normalized,
|
|
480
|
+
profileKey,
|
|
333
481
|
profileDir: entry.profileDir,
|
|
334
482
|
});
|
|
335
483
|
}
|
|
336
484
|
entry.lastAccess = Date.now();
|
|
337
485
|
return entry;
|
|
338
486
|
}
|
|
339
|
-
const profileDir =
|
|
487
|
+
const profileDir = profileDirForProfileKey(profileKey);
|
|
340
488
|
const newEntry = {
|
|
341
489
|
context: null,
|
|
342
490
|
userId: normalized,
|
|
491
|
+
profileKey,
|
|
343
492
|
profileDir,
|
|
344
493
|
lastAccess: Date.now(),
|
|
494
|
+
createdAt: Date.now(),
|
|
495
|
+
staged,
|
|
496
|
+
stagedGeneration,
|
|
497
|
+
proxyConfig: resolvedProxy || null,
|
|
345
498
|
seedOptions: seed,
|
|
346
499
|
};
|
|
347
|
-
newEntry.launching = this.launchPersistentContext(normalized, options)
|
|
500
|
+
newEntry.launching = this.launchPersistentContext(normalized, profileKey, options, resolvedProxy)
|
|
348
501
|
.then(({ context, virtualDisplay }) => {
|
|
349
502
|
newEntry.context = context;
|
|
350
503
|
newEntry.virtualDisplay = virtualDisplay;
|
|
@@ -352,27 +505,27 @@ class ContextPool {
|
|
|
352
505
|
newEntry.lastAccess = Date.now();
|
|
353
506
|
context.on('close', () => {
|
|
354
507
|
this.cleanupVirtualDisplay(newEntry);
|
|
355
|
-
(0, logging_1.log)('info', 'persistent context closed', { userId: normalized, profileDir });
|
|
356
|
-
this.pool.delete(
|
|
508
|
+
(0, logging_1.log)('info', 'persistent context closed', { userId: normalized, profileKey, profileDir });
|
|
509
|
+
this.pool.delete(profileKey);
|
|
357
510
|
});
|
|
358
511
|
return context;
|
|
359
512
|
})
|
|
360
513
|
.catch((err) => {
|
|
361
514
|
this.cleanupVirtualDisplay(newEntry);
|
|
362
|
-
this.pool.delete(
|
|
515
|
+
this.pool.delete(profileKey);
|
|
363
516
|
const message = err instanceof Error ? err.message : String(err);
|
|
364
|
-
(0, logging_1.log)('error', 'persistent context launch failed', { userId: normalized, profileDir, error: message });
|
|
517
|
+
(0, logging_1.log)('error', 'persistent context launch failed', { userId: normalized, profileKey, profileDir, error: message });
|
|
365
518
|
throw err;
|
|
366
519
|
});
|
|
367
|
-
this.pool.set(
|
|
520
|
+
this.pool.set(profileKey, newEntry);
|
|
368
521
|
await newEntry.launching;
|
|
369
522
|
await this.evictIfNeeded();
|
|
370
523
|
return newEntry;
|
|
371
524
|
}
|
|
372
|
-
async closeContext(
|
|
373
|
-
const normalized = String(
|
|
525
|
+
async closeContext(profileKey) {
|
|
526
|
+
const normalized = String(profileKey);
|
|
374
527
|
const entry = this.pool.get(normalized);
|
|
375
|
-
if (!entry)
|
|
528
|
+
if (!entry || entry.staged)
|
|
376
529
|
return;
|
|
377
530
|
try {
|
|
378
531
|
if (entry.launching) {
|
|
@@ -383,14 +536,80 @@ class ContextPool {
|
|
|
383
536
|
}
|
|
384
537
|
finally {
|
|
385
538
|
this.cleanupVirtualDisplay(entry);
|
|
386
|
-
this
|
|
387
|
-
|
|
539
|
+
// Only delete if this entry is still in the pool (avoid deleting a newer entry with same key)
|
|
540
|
+
const currentEntry = this.pool.get(normalized);
|
|
541
|
+
if (currentEntry === entry) {
|
|
542
|
+
this.pool.delete(normalized);
|
|
543
|
+
(0, logging_1.log)('info', 'persistent context removed from pool', { userId: entry.userId, profileKey: normalized, profileDir: entry.profileDir });
|
|
544
|
+
}
|
|
545
|
+
else {
|
|
546
|
+
(0, logging_1.log)('info', 'persistent context closed but newer entry exists', { userId: entry.userId, profileKey: normalized, profileDir: entry.profileDir });
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
async closeContextIfMatches(profileKey, expectedCreatedAt, expectedLastAccess) {
|
|
551
|
+
const normalized = String(profileKey);
|
|
552
|
+
const entry = this.pool.get(normalized);
|
|
553
|
+
if (!entry)
|
|
554
|
+
return;
|
|
555
|
+
if (entry.createdAt !== expectedCreatedAt)
|
|
556
|
+
return;
|
|
557
|
+
// If lastAccess was provided and has changed, the context was reused - don't close
|
|
558
|
+
if (expectedLastAccess !== undefined && entry.lastAccess !== expectedLastAccess)
|
|
559
|
+
return;
|
|
560
|
+
await this.closeContext(normalized);
|
|
561
|
+
}
|
|
562
|
+
setHeadlessOverride(userId, headless) {
|
|
563
|
+
this.headlessOverrides.set(String(userId), headless);
|
|
564
|
+
}
|
|
565
|
+
async closeStagedContext(profileKey, generation) {
|
|
566
|
+
const normalized = String(profileKey);
|
|
567
|
+
const entry = this.pool.get(normalized);
|
|
568
|
+
if (!entry?.staged)
|
|
569
|
+
return;
|
|
570
|
+
if (generation && entry.stagedGeneration !== generation)
|
|
571
|
+
return;
|
|
572
|
+
entry.staged = false;
|
|
573
|
+
entry.stagedGeneration = undefined;
|
|
574
|
+
await this.closeContext(normalized);
|
|
575
|
+
}
|
|
576
|
+
async closeContextByUserId(userId) {
|
|
577
|
+
const normalized = String(userId);
|
|
578
|
+
// Close all contexts for this userId
|
|
579
|
+
const entriesToClose = [];
|
|
580
|
+
for (const [profileKey, entry] of this.pool.entries()) {
|
|
581
|
+
if (entry.userId === normalized && !entry.staged) {
|
|
582
|
+
entriesToClose.push(profileKey);
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
for (const profileKey of entriesToClose) {
|
|
586
|
+
await this.closeContext(profileKey);
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
async closeStagedContextByUserId(userId, generation) {
|
|
590
|
+
const normalized = String(userId);
|
|
591
|
+
// Close all staged contexts for this userId
|
|
592
|
+
const entriesToClose = [];
|
|
593
|
+
for (const [profileKey, entry] of this.pool.entries()) {
|
|
594
|
+
if (entry.userId === normalized && entry.staged) {
|
|
595
|
+
if (!generation || entry.stagedGeneration === generation) {
|
|
596
|
+
entriesToClose.push(profileKey);
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
for (const profileKey of entriesToClose) {
|
|
601
|
+
await this.closeStagedContext(profileKey, generation);
|
|
388
602
|
}
|
|
389
603
|
}
|
|
390
604
|
async closeAll() {
|
|
391
|
-
const
|
|
392
|
-
for (const
|
|
393
|
-
|
|
605
|
+
const profileKeys = Array.from(this.pool.keys());
|
|
606
|
+
for (const profileKey of profileKeys) {
|
|
607
|
+
const entry = this.pool.get(profileKey);
|
|
608
|
+
if (entry?.staged) {
|
|
609
|
+
entry.staged = false;
|
|
610
|
+
entry.stagedGeneration = undefined;
|
|
611
|
+
}
|
|
612
|
+
await this.closeContext(profileKey);
|
|
394
613
|
}
|
|
395
614
|
}
|
|
396
615
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-pool.js","sourceRoot":"","sources":["../../../src/services/context-pool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context-pool.js","sourceRoot":"","sources":["../../../src/services/context-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { Page } from 'playwright-core';
|
|
2
2
|
import type { DownloadInfo, DownloadListFilters } from '../types';
|
|
3
|
+
export declare function markDownloadsStaged(tabId: string): void;
|
|
4
|
+
export declare function commitStagedDownloads(tabId: string): void;
|
|
3
5
|
export declare function buildContentUrl(id: string, userId: string): string;
|
|
4
6
|
export declare function registerDownloadListener(tabId: string, userId: string, page: Page): void;
|
|
5
7
|
export declare function upsertDownload(info: DownloadInfo): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/services/download.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAY,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/services/download.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAY,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAuBlE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElE;AA8QD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAiFxF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAyBvD;AAwCD,wBAAgB,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG;IAC5D,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/E,CAuBA;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAM3E;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWzE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAclE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAKlF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmB7D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkB3D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,MAAe,GAAG,MAAM,CAAC,OAAO,CAO/F;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C"}
|