jumpy-lion 0.1.6-beta.21 → 0.1.6-beta.24
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 +188 -0
- package/dist/browser-controller.d.ts +13 -0
- package/dist/browser-controller.d.ts.map +1 -1
- package/dist/browser-controller.js +42 -0
- package/dist/browser-controller.js.map +1 -1
- package/dist/browser-plugin.d.ts +9 -0
- package/dist/browser-plugin.d.ts.map +1 -1
- package/dist/browser-plugin.js +61 -4
- package/dist/browser-plugin.js.map +1 -1
- package/dist/browser-process/anti-detect-config.d.ts +27 -0
- package/dist/browser-process/anti-detect-config.d.ts.map +1 -1
- package/dist/browser-process/anti-detect-config.js.map +1 -1
- package/dist/browser-process/browser.d.ts.map +1 -1
- package/dist/browser-process/browser.js +29 -6
- package/dist/browser-process/browser.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/page.d.ts +45 -0
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +228 -28
- package/dist/page.js.map +1 -1
- package/dist/session/inject-hook.d.ts +24 -0
- package/dist/session/inject-hook.d.ts.map +1 -0
- package/dist/session/inject-hook.js +80 -0
- package/dist/session/inject-hook.js.map +1 -0
- package/dist/session/save.d.ts +21 -0
- package/dist/session/save.d.ts.map +1 -0
- package/dist/session/save.js +163 -0
- package/dist/session/save.js.map +1 -0
- package/dist/session/tar-data-dir.d.ts +13 -0
- package/dist/session/tar-data-dir.d.ts.map +1 -0
- package/dist/session/tar-data-dir.js +107 -0
- package/dist/session/tar-data-dir.js.map +1 -0
- package/dist/session/types.d.ts +80 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +29 -0
- package/dist/session/types.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -22,6 +22,14 @@
|
|
|
22
22
|
- [Best Practices](#best-practices)
|
|
23
23
|
- [Performance Considerations](#performance-considerations)
|
|
24
24
|
- [Launch Options for Network and Persistence](#launch-options-for-network-and-persistence)
|
|
25
|
+
- [Session Bundle (save & restore browser state)](#session-bundle-save--restore-browser-state)
|
|
26
|
+
- [When to use it](#when-to-use-it)
|
|
27
|
+
- [Producer: capturing a bundle](#producer-capturing-a-bundle)
|
|
28
|
+
- [Consumer: rehydrating a bundle](#consumer-rehydrating-a-bundle)
|
|
29
|
+
- [What's inside a bundle](#whats-inside-a-bundle)
|
|
30
|
+
- [`saveSession()` options](#savesession-options)
|
|
31
|
+
- [`restoreSession()`](#restoresession)
|
|
32
|
+
- [Caveats](#caveats)
|
|
25
33
|
- [Crawler Class Documentation](#crawler-class-documentation)
|
|
26
34
|
- [Constructor](#constructor)
|
|
27
35
|
- [CdpPage Class Documentation](#cdppage-class-documentation)
|
|
@@ -30,6 +38,8 @@
|
|
|
30
38
|
- [Public Methods](#public-methods)
|
|
31
39
|
- [Utility Functions](#utility-functions)
|
|
32
40
|
- [createCDPRouter](#createcdprouter)
|
|
41
|
+
- [saveSession](#savesession)
|
|
42
|
+
- [restoreSession](#restoresession-1)
|
|
33
43
|
|
|
34
44
|
## Overview
|
|
35
45
|
|
|
@@ -299,6 +309,152 @@ const crawler = new Crawler({
|
|
|
299
309
|
|
|
300
310
|
---
|
|
301
311
|
|
|
312
|
+
## Session Bundle (save & restore browser state)
|
|
313
|
+
|
|
314
|
+
The session bundle lets one crawler **capture** the full live browser state — cookies, per-origin localStorage and sessionStorage, the Chrome user-data-dir (which transitively carries IndexedDB, Service Workers, and Cache Storage), the C++ `fingerprintConfig`, the captured `fingerprint`, and the resolved locale triple — into a single JSON-serializable blob. A second crawler can then **rehydrate** from that blob and come up byte-for-byte identical, so a session that was authenticated upstream stays authenticated downstream (matching what `naver-session-test` does, generalized into the framework).
|
|
315
|
+
|
|
316
|
+
This is mechanism, **not** persistence: nothing is written to disk for you. You stash the bundle wherever you like (Apify KV store, S3, a local file) and pass it back when you launch the next crawler.
|
|
317
|
+
|
|
318
|
+
### When to use it
|
|
319
|
+
|
|
320
|
+
- An Apify actor logs into a site, then hands the session to a second actor that does the actual scraping.
|
|
321
|
+
- A pool of long-running actors needs to checkpoint browser state between restarts.
|
|
322
|
+
- You need two crawls to look like the *exact same browser* to a bot detector (Cloudflare, DataDome, Naver) — same UA, same UA-CH, same WebGL renderer, same screen, same canvas/audio noise seed, same cookies, same localStorage, same Service Worker state.
|
|
323
|
+
|
|
324
|
+
### Producer: capturing a bundle
|
|
325
|
+
|
|
326
|
+
```typescript
|
|
327
|
+
import CDPCrawler, { saveSession, type SessionBundle } from 'cdp-crawler';
|
|
328
|
+
import { Actor } from 'apify';
|
|
329
|
+
|
|
330
|
+
let bundle: SessionBundle | undefined;
|
|
331
|
+
|
|
332
|
+
const producer = new CDPCrawler({
|
|
333
|
+
launchContext: {
|
|
334
|
+
launchOptions: {
|
|
335
|
+
useNativeStealth: true,
|
|
336
|
+
fingerprintOptions: { platform: 'MacIntel' },
|
|
337
|
+
},
|
|
338
|
+
},
|
|
339
|
+
requestHandler: async ({ page }) => {
|
|
340
|
+
await page.goto('https://target.example.com/login');
|
|
341
|
+
// … perform login, solve captcha, etc. …
|
|
342
|
+
|
|
343
|
+
bundle = await saveSession(page);
|
|
344
|
+
},
|
|
345
|
+
});
|
|
346
|
+
|
|
347
|
+
await producer.run(['https://target.example.com/login']);
|
|
348
|
+
await Actor.setValue('session', bundle); // ship to KV store for the next actor
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### Consumer: rehydrating a bundle
|
|
352
|
+
|
|
353
|
+
Pass the bundle as `launchOptions.sessionBundle` on the new crawler. The plugin extracts the user-data-dir into a temp directory, feeds the captured `fingerprintConfig` straight to the C++ patches (regeneration is skipped), pins `useNonApifyFingerprints: false`, and replays cookies + per-origin storage on every new page **before** any navigation runs.
|
|
354
|
+
|
|
355
|
+
```typescript
|
|
356
|
+
import CDPCrawler, { type SessionBundle } from 'cdp-crawler';
|
|
357
|
+
import { Actor } from 'apify';
|
|
358
|
+
|
|
359
|
+
const bundle = await Actor.getValue<SessionBundle>('session');
|
|
360
|
+
if (!bundle) throw new Error('No session bundle available');
|
|
361
|
+
|
|
362
|
+
const consumer = new CDPCrawler({
|
|
363
|
+
launchContext: {
|
|
364
|
+
launchOptions: {
|
|
365
|
+
useNativeStealth: true,
|
|
366
|
+
sessionBundle: bundle, // ← the only new option
|
|
367
|
+
},
|
|
368
|
+
},
|
|
369
|
+
requestHandler: async ({ page }) => {
|
|
370
|
+
// The first page already has the producer's cookies, localStorage,
|
|
371
|
+
// sessionStorage, IndexedDB, Service Worker registrations, etc.
|
|
372
|
+
await page.goto('https://target.example.com/account'); // already logged in
|
|
373
|
+
},
|
|
374
|
+
});
|
|
375
|
+
|
|
376
|
+
await consumer.run(['https://target.example.com/account']);
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### What's inside a bundle
|
|
380
|
+
|
|
381
|
+
```typescript
|
|
382
|
+
interface SessionBundle {
|
|
383
|
+
schemaVersion: 1;
|
|
384
|
+
createdAt: string;
|
|
385
|
+
createdBy?: { package: 'cdp-crawler'; version: string };
|
|
386
|
+
|
|
387
|
+
cookies: SerializedCookie[]; // Network.Cookie-shaped
|
|
388
|
+
localStorage: Record<origin, Record<key, value>>;
|
|
389
|
+
sessionStorage: Record<origin, Record<key, value>>;
|
|
390
|
+
|
|
391
|
+
userDataDir: {
|
|
392
|
+
encoding: 'base64+gzip+tar';
|
|
393
|
+
bytes: string; // the whole Chrome profile
|
|
394
|
+
sizeBytes: number;
|
|
395
|
+
capturedFiles: number;
|
|
396
|
+
} | null;
|
|
397
|
+
|
|
398
|
+
fingerprintConfig: FingerprintConfigJson; // C++ overrides JSON, byte-for-byte
|
|
399
|
+
fingerprint: BrowserFingerprintWithHeaders; // Crawlee-shaped fp object
|
|
400
|
+
fingerprintInput: { // The fingerprintOptions inputs
|
|
401
|
+
locale?: string; languages?: string; timezone?: string;
|
|
402
|
+
platform?: string; seedKey?: string;
|
|
403
|
+
useNonApifyFingerprints: false; // pinned on restore
|
|
404
|
+
[key: string]: unknown;
|
|
405
|
+
};
|
|
406
|
+
resolvedLocale: { locale: string; languages: string; timezone: string };
|
|
407
|
+
|
|
408
|
+
browserProfile: { // diagnostic snapshot
|
|
409
|
+
userAgent: string; platform: string; language: string;
|
|
410
|
+
screenWidth: number; screenHeight: number; devicePixelRatio: number;
|
|
411
|
+
webglRenderer: string; webglVendor: string;
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
proxyMeta?: { proxyUrl?: string; sessionId?: string; countryCode?: string };
|
|
415
|
+
}
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
Bundles are versioned via `schemaVersion`. Loading a bundle with an unrecognized version throws an explicit error rather than misbehaving silently. A helper `assertValidBundle(value)` is exported for callers that want to validate before passing the bundle around.
|
|
419
|
+
|
|
420
|
+
### `saveSession()` options
|
|
421
|
+
|
|
422
|
+
```typescript
|
|
423
|
+
await saveSession(page, {
|
|
424
|
+
includeUserDataDir: true, // default true; set false for a JSON-only bundle (~50 KB)
|
|
425
|
+
flushCookies: true, // default true → calls Storage.flushBrowserCookies first
|
|
426
|
+
userDataDirPath: undefined, // override; defaults to the path used at launch
|
|
427
|
+
cookieUrls: undefined, // forwarded to Network.getCookies as a fallback
|
|
428
|
+
proxyMeta: { // optional; stamped for inspection, NOT replayed
|
|
429
|
+
proxyUrl, sessionId, countryCode,
|
|
430
|
+
},
|
|
431
|
+
});
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
The proxy is intentionally not rebuilt on restore — pass your own `proxyUrl` to the consumer crawler so cookies stay tied to the same exit IP.
|
|
435
|
+
|
|
436
|
+
### `restoreSession()`
|
|
437
|
+
|
|
438
|
+
`restoreSession(page, bundle)` is the manual escape hatch for advanced users who open additional pages (or targets) inside a single crawl and want them to share the bundle's cookies + storage. Most users do not need it — the `launchOptions.sessionBundle` option is the canonical path.
|
|
439
|
+
|
|
440
|
+
```typescript
|
|
441
|
+
import { restoreSession } from 'cdp-crawler';
|
|
442
|
+
|
|
443
|
+
await restoreSession(page, bundle); // sets cookies + registers per-origin storage replay
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
Note: `restoreSession` cannot swap the user-data-dir or fingerprintConfig on a running browser — those are launch-time inputs and must travel through `launchOptions.sessionBundle`.
|
|
447
|
+
|
|
448
|
+
### Caveats
|
|
449
|
+
|
|
450
|
+
- **User-data-dir size**: a real Chrome profile can be several MB. Inlined as base64-gzipped-tar inside the JSON, this can push the bundle past the Apify KV-store 9 MB record limit. Use `includeUserDataDir: false` if you only need cookies + storage and can live without IndexedDB / Service Workers / Cache Storage.
|
|
451
|
+
- **Locks**: Singleton* sentinels, GPU/Shader/Code caches, and Crashpad metrics are deliberately stripped from the tar — they are process-bound or freely regenerable and would otherwise break restore on a new machine.
|
|
452
|
+
- **Capture timing**: the data-dir tar is taken while Chrome is still running. To avoid half-written LevelDB files, prefer to call `saveSession` after the page has gone idle (`waitForLoadState`-style settling, or right before `crawler.teardown()`). `saveSession` automatically calls `Storage.flushBrowserCookies` first.
|
|
453
|
+
- **Cross-version replay**: bundles are tagged with `createdBy.version`; loading a bundle produced by a meaningfully different `cdp-crawler` version may warn or fail depending on what changed in `fingerprintConfig`'s shape. The plan is to migrate forward, not to support arbitrarily old bundles.
|
|
454
|
+
- **Multi-origin localStorage**: `saveSession` captures the current page's origin only. If you need storage from multiple origins, navigate to each one before calling `saveSession`, or call `saveSession` per page and merge the bundles client-side.
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
302
458
|
## `Crawler` Class Documentation
|
|
303
459
|
|
|
304
460
|
### Constructor
|
|
@@ -605,3 +761,35 @@ Creates a custom router for handling crawling routes using CDP.
|
|
|
605
761
|
- `Router<Context>`: A configured router instance.
|
|
606
762
|
|
|
607
763
|
---
|
|
764
|
+
|
|
765
|
+
### `saveSession`
|
|
766
|
+
|
|
767
|
+
#### `export async function saveSession(page: CdpPage, options?: SaveSessionOptions): Promise<SessionBundle>`
|
|
768
|
+
|
|
769
|
+
Captures the full browser state of a running page — cookies, per-origin web storage, fingerprintConfig, fingerprint object, resolved locale, and the Chrome user-data-dir (inlined as base64-gzipped-tar) — into a single JSON-serializable bundle.
|
|
770
|
+
|
|
771
|
+
- **Parameters**:
|
|
772
|
+
- `page` (CdpPage): a page produced by a `CDPCrawler` instance.
|
|
773
|
+
- `options` (SaveSessionOptions): optional knobs:
|
|
774
|
+
- `includeUserDataDir` (boolean, default `true`): pack and inline the Chrome user-data-dir.
|
|
775
|
+
- `flushCookies` (boolean, default `true`): call `Storage.flushBrowserCookies` before snapshotting cookies.
|
|
776
|
+
- `userDataDirPath` (string): override the user-data-dir path; defaults to the one used at launch.
|
|
777
|
+
- `cookieUrls` (string[]): forwarded to `Network.getCookies` when `Storage.getCookies` is unavailable.
|
|
778
|
+
- `proxyMeta` ({ proxyUrl?, sessionId?, countryCode? }): stamped on the bundle for inspection only.
|
|
779
|
+
|
|
780
|
+
- **Returns**:
|
|
781
|
+
- `Promise<SessionBundle>`: a fully populated, JSON-serializable bundle.
|
|
782
|
+
|
|
783
|
+
See [Session Bundle](#session-bundle-save--restore-browser-state) for usage patterns.
|
|
784
|
+
|
|
785
|
+
### `restoreSession`
|
|
786
|
+
|
|
787
|
+
#### `export async function restoreSession(page: CdpPage, bundle: SessionBundle): Promise<void>`
|
|
788
|
+
|
|
789
|
+
Manually applies a bundle's cookies and per-origin web storage to an arbitrary page. Use this only for advanced flows (e.g. opening extra targets mid-crawl). The canonical path is `launchOptions.sessionBundle`, which also restores the user-data-dir and fingerprintConfig — `restoreSession` cannot swap those on a running browser.
|
|
790
|
+
|
|
791
|
+
- **Parameters**:
|
|
792
|
+
- `page` (CdpPage): the target page.
|
|
793
|
+
- `bundle` (SessionBundle): a bundle produced by `saveSession`.
|
|
794
|
+
|
|
795
|
+
---
|
|
@@ -40,6 +40,19 @@ NewPageResult> {
|
|
|
40
40
|
*/
|
|
41
41
|
protected _newPage(maxRetries?: number): Promise<NewPageResult>;
|
|
42
42
|
private _maybeOverrideFingerprint;
|
|
43
|
+
/**
|
|
44
|
+
* Records the launch-time inputs the saveSession() helper later needs to read
|
|
45
|
+
* off the page — fingerprintConfig, fingerprintOptions, resolvedLocale, fingerprint,
|
|
46
|
+
* userDataDir, proxyUrl, and the sessionBundle (if any).
|
|
47
|
+
* @private
|
|
48
|
+
*/
|
|
49
|
+
private _recordLaunchSnapshot;
|
|
50
|
+
/**
|
|
51
|
+
* Replays cookies + per-origin localStorage/sessionStorage from the sessionBundle
|
|
52
|
+
* onto a fresh page before any navigation happens.
|
|
53
|
+
* @private
|
|
54
|
+
*/
|
|
55
|
+
private _maybeRestoreSession;
|
|
43
56
|
/**
|
|
44
57
|
* Sets cookies on the given page.
|
|
45
58
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-controller.d.ts","sourceRoot":"","sources":["../src/browser-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAc,MAAM,SAAS,CAAC;AAGxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAIhE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,OAAO,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-controller.d.ts","sourceRoot":"","sources":["../src/browser-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAc,MAAM,SAAS,CAAC;AAGxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAIhE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,OAAO,MAAM,WAAW,CAAC;AAGhC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;AAEpC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,iBAAiB,CAC/D,WAAW,EAAE,6CAA6C;AAC1D,oBAAoB,EAAE,gBAAgB;AACtC,YAAY,EAAE,4BAA4B;AAC1C,EAAE,EAAE,0DAA0D;AAC9D,aAAa,CAChB;IACG,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,SAAS,CAAS;IAEpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BjC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAiBjC;;;OAGG;YACW,iBAAiB;IAqC/B;;;OAGG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAiCvC;;;OAGG;cACa,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBtC;;;OAGG;cACa,QAAQ,CAAC,UAAU,SAAI,GAAG,OAAO,CAAC,aAAa,CAAC;YAuDlD,yBAAyB;IAuOvC;;;;;OAKG;YACW,qBAAqB;IAiBnC;;;;OAIG;YACW,oBAAoB;IAUlC;;;OAGG;cACa,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlF;;;OAGG;cACa,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ1D,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI5G"}
|
|
@@ -5,6 +5,7 @@ import { PAGE_CLOSED } from './events.js';
|
|
|
5
5
|
import { CdpFingerprintInjector } from './fingerprinting/fingerprint-injector.js';
|
|
6
6
|
import { generateNonApifyFingerprint } from './fingerprinting/non-apify-fingerprint-generator.js';
|
|
7
7
|
import CdpPage from './page.js';
|
|
8
|
+
import { installSessionInjectionHook } from './session/inject-hook.js';
|
|
8
9
|
export default class CDPBrowserController extends BrowserController {
|
|
9
10
|
constructor() {
|
|
10
11
|
super(...arguments);
|
|
@@ -191,6 +192,8 @@ export default class CDPBrowserController extends BrowserController {
|
|
|
191
192
|
this.activePages -= 1;
|
|
192
193
|
});
|
|
193
194
|
await this._maybeOverrideFingerprint(page);
|
|
195
|
+
await this._recordLaunchSnapshot(page);
|
|
196
|
+
await this._maybeRestoreSession(page);
|
|
194
197
|
return page;
|
|
195
198
|
}
|
|
196
199
|
catch (error) {
|
|
@@ -414,6 +417,45 @@ export default class CDPBrowserController extends BrowserController {
|
|
|
414
417
|
log.error('Error attaching fingerprint', { error });
|
|
415
418
|
}
|
|
416
419
|
}
|
|
420
|
+
/**
|
|
421
|
+
* Records the launch-time inputs the saveSession() helper later needs to read
|
|
422
|
+
* off the page — fingerprintConfig, fingerprintOptions, resolvedLocale, fingerprint,
|
|
423
|
+
* userDataDir, proxyUrl, and the sessionBundle (if any).
|
|
424
|
+
* @private
|
|
425
|
+
*/
|
|
426
|
+
async _recordLaunchSnapshot(page) {
|
|
427
|
+
try {
|
|
428
|
+
const launchOptions = this.launchContext.launchOptions ?? {};
|
|
429
|
+
page.setLaunchSnapshot({
|
|
430
|
+
fingerprintConfig: launchOptions.fingerprintConfig,
|
|
431
|
+
fingerprintOptions: (launchOptions.fingerprintOptions ?? {}),
|
|
432
|
+
resolvedLocale: launchOptions.resolvedLocale,
|
|
433
|
+
fingerprint: this.launchContext.fingerprint,
|
|
434
|
+
userDataDir: launchOptions.userDataDir,
|
|
435
|
+
proxyUrl: this.launchContext.proxyUrl,
|
|
436
|
+
sessionBundle: launchOptions.sessionBundle,
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
catch (err) {
|
|
440
|
+
log.warning('Failed to record launch snapshot on page', { err: err.message });
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Replays cookies + per-origin localStorage/sessionStorage from the sessionBundle
|
|
445
|
+
* onto a fresh page before any navigation happens.
|
|
446
|
+
* @private
|
|
447
|
+
*/
|
|
448
|
+
async _maybeRestoreSession(page) {
|
|
449
|
+
const bundle = this.launchContext.launchOptions?.sessionBundle;
|
|
450
|
+
if (!bundle)
|
|
451
|
+
return;
|
|
452
|
+
try {
|
|
453
|
+
await installSessionInjectionHook(page, bundle);
|
|
454
|
+
}
|
|
455
|
+
catch (err) {
|
|
456
|
+
log.error('Failed to inject session bundle on new page', { err: err.message });
|
|
457
|
+
}
|
|
458
|
+
}
|
|
417
459
|
/**
|
|
418
460
|
* Sets cookies on the given page.
|
|
419
461
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-controller.js","sourceRoot":"","sources":["../src/browser-controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser-controller.js","sourceRoot":"","sources":["../src/browser-controller.ts"],"names":[],"mappings":"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"}
|
package/dist/browser-plugin.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { type FingerprintConfigJson } from './browser-process/anti-detect-config
|
|
|
5
5
|
import { type ResolvedLocale } from './fingerprinting/locale-resolver.js';
|
|
6
6
|
import type { LaunchReturn } from './launcher-wrap.js';
|
|
7
7
|
import { CdpLauncher } from './launcher-wrap.js';
|
|
8
|
+
import { type SessionBundle } from './session/types.js';
|
|
8
9
|
type Library = CdpLauncher;
|
|
9
10
|
type LaunchResult = LaunchReturn;
|
|
10
11
|
interface NewPageOptions {
|
|
@@ -114,6 +115,14 @@ export interface LaunchBrowserOptions {
|
|
|
114
115
|
* coherent. Consumers should prefer this over re-deriving from fingerprintOptions.
|
|
115
116
|
*/
|
|
116
117
|
resolvedLocale?: ResolvedLocale;
|
|
118
|
+
/**
|
|
119
|
+
* Optional saved-state bundle from a previous crawl (produced by `saveSession`).
|
|
120
|
+
* When set, the bundle's user-data-dir is extracted into a temp directory and used
|
|
121
|
+
* as `userDataDir`, the captured `fingerprintConfig` is fed verbatim to the native
|
|
122
|
+
* stealth path (regeneration is skipped), and cookies + per-origin web storage are
|
|
123
|
+
* replayed on every new page before navigation.
|
|
124
|
+
*/
|
|
125
|
+
sessionBundle?: SessionBundle;
|
|
117
126
|
}
|
|
118
127
|
export default class CDPBrowserPlugin extends BrowserPlugin<Library, LaunchBrowserOptions, LaunchResult, NewPageOptions, NewPageResult> {
|
|
119
128
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-plugin.d.ts","sourceRoot":"","sources":["../src/browser-plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"browser-plugin.d.ts","sourceRoot":"","sources":["../src/browser-plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/browser-plugin.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
1
2
|
import net from 'net';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import path from 'path';
|
|
2
5
|
import { BrowserPlugin, log } from 'crawlee';
|
|
3
6
|
import CDPBrowserController from './browser-controller.js';
|
|
4
7
|
import { launchChromeBrowserWithNewProfile } from './browser-process/browser.js';
|
|
@@ -9,6 +12,8 @@ import { generateNonApifyFingerprint } from './fingerprinting/non-apify-fingerpr
|
|
|
9
12
|
import { fetchProxyCountry, resolveLocale } from './fingerprinting/locale-resolver.js';
|
|
10
13
|
import { CdpLauncher } from './launcher-wrap.js';
|
|
11
14
|
import { anonymizeProxySugar } from './proxy/anonymize-proxy.js';
|
|
15
|
+
import { untarUserDataDir } from './session/tar-data-dir.js';
|
|
16
|
+
import { assertValidBundle } from './session/types.js';
|
|
12
17
|
class CDPBrowserPlugin extends BrowserPlugin {
|
|
13
18
|
/**
|
|
14
19
|
* Accept flat LaunchBrowserOptions directly (not nested inside BrowserPluginOptions).
|
|
@@ -201,11 +206,45 @@ class CDPBrowserPlugin extends BrowserPlugin {
|
|
|
201
206
|
if (anonymizedProxyUrl) {
|
|
202
207
|
launchOptions.proxyUrl = anonymizedProxyUrl;
|
|
203
208
|
}
|
|
209
|
+
// If the caller handed us a previously-captured session bundle, hydrate
|
|
210
|
+
// launch state from it BEFORE any locale resolution / fingerprint
|
|
211
|
+
// generation runs — so the downstream code paths see the bundle's values
|
|
212
|
+
// as if the user had set them by hand and we never call the generators.
|
|
213
|
+
const sessionBundle = launchOptions.sessionBundle;
|
|
214
|
+
if (sessionBundle) {
|
|
215
|
+
assertValidBundle(sessionBundle);
|
|
216
|
+
if (sessionBundle.userDataDir && !launchOptions.userDataDir) {
|
|
217
|
+
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'cdp-crawler-session-'));
|
|
218
|
+
await untarUserDataDir(sessionBundle.userDataDir, tempDir);
|
|
219
|
+
launchOptions.userDataDir = tempDir;
|
|
220
|
+
log.info('[session] Restored user-data-dir from bundle', {
|
|
221
|
+
tempDir,
|
|
222
|
+
sizeBytes: sessionBundle.userDataDir.sizeBytes,
|
|
223
|
+
capturedFiles: sessionBundle.userDataDir.capturedFiles,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
launchOptions.resolvedLocale = sessionBundle.resolvedLocale;
|
|
227
|
+
launchOptions.fingerprintConfig = sessionBundle.fingerprintConfig;
|
|
228
|
+
launchOptions.fingerprintOptions = {
|
|
229
|
+
...(launchOptions.fingerprintOptions ?? {}),
|
|
230
|
+
...sessionBundle.fingerprintInput,
|
|
231
|
+
useNonApifyFingerprints: false,
|
|
232
|
+
};
|
|
233
|
+
launchContext.fingerprint = sessionBundle.fingerprint;
|
|
234
|
+
log.info('[session] Hydrated launchContext from sessionBundle', {
|
|
235
|
+
cookies: sessionBundle.cookies.length,
|
|
236
|
+
localStorageOrigins: Object.keys(sessionBundle.localStorage).length,
|
|
237
|
+
sessionStorageOrigins: Object.keys(sessionBundle.sessionStorage).length,
|
|
238
|
+
locale: sessionBundle.resolvedLocale.locale,
|
|
239
|
+
timezone: sessionBundle.resolvedLocale.timezone,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
204
242
|
// Resolve the locale triple once per launch so native-stealth args, CDP overrides,
|
|
205
243
|
// and the FingerprintConfigJson all read the same { locale, languages, timezone }.
|
|
206
244
|
// Priority: explicit fingerprintOptions.locale → proxy country (via ipinfo.io) →
|
|
207
|
-
// fingerprint-generator language → 'en-US'.
|
|
208
|
-
|
|
245
|
+
// fingerprint-generator language → 'en-US'. Skipped when a sessionBundle already
|
|
246
|
+
// pinned the triple above.
|
|
247
|
+
if (!launchOptions.resolvedLocale) {
|
|
209
248
|
const fpOpts = launchOptions.fingerprintOptions;
|
|
210
249
|
const fingerprintLanguage = fingerprint?.headers
|
|
211
250
|
? (fingerprint.headers['accept-language'] ?? fingerprint.headers['Accept-Language'])
|
|
@@ -231,7 +270,9 @@ class CDPBrowserPlugin extends BrowserPlugin {
|
|
|
231
270
|
// The static default_fingerprint.json always uses the same GPU/screen/CPU — every
|
|
232
271
|
// browser instance looks identical. By generating the config from the fingerprint
|
|
233
272
|
// profile before launch, each session gets unique hardware-level C++ patches.
|
|
234
|
-
|
|
273
|
+
// Skipped when a sessionBundle pre-supplied the config — that is the whole point
|
|
274
|
+
// of byte-for-byte replay.
|
|
275
|
+
if (launchOptions.useNativeStealth && !sessionBundle) {
|
|
235
276
|
const _fpOpts = launchOptions.fingerprintOptions;
|
|
236
277
|
// Seed source for deterministic profile selection. Production: extract
|
|
237
278
|
// from the proxy URL's `session-X` token so each Apify session sticks to
|
|
@@ -733,6 +774,22 @@ class CDPBrowserPlugin extends BrowserPlugin {
|
|
|
733
774
|
let browserProcess;
|
|
734
775
|
switch (browserType) {
|
|
735
776
|
case "chrome": {
|
|
777
|
+
// Anti-Detect 2026-05-18: when native stealth is active and the
|
|
778
|
+
// caller didn't pin an explicit policy, default to
|
|
779
|
+
// `disable_non_proxied_udp` — the strictest setting, which
|
|
780
|
+
// tells Chromium's WebRTC stack to refuse UDP traffic unless
|
|
781
|
+
// it's tunneled through the proxy. This prevents host/srflx
|
|
782
|
+
// ICE candidate GATHERING at the network layer (which would
|
|
783
|
+
// otherwise add the real LAN/public IP to
|
|
784
|
+
// peerConnection.localDescription.sdp regardless of any
|
|
785
|
+
// JS-visible event filter). Pairs with the renderer-side
|
|
786
|
+
// candidate filter in rtc_peer_connection.cc::
|
|
787
|
+
// DidGenerateICECandidate that catches anything the policy
|
|
788
|
+
// misses on the trickle-ICE event path. Detection vectors
|
|
789
|
+
// covered: browserleaks.com/webrtc, ipleak.net,
|
|
790
|
+
// FingerprintJS WebRTC panel.
|
|
791
|
+
const effectiveWebrtcPolicy = webrtcIpHandlingPolicy
|
|
792
|
+
?? (useNativeStealth ? 'disable_non_proxied_udp' : undefined);
|
|
736
793
|
browserProcess = await launchChromeBrowserWithNewProfile({
|
|
737
794
|
debuggingPort,
|
|
738
795
|
anonymizedProxyUrl: proxyUrl,
|
|
@@ -750,7 +807,7 @@ class CDPBrowserPlugin extends BrowserPlugin {
|
|
|
750
807
|
keepUserDataDir,
|
|
751
808
|
dnsOverHttpsServer,
|
|
752
809
|
secureDnsMode,
|
|
753
|
-
webrtcIpHandlingPolicy,
|
|
810
|
+
webrtcIpHandlingPolicy: effectiveWebrtcPolicy,
|
|
754
811
|
});
|
|
755
812
|
break;
|
|
756
813
|
}
|