@crawlee/browser-pool 4.0.0-beta.7 → 4.0.0-beta.70
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 +17 -13
- package/abstract-classes/browser-controller.d.ts +67 -7
- package/abstract-classes/browser-controller.d.ts.map +1 -1
- package/abstract-classes/browser-controller.js +6 -9
- package/abstract-classes/browser-controller.js.map +1 -1
- package/abstract-classes/browser-plugin.d.ts +37 -2
- package/abstract-classes/browser-plugin.d.ts.map +1 -1
- package/abstract-classes/browser-plugin.js +65 -6
- package/abstract-classes/browser-plugin.js.map +1 -1
- package/anonymize-proxy.d.ts +5 -1
- package/anonymize-proxy.d.ts.map +1 -1
- package/anonymize-proxy.js +9 -4
- package/anonymize-proxy.js.map +1 -1
- package/browser-pool.d.ts +88 -13
- package/browser-pool.d.ts.map +1 -1
- package/browser-pool.js +139 -25
- package/browser-pool.js.map +1 -1
- package/fingerprinting/hooks.d.ts.map +1 -1
- package/fingerprinting/hooks.js +24 -8
- package/fingerprinting/hooks.js.map +1 -1
- package/index.d.ts +14 -6
- package/index.d.ts.map +1 -1
- package/index.js +5 -2
- package/index.js.map +1 -1
- package/launch-context.d.ts +19 -2
- package/launch-context.d.ts.map +1 -1
- package/launch-context.js +11 -3
- package/launch-context.js.map +1 -1
- package/package.json +7 -8
- package/playwright/playwright-browser.d.ts.map +1 -1
- package/playwright/playwright-browser.js.map +1 -1
- package/playwright/playwright-controller.d.ts.map +1 -1
- package/playwright/playwright-controller.js +20 -9
- package/playwright/playwright-controller.js.map +1 -1
- package/playwright/playwright-plugin.d.ts +6 -0
- package/playwright/playwright-plugin.d.ts.map +1 -1
- package/playwright/playwright-plugin.js +27 -3
- package/playwright/playwright-plugin.js.map +1 -1
- package/puppeteer/puppeteer-controller.d.ts.map +1 -1
- package/puppeteer/puppeteer-controller.js +11 -8
- package/puppeteer/puppeteer-controller.js.map +1 -1
- package/puppeteer/puppeteer-plugin.d.ts +3 -0
- package/puppeteer/puppeteer-plugin.d.ts.map +1 -1
- package/puppeteer/puppeteer-plugin.js +81 -43
- package/puppeteer/puppeteer-plugin.js.map +1 -1
- package/remote-browser-pool.d.ts +173 -0
- package/remote-browser-pool.d.ts.map +1 -0
- package/remote-browser-pool.js +192 -0
- package/remote-browser-pool.js.map +1 -0
- package/remote-browser-provider.d.ts +84 -0
- package/remote-browser-provider.d.ts.map +1 -0
- package/remote-browser-provider.js +68 -0
- package/remote-browser-provider.js.map +1 -0
- package/utils.d.ts +7 -0
- package/utils.d.ts.map +1 -1
- package/utils.js +19 -0
- package/utils.js.map +1 -1
- package/logger.d.ts +0 -3
- package/logger.d.ts.map +0 -1
- package/logger.js +0 -5
- package/logger.js.map +0 -1
- package/tsconfig.build.tsbuildinfo +0 -1
package/fingerprinting/hooks.js
CHANGED
|
@@ -1,27 +1,39 @@
|
|
|
1
1
|
import { PlaywrightPlugin } from '../playwright/playwright-plugin.js';
|
|
2
2
|
import { PuppeteerPlugin } from '../puppeteer/puppeteer-plugin.js';
|
|
3
3
|
import { getGeneratorDefaultOptions } from './utils.js';
|
|
4
|
+
function applySessionHints(base, fingerprint) {
|
|
5
|
+
if (!fingerprint)
|
|
6
|
+
return base;
|
|
7
|
+
return {
|
|
8
|
+
...base,
|
|
9
|
+
...(fingerprint.browser ? { browsers: [{ name: fingerprint.browser }] } : {}),
|
|
10
|
+
...(fingerprint.platform ? { operatingSystems: [fingerprint.platform] } : {}),
|
|
11
|
+
...(fingerprint.device ? { devices: [fingerprint.device] } : {}),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
4
14
|
/**
|
|
5
15
|
* @internal
|
|
6
16
|
*/
|
|
7
17
|
export function createFingerprintPreLaunchHook(browserPool) {
|
|
8
18
|
const { fingerprintGenerator, fingerprintCache, fingerprintOptions: { fingerprintGeneratorOptions }, } = browserPool;
|
|
9
19
|
return (_pageId, launchContext) => {
|
|
20
|
+
// Remote browsers may have their own fingerprinting — skip local fingerprint injection
|
|
21
|
+
if (launchContext.isRemote)
|
|
22
|
+
return;
|
|
10
23
|
const { useIncognitoPages } = launchContext;
|
|
11
|
-
const
|
|
24
|
+
const session = launchContext.session;
|
|
25
|
+
const cacheKey = session?.id ?? launchContext.proxyUrl;
|
|
12
26
|
const { launchOptions } = launchContext;
|
|
13
|
-
// If no options are passed we try to pass best default options as possible to match browser and OS.
|
|
14
|
-
const fingerprintGeneratorFinalOptions = fingerprintGeneratorOptions || getGeneratorDefaultOptions(launchContext);
|
|
15
27
|
let fingerprint;
|
|
16
28
|
if (cacheKey && fingerprintCache?.has(cacheKey)) {
|
|
17
29
|
fingerprint = fingerprintCache.get(cacheKey);
|
|
18
30
|
}
|
|
19
|
-
else if (cacheKey) {
|
|
20
|
-
fingerprint = fingerprintGenerator.getFingerprint(fingerprintGeneratorFinalOptions);
|
|
21
|
-
fingerprintCache?.set(cacheKey, fingerprint);
|
|
22
|
-
}
|
|
23
31
|
else {
|
|
24
|
-
|
|
32
|
+
const baseOptions = fingerprintGeneratorOptions || getGeneratorDefaultOptions(launchContext);
|
|
33
|
+
const finalOptions = applySessionHints(baseOptions, session?.fingerprint);
|
|
34
|
+
fingerprint = fingerprintGenerator.getFingerprint(finalOptions);
|
|
35
|
+
if (cacheKey)
|
|
36
|
+
fingerprintCache?.set(cacheKey, fingerprint);
|
|
25
37
|
}
|
|
26
38
|
launchContext.extend({ fingerprint });
|
|
27
39
|
if (useIncognitoPages) {
|
|
@@ -41,6 +53,8 @@ export function createFingerprintPreLaunchHook(browserPool) {
|
|
|
41
53
|
export function createPrePageCreateHook() {
|
|
42
54
|
return (_pageId, browserController, pageOptions) => {
|
|
43
55
|
const { launchContext, browserPlugin } = browserController;
|
|
56
|
+
if (launchContext.isRemote)
|
|
57
|
+
return;
|
|
44
58
|
const { fingerprint } = launchContext.fingerprint;
|
|
45
59
|
if (launchContext.useIncognitoPages && browserPlugin instanceof PlaywrightPlugin && pageOptions) {
|
|
46
60
|
pageOptions.userAgent ??= fingerprint.navigator.userAgent;
|
|
@@ -57,6 +71,8 @@ export function createPrePageCreateHook() {
|
|
|
57
71
|
export function createPostPageCreateHook(fingerprintInjector) {
|
|
58
72
|
return async (page, browserController) => {
|
|
59
73
|
const { browserPlugin, launchContext } = browserController;
|
|
74
|
+
if (launchContext.isRemote)
|
|
75
|
+
return;
|
|
60
76
|
const fingerprint = launchContext.fingerprint;
|
|
61
77
|
// TODO this will require refactoring, we should use common API instead of branching based on plugin type,
|
|
62
78
|
// and there should be no public methods specific to some browser.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/fingerprinting/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/fingerprinting/hooks.ts"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -28,13 +28,21 @@ export * from './browser-pool.js';
|
|
|
28
28
|
export * from './playwright/playwright-plugin.js';
|
|
29
29
|
export * from './puppeteer/puppeteer-plugin.js';
|
|
30
30
|
export * from './events.js';
|
|
31
|
-
export {
|
|
32
|
-
export {
|
|
31
|
+
export type { BrowserSpecification, FingerprintGenerator, FingerprintGeneratorOptions, GetFingerprintReturn, } from './fingerprinting/types.js';
|
|
32
|
+
export { BrowserName, DeviceCategory, OperatingSystemsName } from './fingerprinting/types.js';
|
|
33
|
+
export type { BrowserControllerEvents, IBrowserController, IBrowserLaunchContext, } from './abstract-classes/browser-controller.js';
|
|
34
|
+
export { BrowserController } from './abstract-classes/browser-controller.js';
|
|
33
35
|
export { PuppeteerController } from './puppeteer/puppeteer-controller.js';
|
|
34
36
|
export { PlaywrightController } from './playwright/playwright-controller.js';
|
|
35
37
|
export { PlaywrightBrowser } from './playwright/playwright-browser.js';
|
|
36
|
-
export { CommonPage, CommonLibrary,
|
|
37
|
-
export {
|
|
38
|
-
export {
|
|
39
|
-
export {
|
|
38
|
+
export type { CommonPage, CommonLibrary, BrowserPluginOptions, CreateLaunchContextOptions, } from './abstract-classes/browser-plugin.js';
|
|
39
|
+
export { BrowserPlugin, BrowserLaunchError, DEFAULT_USER_AGENT } from './abstract-classes/browser-plugin.js';
|
|
40
|
+
export type { LaunchContextOptions } from './launch-context.js';
|
|
41
|
+
export { LaunchContext } from './launch-context.js';
|
|
42
|
+
export { RemoteBrowserProvider } from './remote-browser-provider.js';
|
|
43
|
+
export { RemoteBrowserPool } from './remote-browser-pool.js';
|
|
44
|
+
export type { RemoteBrowserPoolOptions, CrawlerRemoteBrowserOptions, RemoteBrowserEndpoint, ResolvedRemoteEndpoint, RemoteConnection, RemoteConnectionParameters, } from './remote-browser-pool.js';
|
|
45
|
+
export type { InferBrowserPluginArray, UnwrapPromise } from './utils.js';
|
|
46
|
+
export { anonymizeProxySugar, type AnonymizeProxySugarOptions } from './anonymize-proxy.js';
|
|
47
|
+
export type { IBrowserPool, NewPageOptions } from '@crawlee/types';
|
|
40
48
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,YAAY,EACR,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC9F,YAAY,EACR,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,GACxB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EACR,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,0BAA0B,GAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC7G,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EACR,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,0BAA0B,GAC7B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
package/index.js
CHANGED
|
@@ -26,11 +26,14 @@ export * from './browser-pool.js';
|
|
|
26
26
|
export * from './playwright/playwright-plugin.js';
|
|
27
27
|
export * from './puppeteer/puppeteer-plugin.js';
|
|
28
28
|
export * from './events.js';
|
|
29
|
-
export { BrowserName, DeviceCategory, OperatingSystemsName
|
|
29
|
+
export { BrowserName, DeviceCategory, OperatingSystemsName } from './fingerprinting/types.js';
|
|
30
30
|
export { BrowserController } from './abstract-classes/browser-controller.js';
|
|
31
31
|
export { PuppeteerController } from './puppeteer/puppeteer-controller.js';
|
|
32
32
|
export { PlaywrightController } from './playwright/playwright-controller.js';
|
|
33
33
|
export { PlaywrightBrowser } from './playwright/playwright-browser.js';
|
|
34
|
-
export { BrowserPlugin, BrowserLaunchError, DEFAULT_USER_AGENT
|
|
34
|
+
export { BrowserPlugin, BrowserLaunchError, DEFAULT_USER_AGENT } from './abstract-classes/browser-plugin.js';
|
|
35
35
|
export { LaunchContext } from './launch-context.js';
|
|
36
|
+
export { RemoteBrowserProvider } from './remote-browser-provider.js';
|
|
37
|
+
export { RemoteBrowserPool } from './remote-browser-pool.js';
|
|
38
|
+
export { anonymizeProxySugar } from './anonymize-proxy.js';
|
|
36
39
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC;AAO5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAM9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAOvE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE7G,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAU7D,OAAO,EAAE,mBAAmB,EAAmC,MAAM,sBAAsB,CAAC"}
|
package/launch-context.d.ts
CHANGED
|
@@ -43,7 +43,17 @@ export interface LaunchContextOptions<Library extends CommonLibrary = CommonLibr
|
|
|
43
43
|
*/
|
|
44
44
|
userDataDir?: string;
|
|
45
45
|
proxyUrl?: string;
|
|
46
|
-
|
|
46
|
+
/**
|
|
47
|
+
* If set to `true`, TLS certificate errors from the upstream proxy will be ignored.
|
|
48
|
+
* This is useful when using HTTPS proxies with self-signed certificates.
|
|
49
|
+
*/
|
|
50
|
+
ignoreProxyCertificate?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Whether this launch context represents a connection to a remote browser
|
|
53
|
+
* rather than a locally launched one.
|
|
54
|
+
* @default false
|
|
55
|
+
*/
|
|
56
|
+
isRemote?: boolean;
|
|
47
57
|
}
|
|
48
58
|
export declare class LaunchContext<Library extends CommonLibrary = CommonLibrary, LibraryOptions extends Dictionary | undefined = Parameters<Library['launch']>[0], LaunchResult extends CommonBrowser = UnwrapPromise<ReturnType<Library['launch']>>, NewPageOptions = Parameters<LaunchResult['newPage']>[0], NewPageResult = UnwrapPromise<ReturnType<LaunchResult['newPage']>>> {
|
|
49
59
|
id?: string;
|
|
@@ -52,10 +62,17 @@ export declare class LaunchContext<Library extends CommonLibrary = CommonLibrary
|
|
|
52
62
|
useIncognitoPages: boolean;
|
|
53
63
|
browserPerProxy?: boolean;
|
|
54
64
|
userDataDir: string;
|
|
55
|
-
|
|
65
|
+
readonly isRemote: boolean;
|
|
66
|
+
ignoreProxyCertificate?: boolean;
|
|
56
67
|
private _proxyUrl?;
|
|
57
68
|
private readonly _reservedFieldNames;
|
|
58
69
|
fingerprint?: BrowserFingerprintWithHeaders;
|
|
70
|
+
/**
|
|
71
|
+
* Token identifying the remote browser session this context connected to, set by the plugin and read by
|
|
72
|
+
* the {@link RemoteBrowserPool} to release the session on close. Only present for remote connections.
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
75
|
+
_remoteToken?: number;
|
|
59
76
|
[K: PropertyKey]: unknown;
|
|
60
77
|
constructor(options: LaunchContextOptions<Library, LibraryOptions, LaunchResult, NewPageOptions, NewPageResult>);
|
|
61
78
|
/**
|
package/launch-context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-context.d.ts","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACxG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB,CACjC,OAAO,SAAS,aAAa,GAAG,aAAa,EAC7C,cAAc,SAAS,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAChF,YAAY,SAAS,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EACjF,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAElE;;;;;OAKG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IACnG;;;OAGG;IACH,aAAa,EAAE,cAAc,CAAC;IAC9B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"launch-context.d.ts","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACxG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB,CACjC,OAAO,SAAS,aAAa,GAAG,aAAa,EAC7C,cAAc,SAAS,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAChF,YAAY,SAAS,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EACjF,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAElE;;;;;OAKG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IACnG;;;OAGG;IACH,aAAa,EAAE,cAAc,CAAC;IAC9B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,aAAa,CACtB,OAAO,SAAS,aAAa,GAAG,aAAa,EAC7C,cAAc,SAAS,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAChF,YAAY,SAAS,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EACjF,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAElE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IACnG,aAAa,EAAE,cAAc,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAE5E,WAAW,CAAC,EAAE,6BAA6B,CAAC;IAE5C;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;gBAEd,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC;IAyB/G;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;IAU/D;;;OAGG;IACH,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAYnC;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;CACJ"}
|
package/launch-context.js
CHANGED
|
@@ -5,19 +5,27 @@ export class LaunchContext {
|
|
|
5
5
|
useIncognitoPages;
|
|
6
6
|
browserPerProxy;
|
|
7
7
|
userDataDir;
|
|
8
|
-
|
|
8
|
+
isRemote;
|
|
9
|
+
ignoreProxyCertificate;
|
|
9
10
|
_proxyUrl;
|
|
10
11
|
_reservedFieldNames = [...Reflect.ownKeys(this), 'extend'];
|
|
11
12
|
fingerprint;
|
|
13
|
+
/**
|
|
14
|
+
* Token identifying the remote browser session this context connected to, set by the plugin and read by
|
|
15
|
+
* the {@link RemoteBrowserPool} to release the session on close. Only present for remote connections.
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
_remoteToken;
|
|
12
19
|
constructor(options) {
|
|
13
|
-
const { id, browserPlugin, launchOptions, proxyUrl, useIncognitoPages, browserPerProxy, userDataDir = '',
|
|
20
|
+
const { id, browserPlugin, launchOptions, proxyUrl, useIncognitoPages, browserPerProxy, userDataDir = '', ignoreProxyCertificate, isRemote, } = options;
|
|
14
21
|
this.id = id;
|
|
15
22
|
this.browserPlugin = browserPlugin;
|
|
16
23
|
this.launchOptions = launchOptions;
|
|
17
24
|
this.browserPerProxy = browserPerProxy ?? false;
|
|
18
25
|
this.useIncognitoPages = useIncognitoPages ?? false;
|
|
19
26
|
this.userDataDir = userDataDir;
|
|
20
|
-
this.
|
|
27
|
+
this.ignoreProxyCertificate = ignoreProxyCertificate ?? false;
|
|
28
|
+
this.isRemote = isRemote ?? false;
|
|
21
29
|
this._proxyUrl = proxyUrl;
|
|
22
30
|
}
|
|
23
31
|
/**
|
package/launch-context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-context.js","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launch-context.js","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"AAkEA,MAAM,OAAO,aAAa;IAOtB,EAAE,CAAU;IACZ,aAAa,CAAsF;IACnG,aAAa,CAAiB;IAC9B,iBAAiB,CAAU;IAC3B,eAAe,CAAW;IAC1B,WAAW,CAAS;IACX,QAAQ,CAAU;IAC3B,sBAAsB,CAAW;IAEzB,SAAS,CAAU;IACV,mBAAmB,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE5E,WAAW,CAAiC;IAE5C;;;;OAIG;IACH,YAAY,CAAU;IAItB,YAAY,OAAmG;QAC3G,MAAM,EACF,EAAE,EACF,aAAa,EACb,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,WAAW,GAAG,EAAE,EAChB,sBAAsB,EACtB,QAAQ,GACX,GAAG,OAAO,CAAC;QAEZ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI,KAAK,CAAC;QAChD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,KAAK,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,IAAI,KAAK,CAAC;QAC9D,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,KAAK,CAAC;QAElC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAyC,MAAS;QACpD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,0BAA0B,CAAC,CAAC;YAC5F,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ,CAAC,GAAuB;QAChC,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO;QACX,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,WAAW,CAAC,QAAQ,GAAG,GAAG,CAAC;QAC3B,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC;QACxB,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC;QAEtB,iHAAiH;QACjH,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crawlee/browser-pool",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.70",
|
|
4
4
|
"description": "Rotate multiple browsers using popular automation libraries such as Playwright or Puppeteer.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=22.0.0"
|
|
@@ -24,18 +24,17 @@
|
|
|
24
24
|
"url": "https://github.com/apify/crawlee/issues"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
|
-
"build": "
|
|
27
|
+
"build": "pnpm clean && pnpm compile && pnpm copy",
|
|
28
28
|
"clean": "rimraf ./dist",
|
|
29
29
|
"compile": "tsc -p tsconfig.build.json",
|
|
30
30
|
"copy": "tsx ../../scripts/copy.ts"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@apify/log": "^2.5.18",
|
|
34
33
|
"@apify/timeout": "^0.3.2",
|
|
35
|
-
"@crawlee/core": "4.0.0-beta.
|
|
36
|
-
"@crawlee/types": "4.0.0-beta.
|
|
37
|
-
"fingerprint-generator": "^2.1.
|
|
38
|
-
"fingerprint-injector": "^2.1.
|
|
34
|
+
"@crawlee/core": "4.0.0-beta.70",
|
|
35
|
+
"@crawlee/types": "4.0.0-beta.70",
|
|
36
|
+
"fingerprint-generator": "^2.1.68",
|
|
37
|
+
"fingerprint-injector": "^2.1.68",
|
|
39
38
|
"lodash.merge": "^4.6.2",
|
|
40
39
|
"nanoid": "^5.1.5",
|
|
41
40
|
"ow": "^2.0.0",
|
|
@@ -64,5 +63,5 @@
|
|
|
64
63
|
}
|
|
65
64
|
}
|
|
66
65
|
},
|
|
67
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "66a90e59b656456fad4c448b98698a009aa0ecfb"
|
|
68
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-browser.d.ts","sourceRoot":"","sources":["../../src/playwright/playwright-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IAC/C,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAc;gBAEvB,OAAO,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"playwright-browser.d.ts","sourceRoot":"","sources":["../../src/playwright/playwright-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IAC/C,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAc;gBAEvB,OAAO,EAAE,cAAc;IAa7B,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,QAAQ,IAAI,cAAc,EAAE;IAI5B,WAAW,IAAI,OAAO;IAItB,OAAO,IAAI,MAAM;IAIjB,gBAAgB;IAChB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAI/C,WAAW,IAAI,WAAW;IAIpB,OAAO,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAI9F,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;IAI5B,oBAAoB,IAAI,OAAO,CAAC,KAAK,CAAC;IAItC,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;IAI9B,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;CAGtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-browser.js","sourceRoot":"","sources":["../../src/playwright/playwright-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAS3C;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACvC,eAAe,CAAiB;IAChC,QAAQ,CAAS;IACjB,YAAY,GAAG,IAAI,CAAC;IACpB,YAAY,CAAe;IAEnC,YAAY,OAAuB;QAC/B,KAAK,EAAE,CAAC;QAER,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"playwright-browser.js","sourceRoot":"","sources":["../../src/playwright/playwright-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAS3C;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACvC,eAAe,CAAiB;IAChC,QAAQ,CAAS;IACjB,YAAY,GAAG,IAAI,CAAC;IACpB,YAAY,CAAe;IAEnC,YAAY,OAAuB;QAC/B,KAAK,EAAE,CAAC;QAER,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACpC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACvB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IACvC,CAAC;IAED,QAAQ;QACJ,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,gBAAgB;IAChB,eAAe,CAAC,WAAwB;QACpC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACpC,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,YAAa,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAG,IAA2C;QACxD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,oBAAoB;QACtB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,YAAY;QACd,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,WAAW;QACb,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACnF,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-controller.d.ts","sourceRoot":"","sources":["../../src/playwright/playwright-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAI7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,qBAAa,oBAAqB,SAAQ,iBAAiB,CACvD,WAAW,EACX,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACxC,OAAO,CACV;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAmB9E,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"playwright-controller.d.ts","sourceRoot":"","sources":["../../src/playwright/playwright-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAI7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,qBAAa,oBAAqB,SAAQ,iBAAiB,CACvD,WAAW,EACX,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACxC,OAAO,CACV;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAmB9E,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAyD/E,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;cAIvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAKtB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAK1C,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAI5E"}
|
|
@@ -11,7 +11,7 @@ export class PlaywrightController extends BrowserController {
|
|
|
11
11
|
const password = decodeURIComponent(url.password);
|
|
12
12
|
return {
|
|
13
13
|
proxy: {
|
|
14
|
-
server: url.
|
|
14
|
+
server: `${url.protocol}//${url.host}`,
|
|
15
15
|
username,
|
|
16
16
|
password,
|
|
17
17
|
bypass: pageOptions?.proxy?.bypass,
|
|
@@ -23,15 +23,26 @@ export class PlaywrightController extends BrowserController {
|
|
|
23
23
|
throw new Error('A new page can be created with provided context only when using incognito pages.');
|
|
24
24
|
}
|
|
25
25
|
let close = async () => { };
|
|
26
|
-
if (this.launchContext.useIncognitoPages
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
if (this.launchContext.useIncognitoPages) {
|
|
27
|
+
// Each page requires to have all the context options applied
|
|
28
|
+
contextOptions = {
|
|
29
|
+
...this.launchContext.launchOptions,
|
|
30
|
+
...contextOptions,
|
|
31
|
+
};
|
|
32
|
+
// Remote browsers handle their own proxy — don't inject local proxy settings into context
|
|
33
|
+
if (this.launchContext.isRemote) {
|
|
34
|
+
delete contextOptions?.proxy;
|
|
35
|
+
}
|
|
36
|
+
if (contextOptions?.proxy) {
|
|
37
|
+
const [anonymizedProxyUrl, closeProxy] = await anonymizeProxySugar(contextOptions.proxy.server, contextOptions.proxy.username, contextOptions.proxy.password, { ignoreProxyCertificate: this.launchContext.ignoreProxyCertificate });
|
|
38
|
+
if (anonymizedProxyUrl) {
|
|
39
|
+
contextOptions.proxy = {
|
|
40
|
+
server: anonymizedProxyUrl,
|
|
41
|
+
bypass: contextOptions.proxy.bypass,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
close = closeProxy;
|
|
33
45
|
}
|
|
34
|
-
close = closeProxy;
|
|
35
46
|
}
|
|
36
47
|
try {
|
|
37
48
|
const page = await this.browser.newPage(contextOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-controller.js","sourceRoot":"","sources":["../../src/playwright/playwright-controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,MAAM,OAAO,oBAAqB,SAAQ,iBAIzC;IACG,qBAAqB,CAAC,QAA4B,EAAE,WAAgB;QAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElD,OAAO;YACH,KAAK,EAAE;gBACH,MAAM,EAAE,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"playwright-controller.js","sourceRoot":"","sources":["../../src/playwright/playwright-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,17 @@ import type { Browser as PlaywrightBrowser, BrowserType } from 'playwright';
|
|
|
3
3
|
import { BrowserPlugin } from '../abstract-classes/browser-plugin.js';
|
|
4
4
|
import type { createProxyServerForContainers } from '../container-proxy-server.js';
|
|
5
5
|
import type { LaunchContext } from '../launch-context.js';
|
|
6
|
+
import type { RemoteConnection, RemoteConnectionParameters } from '../remote-browser-pool.js';
|
|
6
7
|
import type { SafeParameters } from '../utils.js';
|
|
7
8
|
import { PlaywrightController } from './playwright-controller.js';
|
|
8
9
|
export declare class PlaywrightPlugin extends BrowserPlugin<BrowserType, SafeParameters<BrowserType['launch']>[0], PlaywrightBrowser> {
|
|
9
10
|
private _browserVersion?;
|
|
10
11
|
_containerProxyServer?: Awaited<ReturnType<typeof createProxyServerForContainers>>;
|
|
12
|
+
/**
|
|
13
|
+
* Playwright remote connections only support incognito pages — `connect()` / `connectOverCDP()` don't
|
|
14
|
+
* accept persistent contexts. Force it on (and inform the user) when wired for a remote connection.
|
|
15
|
+
*/
|
|
16
|
+
useRemoteConnection(connection: RemoteConnection, parameters?: RemoteConnectionParameters): void;
|
|
11
17
|
protected _launch(launchContext: LaunchContext<BrowserType>): Promise<PlaywrightBrowser>;
|
|
12
18
|
private _throwOnFailedLaunch;
|
|
13
19
|
createController(): PlaywrightController;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-plugin.d.ts","sourceRoot":"","sources":["../../src/playwright/playwright-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,IAAI,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"playwright-plugin.d.ts","sourceRoot":"","sources":["../../src/playwright/playwright-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,IAAI,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,qBAAa,gBAAiB,SAAQ,aAAa,CAC/C,WAAW,EACX,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACxC,iBAAiB,CACpB;IACG,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC,CAAC;IAEnF;;;OAGG;IACM,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,EAAE,UAAU,GAAE,0BAA+B,GAAG,IAAI;cAY7F,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6F9F,OAAO,CAAC,oBAAoB;IASnB,gBAAgB,IAAI,oBAAoB;cAIjC,wBAAwB,CAAC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlG,SAAS,CAAC,uBAAuB,IAAI,OAAO;CAI/C"}
|
|
@@ -1,14 +1,36 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import { BrowserPlugin } from '../abstract-classes/browser-plugin.js';
|
|
3
3
|
import { anonymizeProxySugar } from '../anonymize-proxy.js';
|
|
4
|
-
import { log } from '../logger.js';
|
|
5
4
|
import { getLocalProxyAddress } from '../proxy-server.js';
|
|
6
5
|
import { PlaywrightBrowser as PlaywrightBrowserWithPersistentContext } from './playwright-browser.js';
|
|
7
6
|
import { PlaywrightController } from './playwright-controller.js';
|
|
8
7
|
export class PlaywrightPlugin extends BrowserPlugin {
|
|
9
8
|
_browserVersion;
|
|
10
9
|
_containerProxyServer;
|
|
10
|
+
/**
|
|
11
|
+
* Playwright remote connections only support incognito pages — `connect()` / `connectOverCDP()` don't
|
|
12
|
+
* accept persistent contexts. Force it on (and inform the user) when wired for a remote connection.
|
|
13
|
+
*/
|
|
14
|
+
useRemoteConnection(connection, parameters = {}) {
|
|
15
|
+
super.useRemoteConnection(connection, parameters);
|
|
16
|
+
if (!this.useIncognitoPages) {
|
|
17
|
+
this.log.info('Remote Playwright connection — useIncognitoPages forced to true. ' +
|
|
18
|
+
'Pages will not share cookies/storage between each other; use the SessionPool for shared state.');
|
|
19
|
+
}
|
|
20
|
+
this.useIncognitoPages = true;
|
|
21
|
+
}
|
|
11
22
|
async _launch(launchContext) {
|
|
23
|
+
if (this.remoteConnection) {
|
|
24
|
+
return this._connectToRemoteBrowser(launchContext, async (url) => {
|
|
25
|
+
const connectOptions = (this.remoteConnectionParameters?.connectOptions ?? {});
|
|
26
|
+
if (this.remoteConnectionParameters?.protocol === 'playwright') {
|
|
27
|
+
this.log.info('Connecting to remote browser via connect (Playwright WebSocket).');
|
|
28
|
+
return this.library.connect(url, connectOptions);
|
|
29
|
+
}
|
|
30
|
+
this.log.info('Connecting to remote browser via connectOverCDP.');
|
|
31
|
+
return this.library.connectOverCDP(url, connectOptions);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
12
34
|
const { launchOptions, useIncognitoPages, userDataDir, proxyUrl } = launchContext;
|
|
13
35
|
let browser;
|
|
14
36
|
// Required for the `proxy` context option to work.
|
|
@@ -20,7 +42,9 @@ export class PlaywrightPlugin extends BrowserPlugin {
|
|
|
20
42
|
if (this.library.name() === 'webkit') {
|
|
21
43
|
launchOptions.args = launchOptions.args?.filter((arg) => arg !== '--no-sandbox');
|
|
22
44
|
}
|
|
23
|
-
const [anonymizedProxyUrl, close] = await anonymizeProxySugar(proxyUrl
|
|
45
|
+
const [anonymizedProxyUrl, close] = await anonymizeProxySugar(proxyUrl, undefined, undefined, {
|
|
46
|
+
ignoreProxyCertificate: launchContext.ignoreProxyCertificate,
|
|
47
|
+
});
|
|
24
48
|
if (anonymizedProxyUrl) {
|
|
25
49
|
launchOptions.proxy = {
|
|
26
50
|
server: anonymizedProxyUrl,
|
|
@@ -62,7 +86,7 @@ export class PlaywrightPlugin extends BrowserPlugin {
|
|
|
62
86
|
const inactiveBrowser = await this.library.launch(launchOptions);
|
|
63
87
|
this._browserVersion = inactiveBrowser.version();
|
|
64
88
|
inactiveBrowser.close().catch((error) => {
|
|
65
|
-
log.exception(error, 'Failed to close browser.');
|
|
89
|
+
this.log.exception(error, 'Failed to close browser.');
|
|
66
90
|
});
|
|
67
91
|
}
|
|
68
92
|
browser = new PlaywrightBrowserWithPersistentContext({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-plugin.js","sourceRoot":"","sources":["../../src/playwright/playwright-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAIzB,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"playwright-plugin.js","sourceRoot":"","sources":["../../src/playwright/playwright-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAIzB,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,IAAI,sCAAsC,EAAE,MAAM,yBAAyB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAO,gBAAiB,SAAQ,aAIrC;IACW,eAAe,CAAU;IACjC,qBAAqB,CAA8D;IAEnF;;;OAGG;IACM,mBAAmB,CAAC,UAA4B,EAAE,aAAyC,EAAE;QAClG,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,mEAAmE;gBAC/D,gGAAgG,CACvG,CAAC;QACN,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAClC,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,aAAyC;QAC7D,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC7D,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,cAAc,IAAI,EAAE,CAAQ,CAAC;gBACtF,IAAI,IAAI,CAAC,0BAA0B,EAAE,QAAQ,KAAK,YAAY,EAAE,CAAC;oBAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;oBAClF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;gBACrD,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACP,CAAC;QACD,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;QAClF,IAAI,OAA0B,CAAC;QAE/B,mDAAmD;QACnD,aAAc,CAAC,KAAK,GAAG;YACnB,MAAM,EAAE,MAAM,oBAAoB,EAAE;YACpC,GAAG,aAAc,CAAC,KAAK;SAC1B,CAAC;QAEF,uCAAuC;QACvC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;YACnC,aAAc,CAAC,IAAI,GAAG,aAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE;YAC1F,sBAAsB,EAAE,aAAa,CAAC,sBAAsB;SAC/D,CAAC,CAAC;QACH,IAAI,kBAAkB,EAAE,CAAC;YACrB,aAAc,CAAC,KAAK,GAAG;gBACnB,MAAM,EAAE,kBAAkB;gBAC1B,MAAM,EAAE,aAAc,CAAC,KAAK,CAAC,MAAM;aACtC,CAAC;QACN,CAAC;QAED,IAAI,CAAC;YACD,IAAI,iBAAiB,EAAE,CAAC;gBACpB,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC/D,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBAC3D,CAAC,CAAC,CAAC;gBAEH,IAAI,kBAAkB,EAAE,CAAC;oBACrB,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;wBAClC,MAAM,KAAK,EAAE,CAAC;oBAClB,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO;qBACpC,uBAAuB,CAAC,WAAW,EAAE,aAAa,CAAC;qBACnD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBAC3D,CAAC,CAAC,CAAC;gBAEP,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;oBAC9B,IAAI,WAAW,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC;wBACzD,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE;4BACnB,SAAS,EAAE,IAAI;4BACf,KAAK,EAAE,IAAI;yBACd,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,kBAAkB,EAAE,CAAC;oBACrB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;wBAClC,MAAM,KAAK,EAAE,CAAC;oBAClB,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBACxB,2DAA2D;oBAC3D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBACjE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;oBAEjD,eAAe,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;wBACpC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;oBAC1D,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,OAAO,GAAG,IAAI,sCAAsC,CAAC;oBACjD,cAAc;oBACd,OAAO,EAAE,IAAI,CAAC,eAAe;iBAChC,CAAiC,CAAC;YACvC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,EAAE,CAAC;YAEd,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,oBAAoB,CAAC,aAAyC,EAAE,KAAc;QAClF,IAAI,CAAC,0BAA0B,CAC3B,KAAK,EACL,aAAa,CAAC,aAAa,EAAE,cAAc,EAC3C,+DAA+D,EAC/D,kIAAkI,CACrI,CAAC;IACN,CAAC;IAEQ,gBAAgB;QACrB,OAAO,IAAI,oBAAoB,CAAC,IAAW,CAAC,CAAC;IACjD,CAAC;IAES,KAAK,CAAC,wBAAwB,CAAC,aAAyC;QAC9E,aAAa,CAAC,aAAa,KAAK,EAAE,CAAC;QAEnC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;QAElD,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE9B,aAAa,CAAC,KAAK,GAAG;gBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC1C,QAAQ,EAAE,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;aAC7C,CAAC;QACN,CAAC;IACL,CAAC;IAES,uBAAuB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,IAAI,KAAK,UAAU,CAAC;IAC/B,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppeteer-controller.d.ts","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,KAAK,cAAc,MAAM,WAAW,CAAC;AAIjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"puppeteer-controller.d.ts","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,KAAK,cAAc,MAAM,WAAW,CAAC;AAIjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAG9E,MAAM,WAAW,uBAAwB,SAAQ,cAAc,CAAC,qBAAqB;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID,qBAAa,mBAAoB,SAAQ,iBAAiB,CACtD,OAAO,SAAS,EAChB,cAAc,CAAC,aAAa,EAC5B,cAAc,CAAC,OAAO,EACtB,uBAAuB,CAC1B;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAiB9E,QAAQ,CAAC,cAAc,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;cA2EhF,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;cAIvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAuBtB,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAIzD,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAS3F"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { tryCancel } from '@apify/timeout';
|
|
2
2
|
import { BrowserController } from '../abstract-classes/browser-controller.js';
|
|
3
3
|
import { anonymizeProxySugar } from '../anonymize-proxy.js';
|
|
4
|
-
import { log } from '../logger.js';
|
|
5
4
|
const PROCESS_KILL_TIMEOUT_MILLIS = 5000;
|
|
6
5
|
export class PuppeteerController extends BrowserController {
|
|
7
6
|
normalizeProxyOptions(proxyUrl, pageOptions) {
|
|
@@ -12,7 +11,7 @@ export class PuppeteerController extends BrowserController {
|
|
|
12
11
|
const username = decodeURIComponent(url.username);
|
|
13
12
|
const password = decodeURIComponent(url.password);
|
|
14
13
|
return {
|
|
15
|
-
proxyServer: url.
|
|
14
|
+
proxyServer: `${url.protocol}//${url.host}`,
|
|
16
15
|
proxyUsername: username,
|
|
17
16
|
proxyPassword: password,
|
|
18
17
|
proxyBypassList: pageOptions?.proxyBypassList,
|
|
@@ -25,7 +24,7 @@ export class PuppeteerController extends BrowserController {
|
|
|
25
24
|
}
|
|
26
25
|
let close = async () => { };
|
|
27
26
|
if (contextOptions.proxyServer) {
|
|
28
|
-
const [anonymizedProxyUrl, closeProxy] = await anonymizeProxySugar(contextOptions.proxyServer, contextOptions.proxyUsername, contextOptions.proxyPassword);
|
|
27
|
+
const [anonymizedProxyUrl, closeProxy] = await anonymizeProxySugar(contextOptions.proxyServer, contextOptions.proxyUsername, contextOptions.proxyPassword, { ignoreProxyCertificate: this.launchContext.ignoreProxyCertificate });
|
|
29
28
|
if (anonymizedProxyUrl) {
|
|
30
29
|
contextOptions.proxyServer = anonymizedProxyUrl;
|
|
31
30
|
delete contextOptions.proxyUsername;
|
|
@@ -58,7 +57,7 @@ export class PuppeteerController extends BrowserController {
|
|
|
58
57
|
await context.close();
|
|
59
58
|
}
|
|
60
59
|
catch (error) {
|
|
61
|
-
log.exception(error, 'Failed to close context.');
|
|
60
|
+
this.log.exception(error, 'Failed to close context.');
|
|
62
61
|
}
|
|
63
62
|
finally {
|
|
64
63
|
await close();
|
|
@@ -84,7 +83,7 @@ export class PuppeteerController extends BrowserController {
|
|
|
84
83
|
async _kill() {
|
|
85
84
|
const browserProcess = this.browser.process();
|
|
86
85
|
if (!browserProcess) {
|
|
87
|
-
log.debug('Browser was connected using the `puppeteer.connect` method no browser to kill.');
|
|
86
|
+
this.log.debug('Browser was connected using the `puppeteer.connect` method no browser to kill.');
|
|
88
87
|
return;
|
|
89
88
|
}
|
|
90
89
|
const timeout = setTimeout(() => {
|
|
@@ -98,14 +97,18 @@ export class PuppeteerController extends BrowserController {
|
|
|
98
97
|
clearTimeout(timeout);
|
|
99
98
|
}
|
|
100
99
|
catch (error) {
|
|
101
|
-
log.debug('Browser was already killed.', { error });
|
|
100
|
+
this.log.debug('Browser was already killed.', { error });
|
|
102
101
|
}
|
|
103
102
|
}
|
|
104
103
|
async _getCookies(page) {
|
|
105
|
-
return page.cookies();
|
|
104
|
+
return page.browserContext().cookies();
|
|
106
105
|
}
|
|
107
106
|
async _setCookies(page, cookies) {
|
|
108
|
-
|
|
107
|
+
// BrowserContext.setCookie requires `url` or `domain`; the page-level API used to back-fill
|
|
108
|
+
// the page's current URL for us. Replicate that so callers who pass neither don't get rejected.
|
|
109
|
+
const pageUrl = page.url();
|
|
110
|
+
const normalized = cookies.map((cookie) => cookie.url || cookie.domain ? cookie : { ...cookie, url: pageUrl });
|
|
111
|
+
return page.browserContext().setCookie(...normalized);
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
114
|
//# sourceMappingURL=puppeteer-controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppeteer-controller.js","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"puppeteer-controller.js","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,12 @@ import type Puppeteer from 'puppeteer';
|
|
|
4
4
|
import type * as PuppeteerTypes from 'puppeteer';
|
|
5
5
|
import { BrowserPlugin } from '../abstract-classes/browser-plugin.js';
|
|
6
6
|
import type { LaunchContext } from '../launch-context.js';
|
|
7
|
+
import type { RemoteConnection, RemoteConnectionParameters } from '../remote-browser-pool.js';
|
|
7
8
|
import type { PuppeteerNewPageOptions } from './puppeteer-controller.js';
|
|
8
9
|
import { PuppeteerController } from './puppeteer-controller.js';
|
|
9
10
|
export declare class PuppeteerPlugin extends BrowserPlugin<typeof Puppeteer, PuppeteerTypes.LaunchOptions, PuppeteerTypes.Browser, PuppeteerNewPageOptions> {
|
|
11
|
+
/** Pages share cookies/storage on the remote browser (Puppeteer defaults to non-incognito). */
|
|
12
|
+
useRemoteConnection(connection: RemoteConnection, parameters?: RemoteConnectionParameters): void;
|
|
10
13
|
protected _launch(launchContext: LaunchContext<typeof Puppeteer, PuppeteerTypes.LaunchOptions, PuppeteerTypes.Browser, PuppeteerNewPageOptions>): Promise<PuppeteerTypes.Browser>;
|
|
11
14
|
createController(): PuppeteerController;
|
|
12
15
|
protected _addProxyToLaunchOptions(_launchContext: LaunchContext<typeof Puppeteer, PuppeteerTypes.LaunchOptions, PuppeteerTypes.Browser, PuppeteerNewPageOptions>): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppeteer-plugin.d.ts","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,KAAK,cAAc,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"puppeteer-plugin.d.ts","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,KAAK,cAAc,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAE9F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIhE,qBAAa,eAAgB,SAAQ,aAAa,CAC9C,OAAO,SAAS,EAChB,cAAc,CAAC,aAAa,EAC5B,cAAc,CAAC,OAAO,EACtB,uBAAuB,CAC1B;IACG,+FAA+F;IACtF,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,EAAE,UAAU,GAAE,0BAA+B,GAAG,IAAI;cAW7F,OAAO,CACnB,aAAa,EAAE,aAAa,CACxB,OAAO,SAAS,EAChB,cAAc,CAAC,aAAa,EAC5B,cAAc,CAAC,OAAO,EACtB,uBAAuB,CAC1B,GACF,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC;IAiMzB,gBAAgB,IAAI,mBAAmB;cAIhC,wBAAwB,CACpC,cAAc,EAAE,aAAa,CACzB,OAAO,SAAS,EAChB,cAAc,CAAC,aAAa,EAC5B,cAAc,CAAC,OAAO,EACtB,uBAAuB,CAC1B,GACF,OAAO,CAAC,IAAI,CAAC;IA4BhB,SAAS,CAAC,uBAAuB,CAC7B,cAAc,EAAE,aAAa,CACzB,OAAO,SAAS,EAChB,cAAc,CAAC,aAAa,EAC5B,cAAc,CAAC,OAAO,EACtB,uBAAuB,CAC1B,GACF,OAAO;CAGb"}
|