clearcote 0.38.0 → 0.39.0
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/README.md +3 -1
- package/dist/cdpws.d.ts +11 -0
- package/dist/cdpws.d.ts.map +1 -0
- package/dist/cdpws.js +208 -0
- package/dist/cdpws.js.map +1 -0
- package/dist/geometry.d.ts +17 -9
- package/dist/geometry.d.ts.map +1 -1
- package/dist/geometry.js +77 -94
- package/dist/geometry.js.map +1 -1
- package/dist/index.d.ts +41 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +205 -72
- package/dist/index.js.map +1 -1
- package/dist/launchopts.d.ts +90 -0
- package/dist/launchopts.d.ts.map +1 -1
- package/dist/launchopts.js +209 -1
- package/dist/launchopts.js.map +1 -1
- package/dist/profileauto.d.ts +15 -0
- package/dist/profileauto.d.ts.map +1 -1
- package/dist/profileauto.js +36 -0
- package/dist/profileauto.js.map +1 -1
- package/dist/shaderdialect.d.ts +19 -6
- package/dist/shaderdialect.d.ts.map +1 -1
- package/dist/shaderdialect.js +61 -11
- package/dist/shaderdialect.js.map +1 -1
- package/package.json +1 -1
package/dist/geometry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../src/geometry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../src/geometry.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export { resolveGeo, resolveGeoDetailed, geoipTimeoutMs, GeoipError, type Geo, t
|
|
|
20
20
|
export { proxiedRequest, toProxySpec, type ProxySpec } from "./net.js";
|
|
21
21
|
export { resolveReleaseChannel, type ReleaseChannel } from "./download.js";
|
|
22
22
|
export { isFingerprintPassthrough } from "./fingerprint.js";
|
|
23
|
-
export { DEFAULT_IGNORED_ARGS, gpuBlocklistArgs, gateEngineSwitches, engineSupportsSwitch } from "./launchopts.js";
|
|
23
|
+
export { DEFAULT_IGNORED_ARGS, gpuBlocklistArgs, gpuBackendArgs, xDisplayAvailable, mesaEglAvailable, gateEngineSwitches, engineSupportsSwitch } from "./launchopts.js";
|
|
24
24
|
export { serveMultiplex, type MultiplexOptions, type MultiplexServer } from "./multiplex.js";
|
|
25
25
|
export type { HumanizeOptions } from "./humanize.js";
|
|
26
26
|
export { Profile, listProfiles, loadProfile, PROFILE_DIR, type ProfileOptions } from "./profile.js";
|
|
@@ -82,7 +82,7 @@ interface EphemeralProfileOption {
|
|
|
82
82
|
* {@link launchPersistentContext}; the directory is NOT deleted). */
|
|
83
83
|
userDataDir?: string;
|
|
84
84
|
}
|
|
85
|
-
/**
|
|
85
|
+
/** Shader-dialect reporting (see ./shaderdialect.ts). */
|
|
86
86
|
interface ShaderDialectOption {
|
|
87
87
|
/** Report ANGLE's translated shader in this dialect for
|
|
88
88
|
* `WEBGL_debug_shaders.getTranslatedShaderSource()`.
|
|
@@ -91,10 +91,10 @@ interface ShaderDialectOption {
|
|
|
91
91
|
* string it already advertises — without it the Vulkan backend answers with SPIR-V and the two
|
|
92
92
|
* values contradict each other. Rendering is unaffected.
|
|
93
93
|
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
shaderDialect?: ShaderDialect;
|
|
94
|
+
* ON by default for a Windows claim on a non-Windows host (since 0.39.0); pass `false` to turn it
|
|
95
|
+
* off. A shader the HLSL translator rejects falls back to the backend's own output, the state
|
|
96
|
+
* every launch was in before. Needs a PRO engine 151 r15+; older engines ignore it. */
|
|
97
|
+
shaderDialect?: ShaderDialect | false;
|
|
98
98
|
}
|
|
99
99
|
/** Engine behaviour switches that are not part of the persona (engine 152 r22+). */
|
|
100
100
|
interface EngineExtrasOption {
|
|
@@ -302,7 +302,15 @@ export interface ServeOptions extends LaunchOptions {
|
|
|
302
302
|
height: number;
|
|
303
303
|
};
|
|
304
304
|
}
|
|
305
|
-
/**
|
|
305
|
+
/**
|
|
306
|
+
* Handle for a standing clearcote CDP endpoint. Use `.cdpUrl` with any CDP client.
|
|
307
|
+
*
|
|
308
|
+
* close() WAITS FOR THE BROWSER TO EXIT, then removes what it leaves in the temp directory: the
|
|
309
|
+
* profile serve() made, and on Linux and macOS the browser's singleton-socket directory
|
|
310
|
+
* (org.chromium.Chromium.*), whichever profile it ran on. A browser stopped with a signal never
|
|
311
|
+
* removes that directory itself, and close() used to signal it and return at once: every serve() +
|
|
312
|
+
* close() left one behind, and the profile went while the browser was still writing it.
|
|
313
|
+
*/
|
|
306
314
|
export declare class Server {
|
|
307
315
|
private readonly proc;
|
|
308
316
|
readonly host: string;
|
|
@@ -311,6 +319,11 @@ export declare class Server {
|
|
|
311
319
|
private readonly ownUdd;
|
|
312
320
|
private readonly lease?;
|
|
313
321
|
private readonly launchToken?;
|
|
322
|
+
/** Where the browser's singleton socket lives, read while it runs (see browserProcessFiles). */
|
|
323
|
+
private readonly socketDir;
|
|
324
|
+
private closing;
|
|
325
|
+
private cleanedUp;
|
|
326
|
+
private readonly onProcessExit;
|
|
314
327
|
constructor(proc: ChildProcess, host: string, port: number, userDataDir: string, ownUdd: boolean, lease?: (LeaseSession | null) | undefined, launchToken?: {
|
|
315
328
|
file: string;
|
|
316
329
|
release(): void;
|
|
@@ -322,8 +335,29 @@ export declare class Server {
|
|
|
322
335
|
/** OS process id of the browser, when running. */
|
|
323
336
|
get pid(): number | undefined;
|
|
324
337
|
isAlive(): boolean;
|
|
338
|
+
/**
|
|
339
|
+
* Stop the browser and wait for it to exit (SIGTERM, then SIGKILL after 10 s), release the licence
|
|
340
|
+
* slot, then remove the temp profile serve() made and the browser's socket directory.
|
|
341
|
+
*/
|
|
325
342
|
close(): Promise<void>;
|
|
326
343
|
}
|
|
344
|
+
/** serve() as root on Linux needs --no-sandbox (unless the caller already passed it). */
|
|
345
|
+
export declare function serveNeedsNoSandbox(platform: string, uid: number | undefined, args: string[]): boolean;
|
|
346
|
+
/**
|
|
347
|
+
* The switch that keeps the engine's "unsupported command-line flag" warning bar off a served browser.
|
|
348
|
+
* Any flag on Chromium's list raises it, --no-sandbox among them (which serve adds as root on Linux),
|
|
349
|
+
* and it lands on the first tab: 56px off that tab's innerHeight, a frame (outer - inner) no other tab
|
|
350
|
+
* and no real Chrome has. launch() never shows it: Playwright starts that browser without a startup
|
|
351
|
+
* window, and passes --disable-infobars to a persistent context.
|
|
352
|
+
* - Headless: --disable-infobars, the same switch. Chromium honours it only in headless, where it
|
|
353
|
+
* suppresses infobars and nothing else, so every headless serve gets it.
|
|
354
|
+
* - Headed: Chromium ignores --disable-infobars. The one switch that drops the warning is --test-type,
|
|
355
|
+
* which also turns on test-harness behaviour (chrome.test in extension pages, no component
|
|
356
|
+
* extensions with background pages, no OS integration for installed web apps), none of it visible
|
|
357
|
+
* to a page. So only with --no-sandbox, the flag root on Linux cannot run without, and bare:
|
|
358
|
+
* --test-type=webdriver would also waive Payment Request's user-interaction check.
|
|
359
|
+
*/
|
|
360
|
+
export declare function serveInfobarArgs(headless: boolean, args: readonly string[]): string[];
|
|
327
361
|
/**
|
|
328
362
|
* Launch Clearcote with a RAW CDP endpoint and return a {@link Server} — the drop-in-for-the-whole-
|
|
329
363
|
* ecosystem mode. Unlike {@link launch} (which spawns and *owns* a Playwright browser), `serve`
|
|
@@ -341,8 +375,6 @@ export declare class Server {
|
|
|
341
375
|
* to the page; the port binds to loopback with an origin allowlist; attaching over CDP adds no
|
|
342
376
|
* launch flags, so the served persona is preserved end to end.
|
|
343
377
|
*/
|
|
344
|
-
/** serve() as root on Linux needs --no-sandbox (unless the caller already passed it). */
|
|
345
|
-
export declare function serveNeedsNoSandbox(platform: string, uid: number | undefined, args: string[]): boolean;
|
|
346
378
|
export declare function serve(options?: ServeOptions): Promise<Server>;
|
|
347
379
|
import { runAgentTask } from "./agent.js";
|
|
348
380
|
import { listProfiles, loadProfile } from "./profile.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
// hand-off and webhooks.
|
|
17
17
|
import { chromium } from "playwright-core";
|
|
18
18
|
import { cpSync, existsSync, mkdtempSync, readFileSync, readdirSync, readlinkSync, rmSync, statSync } from "node:fs";
|
|
19
|
-
import { spawn } from "node:child_process";
|
|
19
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
20
20
|
import { createServer } from "node:net";
|
|
21
21
|
import { tmpdir } from "node:os";
|
|
22
22
|
import { basename, dirname, join } from "node:path";
|
|
@@ -26,10 +26,10 @@ import { resolveGeoDetailed, startEgressDriftCheck, GeoipError } from "./geoip.j
|
|
|
26
26
|
import { installHumanize, installHumanizeOnContext } from "./humanize.js";
|
|
27
27
|
import { agentArgs, splitAgentOptions } from "./agent.js";
|
|
28
28
|
import { resolveProfileOptions, Profile } from "./profile.js";
|
|
29
|
-
import { resolveAuto, engineSupportsProfiles, MIN_PROFILE_ENGINE_MAJOR } from "./profileauto.js";
|
|
29
|
+
import { resolveAuto, engineSupportsProfiles, MIN_PROFILE_ENGINE_MAJOR, profileWithWindows11Faces } from "./profileauto.js";
|
|
30
30
|
import { measureHost } from "./profilesource.js";
|
|
31
31
|
import { defaultStickyKey, } from "./profilelib.js";
|
|
32
|
-
import { extensionArgs, portableArgs, resolveProxy, engineSupportsSwitch, warnUnsupportedEngineOptions, mergeFeatureFlags, privacySandboxArgs, quicArgs, socks5UdpArgs, webBluetoothArgs, webrtcDefaultDenyArgs, DEFAULT_IGNORED_ARGS, gpuBlocklistArgs, gateEngineSwitches, engineExtrasArgs, } from "./launchopts.js";
|
|
32
|
+
import { extensionArgs, portableArgs, resolveProxy, engineSupportsSwitch, warnUnsupportedEngineOptions, mergeFeatureFlags, playwrightFeatureOverrideArgs, privacySandboxArgs, quicArgs, socks5UdpArgs, webBluetoothArgs, webrtcDefaultDenyArgs, DEFAULT_IGNORED_ARGS, gpuBlocklistArgs, gpuBackendArgs, gateEngineSwitches, engineExtrasArgs, } from "./launchopts.js";
|
|
33
33
|
import { RELEASE, platformRelease } from "./release.js";
|
|
34
34
|
import { fetchWidevine, seedWidevine, widevineArgs } from "./widevine.js";
|
|
35
35
|
import { emitCoherenceWarnings, emitWarnings, serveExposureWarnings } from "./warnings.js";
|
|
@@ -45,7 +45,7 @@ export { resolveGeo, resolveGeoDetailed, geoipTimeoutMs, GeoipError } from "./ge
|
|
|
45
45
|
export { proxiedRequest, toProxySpec } from "./net.js";
|
|
46
46
|
export { resolveReleaseChannel } from "./download.js";
|
|
47
47
|
export { isFingerprintPassthrough } from "./fingerprint.js";
|
|
48
|
-
export { DEFAULT_IGNORED_ARGS, gpuBlocklistArgs, gateEngineSwitches, engineSupportsSwitch } from "./launchopts.js";
|
|
48
|
+
export { DEFAULT_IGNORED_ARGS, gpuBlocklistArgs, gpuBackendArgs, xDisplayAvailable, mesaEglAvailable, gateEngineSwitches, engineSupportsSwitch } from "./launchopts.js";
|
|
49
49
|
export { serveMultiplex } from "./multiplex.js";
|
|
50
50
|
export { Profile, listProfiles, loadProfile, PROFILE_DIR } from "./profile.js";
|
|
51
51
|
// Profile library: real captured personas, selected for coherence with THIS host.
|
|
@@ -209,12 +209,20 @@ function assembleArgs(fpArgs, agArgs, extArgs, proxyArgs, disablePrivacySandbox,
|
|
|
209
209
|
// Sandbox surface Chrome ships" failed as an implausible value — the same defect class as the
|
|
210
210
|
// WebUSB split fixed in r7. Pass disablePrivacySandbox: true when the persona really is
|
|
211
211
|
// de-Googled Chromium.
|
|
212
|
+
// Playwright disables third-party storage partitioning, which genuine Chrome never does; re-emit
|
|
213
|
+
// its list without that entry as the last --disable-features. See playwrightFeatureOverrideArgs.
|
|
214
|
+
if (extra && extra.playwrightIgnoreDefaultArgs !== undefined) {
|
|
215
|
+
base.push(...playwrightFeatureOverrideArgs(extra.playwrightIgnoreDefaultArgs ?? undefined));
|
|
216
|
+
}
|
|
212
217
|
if (disablePrivacySandbox === true)
|
|
213
218
|
base.push(...privacySandboxArgs());
|
|
214
219
|
base.push(...webrtcDefaultDenyArgs([...base, ...userArgs], webrtcIp));
|
|
215
220
|
if (extra) {
|
|
216
221
|
base.push(...engineExtrasArgs(extra, proxyForQuic, extra.quiet));
|
|
217
222
|
base.push(...gpuBlocklistArgs(!!extra.headed, process.platform, userArgs));
|
|
223
|
+
// On a Linux host, render WebGL through the backend whose limits match the CLAIMED platform
|
|
224
|
+
// (read back from the built persona switch; absent = pass-through). See gpuBackendArgs.
|
|
225
|
+
base.push(...gpuBackendArgs(fpArgs.find((a) => a.startsWith("--fingerprint-platform="))?.slice("--fingerprint-platform=".length), !!extra.headed, process.platform, userArgs));
|
|
218
226
|
}
|
|
219
227
|
const merged = mergeFeatureFlags([...base, ...userArgs]);
|
|
220
228
|
// Last: drop 152 r22+ switches this engine does not implement (with a warning), wherever they came from.
|
|
@@ -345,7 +353,8 @@ async function applyAutoProfile(fingerprint, exe, opts) {
|
|
|
345
353
|
return;
|
|
346
354
|
}
|
|
347
355
|
const { profile } = await resolveAuto(host, opts);
|
|
348
|
-
|
|
356
|
+
// The corpus never probed the Windows 11 system fonts; a Windows 11 donor gets them back.
|
|
357
|
+
fingerprint.fingerprintProfile = profileWithWindows11Faces(profile);
|
|
349
358
|
// A seed alongside a profile is the combination that fails strict scoring, and it also makes
|
|
350
359
|
// profile fields apply only partially. "auto" therefore never sets one — and says so if the
|
|
351
360
|
// caller supplied one, rather than silently doing something different from what was asked.
|
|
@@ -414,25 +423,8 @@ async function applyProfileAuto(profile, fingerprint, exe, o) {
|
|
|
414
423
|
function installEphemeralProfileCleanup(context, userDataDir) {
|
|
415
424
|
const browser = browserProcessFiles(userDataDir);
|
|
416
425
|
let done = false;
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
// attempt left the profile behind (1 of 3 exits with the browser open on 0.36.0).
|
|
420
|
-
const onExit = () => {
|
|
421
|
-
if (done)
|
|
422
|
-
return;
|
|
423
|
-
const pause = new Int32Array(new SharedArrayBuffer(4));
|
|
424
|
-
for (let attempt = 0; attempt < 8; attempt++) {
|
|
425
|
-
try {
|
|
426
|
-
if (browser.socketDir)
|
|
427
|
-
rmSync(browser.socketDir, { recursive: true, force: true });
|
|
428
|
-
rmSync(userDataDir, { recursive: true, force: true });
|
|
429
|
-
return;
|
|
430
|
-
}
|
|
431
|
-
catch {
|
|
432
|
-
Atomics.wait(pause, 0, 0, 50 * (attempt + 1)); // 50→400 ms, ~1.8 s at most
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
};
|
|
426
|
+
const onExit = () => { if (!done)
|
|
427
|
+
removeProfileDirSync(userDataDir, browser.socketDir); };
|
|
436
428
|
let removing = null;
|
|
437
429
|
const removeAfterExit = () => (removing ??= (async () => {
|
|
438
430
|
if (await waitForProcessExit(browser.pid))
|
|
@@ -500,13 +492,17 @@ async function waitForProcessExit(pid, timeoutMs = 10_000) {
|
|
|
500
492
|
await new Promise((r) => setTimeout(r, 50));
|
|
501
493
|
}
|
|
502
494
|
}
|
|
503
|
-
/**
|
|
495
|
+
/**
|
|
496
|
+
* Remove a profile directory (and the browser's socket dir), retrying while the browser still holds
|
|
497
|
+
* handles (see above). A null profile: only the socket dir, for a profile that is the caller's.
|
|
498
|
+
*/
|
|
504
499
|
async function removeProfileDir(userDataDir, socketDir = null) {
|
|
505
500
|
for (let attempt = 0; attempt < 6; attempt++) {
|
|
506
501
|
try {
|
|
507
502
|
if (socketDir)
|
|
508
503
|
rmSync(socketDir, { recursive: true, force: true });
|
|
509
|
-
|
|
504
|
+
if (userDataDir)
|
|
505
|
+
rmSync(userDataDir, { recursive: true, force: true });
|
|
510
506
|
return true;
|
|
511
507
|
}
|
|
512
508
|
catch {
|
|
@@ -515,6 +511,110 @@ async function removeProfileDir(userDataDir, socketDir = null) {
|
|
|
515
511
|
}
|
|
516
512
|
return false;
|
|
517
513
|
}
|
|
514
|
+
/**
|
|
515
|
+
* removeProfileDir for process exit. Synchronous: an exit handler cannot await, and an unresolved
|
|
516
|
+
* promise at exit removes nothing. It retries all the same: on Windows the killed browser's handles
|
|
517
|
+
* outlive it for a moment, and a single attempt left the profile behind (1 of 3 exits with the browser
|
|
518
|
+
* open on 0.36.0).
|
|
519
|
+
*/
|
|
520
|
+
function removeProfileDirSync(userDataDir, socketDir) {
|
|
521
|
+
const pause = new Int32Array(new SharedArrayBuffer(4));
|
|
522
|
+
for (let attempt = 0; attempt < 8; attempt++) {
|
|
523
|
+
try {
|
|
524
|
+
if (socketDir)
|
|
525
|
+
rmSync(socketDir, { recursive: true, force: true });
|
|
526
|
+
if (userDataDir)
|
|
527
|
+
rmSync(userDataDir, { recursive: true, force: true });
|
|
528
|
+
return;
|
|
529
|
+
}
|
|
530
|
+
catch {
|
|
531
|
+
Atomics.wait(pause, 0, 0, 50 * (attempt + 1)); // 50→400 ms, ~1.8 s at most
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
/**
|
|
536
|
+
* Stop a browser serve() started, and wait for it to exit: SIGTERM (on Windows, TerminateProcess),
|
|
537
|
+
* then SIGKILL once `graceMs` has passed. True once it has exited.
|
|
538
|
+
*/
|
|
539
|
+
async function stopServedBrowser(proc, graceMs) {
|
|
540
|
+
const exited = () => proc.exitCode !== null || proc.signalCode !== null;
|
|
541
|
+
const waitForExit = (ms) => new Promise((resolve) => {
|
|
542
|
+
if (exited())
|
|
543
|
+
return resolve(true);
|
|
544
|
+
const onExit = () => { clearTimeout(timer); resolve(true); };
|
|
545
|
+
const timer = setTimeout(() => { proc.off("exit", onExit); resolve(exited()); }, ms);
|
|
546
|
+
proc.once("exit", onExit);
|
|
547
|
+
});
|
|
548
|
+
if (exited())
|
|
549
|
+
return true;
|
|
550
|
+
try {
|
|
551
|
+
proc.kill("SIGTERM");
|
|
552
|
+
}
|
|
553
|
+
catch { /* gone */ }
|
|
554
|
+
if (await waitForExit(graceMs))
|
|
555
|
+
return true;
|
|
556
|
+
try {
|
|
557
|
+
proc.kill("SIGKILL");
|
|
558
|
+
}
|
|
559
|
+
catch { /* gone */ }
|
|
560
|
+
return waitForExit(5_000);
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* stopServedBrowser for process exit, where nothing can be awaited. Nor can the child's exit be seen
|
|
564
|
+
* the usual way: the event loop reaps exited children, and it no longer runs, so an exited browser
|
|
565
|
+
* stays a zombie that signal 0 still finds. Linux reads its state from /proc, macOS asks ps.
|
|
566
|
+
*/
|
|
567
|
+
function stopServedBrowserSync(proc, graceMs) {
|
|
568
|
+
const pid = proc.pid;
|
|
569
|
+
if (pid === undefined || proc.exitCode !== null || proc.signalCode !== null)
|
|
570
|
+
return true;
|
|
571
|
+
const gone = () => {
|
|
572
|
+
try {
|
|
573
|
+
process.kill(pid, 0); // on Windows this asks whether the process is still active
|
|
574
|
+
}
|
|
575
|
+
catch (e) {
|
|
576
|
+
return e.code === "ESRCH";
|
|
577
|
+
}
|
|
578
|
+
if (process.platform === "win32")
|
|
579
|
+
return false;
|
|
580
|
+
if (process.platform === "linux") {
|
|
581
|
+
try {
|
|
582
|
+
const stat = readFileSync(`/proc/${pid}/stat`, "utf8"); // "<pid> (<name>) <state> ..."
|
|
583
|
+
return stat[stat.lastIndexOf(")") + 2] === "Z";
|
|
584
|
+
}
|
|
585
|
+
catch {
|
|
586
|
+
return true;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
// ps prints the state, Z for a zombie, and nothing once the pid is gone.
|
|
590
|
+
const ps = spawnSync("ps", ["-o", "stat=", "-p", String(pid)], { encoding: "utf8" });
|
|
591
|
+
if (ps.error)
|
|
592
|
+
return false;
|
|
593
|
+
const state = (ps.stdout ?? "").trim();
|
|
594
|
+
return state === "" || state.startsWith("Z");
|
|
595
|
+
};
|
|
596
|
+
const pause = new Int32Array(new SharedArrayBuffer(4));
|
|
597
|
+
const waitForExit = (ms) => {
|
|
598
|
+
for (const deadline = Date.now() + ms;;) {
|
|
599
|
+
if (gone())
|
|
600
|
+
return true;
|
|
601
|
+
if (Date.now() >= deadline)
|
|
602
|
+
return false;
|
|
603
|
+
Atomics.wait(pause, 0, 0, 25);
|
|
604
|
+
}
|
|
605
|
+
};
|
|
606
|
+
try {
|
|
607
|
+
proc.kill("SIGTERM");
|
|
608
|
+
}
|
|
609
|
+
catch { /* gone */ }
|
|
610
|
+
if (waitForExit(graceMs))
|
|
611
|
+
return true;
|
|
612
|
+
try {
|
|
613
|
+
proc.kill("SIGKILL");
|
|
614
|
+
}
|
|
615
|
+
catch { /* gone */ }
|
|
616
|
+
return waitForExit(2_000);
|
|
617
|
+
}
|
|
518
618
|
/**
|
|
519
619
|
* A persistent context on a fresh temp profile the caller never named, so never sees again: it is
|
|
520
620
|
* removed when the context closes and at process exit — and at once when the launch fails, which
|
|
@@ -678,10 +778,11 @@ async function launchIncognito(options = {}) {
|
|
|
678
778
|
// resolved lazily on cold checkout only (never per launch); telemetry, never gates the lease
|
|
679
779
|
engineVersion: () => resolvedEngineVersion(version, !!resolveLicenseKey(licenseKey)),
|
|
680
780
|
});
|
|
681
|
-
const engineArgs = assembleArgs(fingerprintArgs(fingerprint), agentArgs(agent), [...extensionArgs(extensions), ...portableArgs(portableProfile, encryptionKey)], proxyArgs, disablePrivacySandbox, fingerprint.webrtcIp, args ?? [], proxyOpt, socks5Udp, { exe, headed, quiet, allowThirdPartyCookies, transparentProxy
|
|
781
|
+
const engineArgs = assembleArgs(fingerprintArgs(fingerprint), agentArgs(agent), [...extensionArgs(extensions), ...portableArgs(portableProfile, encryptionKey)], proxyArgs, disablePrivacySandbox, fingerprint.webrtcIp, args ?? [], proxyOpt, socks5Udp, { exe, headed, quiet, allowThirdPartyCookies, transparentProxy,
|
|
782
|
+
playwrightIgnoreDefaultArgs: pwOptions.ignoreDefaultArgs ?? null });
|
|
682
783
|
// On Linux, point FONTCONFIG_FILE at the bundled metric-compatible clones (Segoe UI, Arial, …)
|
|
683
784
|
// and LANGUAGE at the persona's UI locale (after engineArgs: it reads their --lang).
|
|
684
|
-
const launchEnv = withShaderDialect(shaderDialect, fontLaunchEnv(exe, pwOptions.env, engineArgs));
|
|
785
|
+
const launchEnv = withShaderDialect(shaderDialect, fontLaunchEnv(exe, pwOptions.env, engineArgs), engineArgs);
|
|
685
786
|
const launchToken = lease?.bindLaunch();
|
|
686
787
|
// A function: a launch retried after a stale-token refusal must carry the lease's fresh token.
|
|
687
788
|
const runtimeEnv = () => (lease ? withRunToken(lease.token, launchEnv, launchToken?.file) : launchEnv);
|
|
@@ -785,8 +886,9 @@ async function launchLocalPersistentContext(userDataDir, options = {}) {
|
|
|
785
886
|
// resolved lazily on cold checkout only (never per launch); telemetry, never gates the lease
|
|
786
887
|
engineVersion: () => resolvedEngineVersion(version, !!resolveLicenseKey(licenseKey)),
|
|
787
888
|
});
|
|
788
|
-
const engineArgs = assembleArgs(fingerprintArgs(fingerprint), agentArgs(agent), [...extensionArgs(extensions), ...portableArgs(portableProfile, encryptionKey)], proxyArgs, disablePrivacySandbox, fingerprint.webrtcIp, userArgs, proxyOpt, socks5Udp, { exe, headed: opts.headless === false, quiet, allowThirdPartyCookies, transparentProxy
|
|
789
|
-
|
|
889
|
+
const engineArgs = assembleArgs(fingerprintArgs(fingerprint), agentArgs(agent), [...extensionArgs(extensions), ...portableArgs(portableProfile, encryptionKey)], proxyArgs, disablePrivacySandbox, fingerprint.webrtcIp, userArgs, proxyOpt, socks5Udp, { exe, headed: opts.headless === false, quiet, allowThirdPartyCookies, transparentProxy,
|
|
890
|
+
playwrightIgnoreDefaultArgs: ignoreDefaultArgs ?? null });
|
|
891
|
+
const ctxEnv = withShaderDialect(shaderDialect, fontLaunchEnv(exe, opts.env, engineArgs), engineArgs);
|
|
790
892
|
const launchToken = lease?.bindLaunch();
|
|
791
893
|
// A function: a launch retried after a stale-token refusal must carry the lease's fresh token.
|
|
792
894
|
const runtimeEnv = () => (lease ? withRunToken(lease.token, ctxEnv, launchToken?.file) : ctxEnv);
|
|
@@ -851,7 +953,15 @@ function freePort() {
|
|
|
851
953
|
});
|
|
852
954
|
});
|
|
853
955
|
}
|
|
854
|
-
/**
|
|
956
|
+
/**
|
|
957
|
+
* Handle for a standing clearcote CDP endpoint. Use `.cdpUrl` with any CDP client.
|
|
958
|
+
*
|
|
959
|
+
* close() WAITS FOR THE BROWSER TO EXIT, then removes what it leaves in the temp directory: the
|
|
960
|
+
* profile serve() made, and on Linux and macOS the browser's singleton-socket directory
|
|
961
|
+
* (org.chromium.Chromium.*), whichever profile it ran on. A browser stopped with a signal never
|
|
962
|
+
* removes that directory itself, and close() used to signal it and return at once: every serve() +
|
|
963
|
+
* close() left one behind, and the profile went while the browser was still writing it.
|
|
964
|
+
*/
|
|
855
965
|
export class Server {
|
|
856
966
|
proc;
|
|
857
967
|
host;
|
|
@@ -860,6 +970,20 @@ export class Server {
|
|
|
860
970
|
ownUdd;
|
|
861
971
|
lease;
|
|
862
972
|
launchToken;
|
|
973
|
+
/** Where the browser's singleton socket lives, read while it runs (see browserProcessFiles). */
|
|
974
|
+
socketDir;
|
|
975
|
+
closing = null;
|
|
976
|
+
cleanedUp = false;
|
|
977
|
+
// Process exit: Node runs no async work there, so close()'s steps run synchronously.
|
|
978
|
+
onProcessExit = () => {
|
|
979
|
+
if (this.cleanedUp)
|
|
980
|
+
return;
|
|
981
|
+
stopServedBrowserSync(this.proc, 5_000);
|
|
982
|
+
this.lease?.stop().catch(() => { });
|
|
983
|
+
this.launchToken?.release();
|
|
984
|
+
removeProfileDirSync(this.ownUdd ? this.userDataDir : null, this.socketDir ?? browserProcessFiles(this.userDataDir).socketDir);
|
|
985
|
+
this.cleanedUp = true;
|
|
986
|
+
};
|
|
863
987
|
constructor(proc, host, port, userDataDir, ownUdd, lease, launchToken) {
|
|
864
988
|
this.proc = proc;
|
|
865
989
|
this.host = host;
|
|
@@ -868,6 +992,9 @@ export class Server {
|
|
|
868
992
|
this.ownUdd = ownUdd;
|
|
869
993
|
this.lease = lease;
|
|
870
994
|
this.launchToken = launchToken;
|
|
995
|
+
// Now, while the browser runs: one that shuts down cleanly unlinks it from the profile.
|
|
996
|
+
this.socketDir = browserProcessFiles(userDataDir).socketDir;
|
|
997
|
+
process.once("exit", this.onProcessExit);
|
|
871
998
|
}
|
|
872
999
|
/** HTTP CDP base — pass to `connectOverCDP` / `puppeteer.connect({ browserURL })`. */
|
|
873
1000
|
get cdpUrl() {
|
|
@@ -890,29 +1017,52 @@ export class Server {
|
|
|
890
1017
|
isAlive() {
|
|
891
1018
|
return this.proc.exitCode === null && !this.proc.killed;
|
|
892
1019
|
}
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
await this.
|
|
903
|
-
|
|
904
|
-
catch { /* ignore */ }
|
|
905
|
-
this.launchToken?.release();
|
|
906
|
-
if (this.ownUdd) {
|
|
1020
|
+
/**
|
|
1021
|
+
* Stop the browser and wait for it to exit (SIGTERM, then SIGKILL after 10 s), release the licence
|
|
1022
|
+
* slot, then remove the temp profile serve() made and the browser's socket directory.
|
|
1023
|
+
*/
|
|
1024
|
+
close() {
|
|
1025
|
+
return (this.closing ??= (async () => {
|
|
1026
|
+
if (this.cleanedUp)
|
|
1027
|
+
return;
|
|
1028
|
+
const socketDir = this.socketDir ?? browserProcessFiles(this.userDataDir).socketDir;
|
|
1029
|
+
await stopServedBrowser(this.proc, 10_000);
|
|
1030
|
+
// Release the concurrency slot (best-effort) + remove the run-token file.
|
|
907
1031
|
try {
|
|
908
|
-
|
|
909
|
-
}
|
|
910
|
-
catch {
|
|
911
|
-
/* ignore */
|
|
1032
|
+
await this.lease?.stop();
|
|
912
1033
|
}
|
|
913
|
-
|
|
1034
|
+
catch { /* ignore */ }
|
|
1035
|
+
this.launchToken?.release();
|
|
1036
|
+
await removeProfileDir(this.ownUdd ? this.userDataDir : null, socketDir);
|
|
1037
|
+
this.cleanedUp = true;
|
|
1038
|
+
process.off("exit", this.onProcessExit); // one per serve() would otherwise pile up
|
|
1039
|
+
})());
|
|
914
1040
|
}
|
|
915
1041
|
}
|
|
1042
|
+
/** serve() as root on Linux needs --no-sandbox (unless the caller already passed it). */
|
|
1043
|
+
export function serveNeedsNoSandbox(platform, uid, args) {
|
|
1044
|
+
return platform === "linux" && uid === 0 && !args.includes("--no-sandbox");
|
|
1045
|
+
}
|
|
1046
|
+
/**
|
|
1047
|
+
* The switch that keeps the engine's "unsupported command-line flag" warning bar off a served browser.
|
|
1048
|
+
* Any flag on Chromium's list raises it, --no-sandbox among them (which serve adds as root on Linux),
|
|
1049
|
+
* and it lands on the first tab: 56px off that tab's innerHeight, a frame (outer - inner) no other tab
|
|
1050
|
+
* and no real Chrome has. launch() never shows it: Playwright starts that browser without a startup
|
|
1051
|
+
* window, and passes --disable-infobars to a persistent context.
|
|
1052
|
+
* - Headless: --disable-infobars, the same switch. Chromium honours it only in headless, where it
|
|
1053
|
+
* suppresses infobars and nothing else, so every headless serve gets it.
|
|
1054
|
+
* - Headed: Chromium ignores --disable-infobars. The one switch that drops the warning is --test-type,
|
|
1055
|
+
* which also turns on test-harness behaviour (chrome.test in extension pages, no component
|
|
1056
|
+
* extensions with background pages, no OS integration for installed web apps), none of it visible
|
|
1057
|
+
* to a page. So only with --no-sandbox, the flag root on Linux cannot run without, and bare:
|
|
1058
|
+
* --test-type=webdriver would also waive Payment Request's user-interaction check.
|
|
1059
|
+
*/
|
|
1060
|
+
export function serveInfobarArgs(headless, args) {
|
|
1061
|
+
const has = (sw) => args.some((a) => a === sw || a.startsWith(`${sw}=`));
|
|
1062
|
+
if (headless)
|
|
1063
|
+
return has("--disable-infobars") ? [] : ["--disable-infobars"];
|
|
1064
|
+
return has("--no-sandbox") && !has("--test-type") ? ["--test-type"] : [];
|
|
1065
|
+
}
|
|
916
1066
|
/**
|
|
917
1067
|
* Launch Clearcote with a RAW CDP endpoint and return a {@link Server} — the drop-in-for-the-whole-
|
|
918
1068
|
* ecosystem mode. Unlike {@link launch} (which spawns and *owns* a Playwright browser), `serve`
|
|
@@ -930,10 +1080,6 @@ export class Server {
|
|
|
930
1080
|
* to the page; the port binds to loopback with an origin allowlist; attaching over CDP adds no
|
|
931
1081
|
* launch flags, so the served persona is preserved end to end.
|
|
932
1082
|
*/
|
|
933
|
-
/** serve() as root on Linux needs --no-sandbox (unless the caller already passed it). */
|
|
934
|
-
export function serveNeedsNoSandbox(platform, uid, args) {
|
|
935
|
-
return platform === "linux" && uid === 0 && !args.includes("--no-sandbox");
|
|
936
|
-
}
|
|
937
1083
|
export async function serve(options = {}) {
|
|
938
1084
|
const { port, host = "127.0.0.1", allowOrigins, userDataDir: uddOption, headless = true, readyTimeoutMs = 30000, windowSize, humanize: _humanize, // Playwright-only; not applicable to a direct launch
|
|
939
1085
|
showCursor: _showCursor, ...launchOpts } = options;
|
|
@@ -988,6 +1134,8 @@ export async function serve(options = {}) {
|
|
|
988
1134
|
// Playwright's own --no-sandbox is missing: `clearcote serve` in a root container just timed out.
|
|
989
1135
|
if (serveNeedsNoSandbox(process.platform, process.getuid?.(), engineArgs))
|
|
990
1136
|
cdpArgs.push("--no-sandbox");
|
|
1137
|
+
// ...and the warning bar that flag (or any of the caller's on Chromium's list) puts on the first tab.
|
|
1138
|
+
cdpArgs.push(...serveInfobarArgs(headless, [...engineArgs, ...cdpArgs]));
|
|
991
1139
|
// Headless geometry for a raw endpoint: the display and window are set browser-wide, since no
|
|
992
1140
|
// client's context options or CDP overrides would reach every page (see ./geometry.ts).
|
|
993
1141
|
const geometry = servedGeometry(engineArgs, fingerprint, headless);
|
|
@@ -1000,7 +1148,7 @@ export async function serve(options = {}) {
|
|
|
1000
1148
|
engineVersion: () => resolvedEngineVersion(version, !!resolveLicenseKey(licenseKey)),
|
|
1001
1149
|
});
|
|
1002
1150
|
const launchToken = lease?.bindLaunch();
|
|
1003
|
-
const env = { ...process.env, ...(withShaderDialect(shaderDialect, fontLaunchEnv(exe, undefined, engineArgs)) ?? {}), ...(lease ? { CLEARCOTE_RUN_TOKEN: lease.token, ...(launchToken ? { CLEARCOTE_RUN_TOKEN_FILE: launchToken.file } : {}) } : {}) };
|
|
1151
|
+
const env = { ...process.env, ...(withShaderDialect(shaderDialect, fontLaunchEnv(exe, undefined, engineArgs), engineArgs) ?? {}), ...(lease ? { CLEARCOTE_RUN_TOKEN: lease.token, ...(launchToken ? { CLEARCOTE_RUN_TOKEN_FILE: launchToken.file } : {}) } : {}) };
|
|
1004
1152
|
// Launched DIRECTLY (no Playwright) => no --enable-automation => navigator.webdriver stays false.
|
|
1005
1153
|
// Wrap in winAvRetry so a just-extracted binary survives the Windows SxS/AV first-launch race
|
|
1006
1154
|
// ("spawn UNKNOWN"), same as launch(): warm + back off + retry, then recover from a fresh copy.
|
|
@@ -1031,26 +1179,11 @@ export async function serve(options = {}) {
|
|
|
1031
1179
|
}
|
|
1032
1180
|
await new Promise((r) => setTimeout(r, 250));
|
|
1033
1181
|
}
|
|
1182
|
+
const srv = new Server(proc, host, resolvedPort, userDataDir, ownUdd, lease, launchToken);
|
|
1034
1183
|
if (!ready) {
|
|
1035
|
-
|
|
1036
|
-
proc.kill();
|
|
1037
|
-
}
|
|
1038
|
-
catch { /* ignore */ }
|
|
1039
|
-
try {
|
|
1040
|
-
await lease?.stop();
|
|
1041
|
-
}
|
|
1042
|
-
catch { /* ignore */ }
|
|
1043
|
-
launchToken?.release();
|
|
1044
|
-
if (ownUdd) {
|
|
1045
|
-
try {
|
|
1046
|
-
rmSync(userDataDir, { recursive: true, force: true });
|
|
1047
|
-
}
|
|
1048
|
-
catch { /* ignore */ }
|
|
1049
|
-
}
|
|
1184
|
+
await srv.close();
|
|
1050
1185
|
throw new Error(`clearcote serve: CDP endpoint at http://${host}:${resolvedPort} did not come up within ${readyTimeoutMs}ms`);
|
|
1051
1186
|
}
|
|
1052
|
-
const srv = new Server(proc, host, resolvedPort, userDataDir, ownUdd, lease, launchToken);
|
|
1053
|
-
process.once("exit", () => { void srv.close(); });
|
|
1054
1187
|
// Before any client attaches: the window onto the work area (and, under a persona, the headless
|
|
1055
1188
|
// display onto the persona's). Its own connection, closed again; never fails the launch.
|
|
1056
1189
|
if (geometry)
|