@crawlee/browser-pool 3.0.3-beta.9 → 3.0.4-beta.1

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 CHANGED
@@ -63,7 +63,7 @@ Additionally, the package provides various helper functions to simplify running
63
63
 
64
64
  ## Quick Start
65
65
 
66
- This short tutorial will set you up to start using Crawlee in a minute or two. If you want to learn more, proceed to the [Getting Started](https://crawlee.dev/docs/guides/getting-started) tutorial that will take you step by step through creating your first scraper.
66
+ This short tutorial will set you up to start using Crawlee in a minute or two. If you want to learn more, proceed to the [Getting Started](https://crawlee.dev/docs/introduction) tutorial that will take you step by step through creating your first scraper.
67
67
 
68
68
  ### Local stand-alone usage
69
69
 
@@ -37,7 +37,7 @@ export interface BrowserPluginOptions<LibraryOptions> {
37
37
  * Options that will be passed down to the automation library. E.g.
38
38
  * `puppeteer.launch(launchOptions);`. This is a good place to set
39
39
  * options that you want to apply as defaults. To dynamically override
40
- * those options per-browser, see the `preLaunchHooks` of {@link BrowserPool}.
40
+ * those options per-browser, see the `preLaunchHooks` of {@apilink BrowserPool}.
41
41
  */
42
42
  launchOptions?: LibraryOptions;
43
43
  /**
@@ -56,6 +56,7 @@ export interface BrowserPluginOptions<LibraryOptions> {
56
56
  /**
57
57
  * @experimental
58
58
  * Like `useIncognitoPages`, but for persistent contexts, so cache is used for faster loading.
59
+ * Works best with Firefox. Unstable on Chromium.
59
60
  */
60
61
  experimentalContainers?: boolean;
61
62
  /**
@@ -69,7 +70,7 @@ export interface CreateLaunchContextOptions<Library extends CommonLibrary, Libra
69
70
  * The `BrowserPlugin` serves two purposes. First, it is the base class that
70
71
  * specialized controllers like `PuppeteerPlugin` or `PlaywrightPlugin` extend.
71
72
  * Second, it allows the user to configure the automation libraries and
72
- * feed them to {@link BrowserPool} for use.
73
+ * feed them to {@apilink BrowserPool} for use.
73
74
  */
74
75
  export declare abstract class BrowserPlugin<Library extends CommonLibrary = CommonLibrary, LibraryOptions = Parameters<Library['launch']>[0], LaunchResult extends CommonBrowser = UnwrapPromise<ReturnType<Library['launch']>>, NewPageOptions = Parameters<LaunchResult['newPage']>[0], NewPageResult = UnwrapPromise<ReturnType<LaunchResult['newPage']>>> {
75
76
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"browser-plugin.d.ts","sourceRoot":"","sources":["../../src/abstract-classes/browser-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-plugin.d.ts","sourceRoot":"","sources":["../../src/abstract-classes/browser-plugin.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ exports.DEFAULT_USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
18
18
  * The `BrowserPlugin` serves two purposes. First, it is the base class that
19
19
  * specialized controllers like `PuppeteerPlugin` or `PlaywrightPlugin` extend.
20
20
  * Second, it allows the user to configure the automation libraries and
21
- * feed them to {@link BrowserPool} for use.
21
+ * feed them to {@apilink BrowserPool} for use.
22
22
  */
23
23
  class BrowserPlugin {
24
24
  constructor(library, options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"browser-plugin.js","sourceRoot":"","sources":["../../src/abstract-classes/browser-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-plugin.js","sourceRoot":"","sources":["../../src/abstract-classes/browser-plugin.ts"],"names":[],"mappings":"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"}
package/browser-pool.d.ts CHANGED
@@ -74,15 +74,15 @@ export interface BrowserPoolOptions<Plugin extends BrowserPlugin = BrowserPlugin
74
74
  * Pre-launch hooks are executed just before a browser is launched and provide
75
75
  * a good opportunity to dynamically change the launch options.
76
76
  * The hooks are called with two arguments:
77
- * `pageId`: `string` and `launchContext`: {@link LaunchContext}
77
+ * `pageId`: `string` and `launchContext`: {@apilink LaunchContext}
78
78
  */
79
79
  export declare type PreLaunchHook<LC extends LaunchContext> = (pageId: string, launchContext: LC) => void | Promise<void>;
80
80
  /**
81
81
  * Post-launch hooks are executed as soon as a browser is launched.
82
82
  * The hooks are called with two arguments:
83
- * `pageId`: `string` and `browserController`: {@link BrowserController}
83
+ * `pageId`: `string` and `browserController`: {@apilink BrowserController}
84
84
  * To guarantee order of execution before other hooks in the same browser,
85
- * the {@link BrowserController} methods cannot be used until the post-launch
85
+ * the {@apilink BrowserController} methods cannot be used until the post-launch
86
86
  * hooks complete. If you attempt to call `await browserController.close()` from
87
87
  * a post-launch hook, it will deadlock the process. This API is subject to change.
88
88
  */
@@ -91,7 +91,7 @@ export declare type PostLaunchHook<BC extends BrowserController> = (pageId: stri
91
91
  * Pre-page-create hooks are executed just before a new page is created. They
92
92
  * are useful to make dynamic changes to the browser before opening a page.
93
93
  * The hooks are called with three arguments:
94
- * `pageId`: `string`, `browserController`: {@link BrowserController} and
94
+ * `pageId`: `string`, `browserController`: {@apilink BrowserController} and
95
95
  * `pageOptions`: `object|undefined` - This only works if the underlying `BrowserController` supports new page options.
96
96
  * So far, new page options are only supported by `PlaywrightController`.
97
97
  * If the page options are not supported by `BrowserController` the `pageOptions` argument is `undefined`.
@@ -103,7 +103,7 @@ export declare type PrePageCreateHook<BC extends BrowserController, PO = Paramet
103
103
  * place to make changes to a page that you would like to apply to all
104
104
  * pages. Such as injecting a JavaScript library into all pages.
105
105
  * The hooks are called with two arguments:
106
- * `page`: `Page` and `browserController`: {@link BrowserController}
106
+ * `page`: `Page` and `browserController`: {@apilink BrowserController}
107
107
  */
108
108
  export declare type PostPageCreateHook<BC extends BrowserController, Page = UnwrapPromise<ReturnType<BC['newPage']>>> = (page: Page, browserController: BC) => void | Promise<void>;
109
109
  /**
@@ -111,13 +111,13 @@ export declare type PostPageCreateHook<BC extends BrowserController, Page = Unwr
111
111
  * in a page that's about to be closed, such as saving a snapshot or updating
112
112
  * state.
113
113
  * The hooks are called with two arguments:
114
- * `page`: `Page` and `browserController`: {@link BrowserController}
114
+ * `page`: `Page` and `browserController`: {@apilink BrowserController}
115
115
  */
116
116
  export declare type PrePageCloseHook<BC extends BrowserController, Page = UnwrapPromise<ReturnType<BC['newPage']>>> = (page: Page, browserController: BC) => void | Promise<void>;
117
117
  /**
118
118
  * Post-page-close hooks allow you to do page related clean up.
119
119
  * The hooks are called with two arguments:
120
- * `pageId`: `string` and `browserController`: {@link BrowserController}
120
+ * `pageId`: `string` and `browserController`: {@apilink BrowserController}
121
121
  */
122
122
  export declare type PostPageCloseHook<BC extends BrowserController> = (pageId: string, browserController: BC) => void | Promise<void>;
123
123
  export interface BrowserPoolHooks<BC extends BrowserController, LC extends LaunchContext, PR extends UnwrapPromise<ReturnType<BC['newPage']>> = UnwrapPromise<ReturnType<BC['newPage']>>> {
@@ -125,15 +125,15 @@ export interface BrowserPoolHooks<BC extends BrowserController, LC extends Launc
125
125
  * Pre-launch hooks are executed just before a browser is launched and provide
126
126
  * a good opportunity to dynamically change the launch options.
127
127
  * The hooks are called with two arguments:
128
- * `pageId`: `string` and `launchContext`: {@link LaunchContext}
128
+ * `pageId`: `string` and `launchContext`: {@apilink LaunchContext}
129
129
  */
130
130
  preLaunchHooks?: PreLaunchHook<LC>[];
131
131
  /**
132
132
  * Post-launch hooks are executed as soon as a browser is launched.
133
133
  * The hooks are called with two arguments:
134
- * `pageId`: `string` and `browserController`: {@link BrowserController}
134
+ * `pageId`: `string` and `browserController`: {@apilink BrowserController}
135
135
  * To guarantee order of execution before other hooks in the same browser,
136
- * the {@link BrowserController} methods cannot be used until the post-launch
136
+ * the {@apilink BrowserController} methods cannot be used until the post-launch
137
137
  * hooks complete. If you attempt to call `await browserController.close()` from
138
138
  * a post-launch hook, it will deadlock the process. This API is subject to change.
139
139
  */
@@ -142,7 +142,7 @@ export interface BrowserPoolHooks<BC extends BrowserController, LC extends Launc
142
142
  * Pre-page-create hooks are executed just before a new page is created. They
143
143
  * are useful to make dynamic changes to the browser before opening a page.
144
144
  * The hooks are called with three arguments:
145
- * `pageId`: `string`, `browserController`: {@link BrowserController} and
145
+ * `pageId`: `string`, `browserController`: {@apilink BrowserController} and
146
146
  * `pageOptions`: `object|undefined` - This only works if the underlying `BrowserController` supports new page options.
147
147
  * So far, new page options are only supported by `PlaywrightController`.
148
148
  * If the page options are not supported by `BrowserController` the `pageOptions` argument is `undefined`.
@@ -154,7 +154,7 @@ export interface BrowserPoolHooks<BC extends BrowserController, LC extends Launc
154
154
  * place to make changes to a page that you would like to apply to all
155
155
  * pages. Such as injecting a JavaScript library into all pages.
156
156
  * The hooks are called with two arguments:
157
- * `page`: `Page` and `browserController`: {@link BrowserController}
157
+ * `page`: `Page` and `browserController`: {@apilink BrowserController}
158
158
  */
159
159
  postPageCreateHooks?: PostPageCreateHook<BC, PR>[];
160
160
  /**
@@ -162,13 +162,13 @@ export interface BrowserPoolHooks<BC extends BrowserController, LC extends Launc
162
162
  * in a page that's about to be closed, such as saving a snapshot or updating
163
163
  * state.
164
164
  * The hooks are called with two arguments:
165
- * `page`: `Page` and `browserController`: {@link BrowserController}
165
+ * `page`: `Page` and `browserController`: {@apilink BrowserController}
166
166
  */
167
167
  prePageCloseHooks?: PrePageCloseHook<BC, PR>[];
168
168
  /**
169
169
  * Post-page-close hooks allow you to do page related clean up.
170
170
  * The hooks are called with two arguments:
171
- * `pageId`: `string` and `browserController`: {@link BrowserController}
171
+ * `pageId`: `string` and `browserController`: {@apilink BrowserController}
172
172
  */
173
173
  postPageCloseHooks?: PostPageCloseHook<BC>[];
174
174
  }
@@ -253,7 +253,7 @@ export declare class BrowserPool<Options extends BrowserPoolOptions = BrowserPoo
253
253
  */
254
254
  newPage(options?: BrowserPoolNewPageOptions<PageOptions, BrowserPlugins[number]>): Promise<PageReturn>;
255
255
  /**
256
- * Unlike {@link newPage}, `newPageInNewBrowser` always launches a new
256
+ * Unlike {@apilink newPage}, `newPageInNewBrowser` always launches a new
257
257
  * browser to open the page in. Use the `launchOptions` option to
258
258
  * configure the new browser.
259
259
  */
@@ -280,7 +280,7 @@ export declare class BrowserPool<Options extends BrowserPoolOptions = BrowserPoo
280
280
  */
281
281
  newPageWithEachPlugin(optionsList?: Omit<BrowserPoolNewPageOptions<PageOptions, BrowserPlugins[number]>, 'browserPlugin'>[]): Promise<PageReturn[]>;
282
282
  /**
283
- * Retrieves a {@link BrowserController} for a given page. This is useful
283
+ * Retrieves a {@apilink BrowserController} for a given page. This is useful
284
284
  * when you're working only with pages and need to access the browser
285
285
  * manipulation functionality.
286
286
  *
package/browser-pool.js CHANGED
@@ -277,7 +277,7 @@ class BrowserPool extends tiny_typed_emitter_1.TypedEmitter {
277
277
  });
278
278
  }
279
279
  /**
280
- * Unlike {@link newPage}, `newPageInNewBrowser` always launches a new
280
+ * Unlike {@apilink newPage}, `newPageInNewBrowser` always launches a new
281
281
  * browser to open the page in. Use the `launchOptions` option to
282
282
  * configure the new browser.
283
283
  */
@@ -321,7 +321,7 @@ class BrowserPool extends tiny_typed_emitter_1.TypedEmitter {
321
321
  return Promise.all(pagePromises);
322
322
  }
323
323
  /**
324
- * Retrieves a {@link BrowserController} for a given page. This is useful
324
+ * Retrieves a {@apilink BrowserController} for a given page. This is useful
325
325
  * when you're working only with pages and need to access the browser
326
326
  * manipulation functionality.
327
327
  *
@@ -4,7 +4,7 @@
4
4
  * in order to work around authorization and to enable upstream.
5
5
  * @internal
6
6
  */
7
- export declare function createProxyServerForContainers(): Promise<{
7
+ export declare function createProxyServerForContainers(fallbackProxyUrl?: string): Promise<{
8
8
  port: number;
9
9
  ipToProxy: Map<string, string>;
10
10
  close(closeConnections: boolean): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"container-proxy-server.d.ts","sourceRoot":"","sources":["../src/container-proxy-server.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAsB,8BAA8B;;;4BAgCd,OAAO;GAI5C"}
1
+ {"version":3,"file":"container-proxy-server.d.ts","sourceRoot":"","sources":["../src/container-proxy-server.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAAC,gBAAgB,CAAC,EAAE,MAAM;;;4BAuCxC,OAAO;GAI5C"}
@@ -8,7 +8,7 @@ const proxy_chain_1 = require("proxy-chain");
8
8
  * in order to work around authorization and to enable upstream.
9
9
  * @internal
10
10
  */
11
- async function createProxyServerForContainers() {
11
+ async function createProxyServerForContainers(fallbackProxyUrl) {
12
12
  const ipToProxy = new Map();
13
13
  const proxyServer = new proxy_chain_1.Server({
14
14
  prepareRequestFunction({ request }) {
@@ -18,6 +18,12 @@ async function createProxyServerForContainers() {
18
18
  : request.socket.localAddress;
19
19
  const upstreamProxyUrl = ipToProxy.get(localAddress);
20
20
  if (upstreamProxyUrl === undefined) {
21
+ if (fallbackProxyUrl) {
22
+ return {
23
+ upstreamProxyUrl: fallbackProxyUrl,
24
+ requestAuthentication: false,
25
+ };
26
+ }
21
27
  // eslint-disable-next-line no-console
22
28
  console.warn(`Request without proxy ${localAddress} ${request.headers.host}`);
23
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container-proxy-server.js","sourceRoot":"","sources":["../src/container-proxy-server.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AAEzD;;;;;GAKG;AACI,KAAK,UAAU,8BAA8B;IAChD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,MAAM,WAAW,GAAG,IAAI,oBAAgB,CAAC;QACrC,sBAAsB,CAAC,EAAE,OAAO,EAAE;YAC9B,MAAM,UAAU,GAAG,SAAS,CAAC;YAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,YAAa,CAAC,UAAU,CAAC,UAAU,CAAC;gBACpE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAa,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;gBACvD,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAa,CAAC;YAEnC,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAErD,IAAI,gBAAgB,KAAK,SAAS,EAAE;gBAChC,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,yBAAyB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;aACjF;YAED,OAAO;gBACH,gBAAgB;gBAChB,qBAAqB,EAAE,KAAK;aAC/B,CAAC;QACN,CAAC;QACD,IAAI,EAAE,CAAC;KACV,CAAC,CAAC;IAEH,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;IAE3B,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAE3B,OAAO;QACH,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,SAAS;QACT,KAAK,CAAC,KAAK,CAAC,gBAAyB;YACjC,OAAO,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;KACJ,CAAC;AACN,CAAC;AApCD,wEAoCC;AAAA,CAAC"}
1
+ {"version":3,"file":"container-proxy-server.js","sourceRoot":"","sources":["../src/container-proxy-server.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AAEzD;;;;;GAKG;AACI,KAAK,UAAU,8BAA8B,CAAC,gBAAyB;IAC1E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,MAAM,WAAW,GAAG,IAAI,oBAAgB,CAAC;QACrC,sBAAsB,CAAC,EAAE,OAAO,EAAE;YAC9B,MAAM,UAAU,GAAG,SAAS,CAAC;YAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,YAAa,CAAC,UAAU,CAAC,UAAU,CAAC;gBACpE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAa,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;gBACvD,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAa,CAAC;YAEnC,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAErD,IAAI,gBAAgB,KAAK,SAAS,EAAE;gBAChC,IAAI,gBAAgB,EAAE;oBAClB,OAAO;wBACH,gBAAgB,EAAE,gBAAgB;wBAClC,qBAAqB,EAAE,KAAK;qBAC/B,CAAC;iBACL;gBAED,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,yBAAyB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;aACjF;YAED,OAAO;gBACH,gBAAgB;gBAChB,qBAAqB,EAAE,KAAK;aAC/B,CAAC;QACN,CAAC;QACD,IAAI,EAAE,CAAC;KACV,CAAC,CAAC;IAEH,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;IAE3B,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAE3B,OAAO;QACH,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,SAAS;QACT,KAAK,CAAC,KAAK,CAAC,gBAAyB;YACjC,OAAO,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;KACJ,CAAC;AACN,CAAC;AA3CD,wEA2CC;AAAA,CAAC"}
@@ -33,6 +33,7 @@ export interface LaunchContextOptions<Library extends CommonLibrary = CommonLibr
33
33
  /**
34
34
  * @experimental
35
35
  * Like `useIncognitoPages`, but for persistent contexts, so cache is used for faster loading.
36
+ * Works best with Firefox. Unstable on Chromium.
36
37
  */
37
38
  experimentalContainers?: boolean;
38
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"launch-context.d.ts","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACrG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB,CACjC,OAAO,SAAS,aAAa,GAAG,aAAa,EAC7C,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACjD,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;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAa,CACtB,OAAO,SAAS,aAAa,GAAG,aAAa,EAC7C,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACjD,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,sBAAsB,EAAE,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAE5E,WAAW,CAAC,EAAE,6BAA6B,CAAC;IAC5C,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;gBAEd,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC;IAqB/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"}
1
+ {"version":3,"file":"launch-context.d.ts","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACrG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB,CACjC,OAAO,SAAS,aAAa,GAAG,aAAa,EAC7C,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACjD,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;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAa,CACtB,OAAO,SAAS,aAAa,GAAG,aAAa,EAC7C,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACjD,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,sBAAsB,EAAE,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAE5E,WAAW,CAAC,EAAE,6BAA6B,CAAC;IAC5C,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;gBAEd,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC;IAqB/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"}
@@ -1 +1 @@
1
- {"version":3,"file":"launch-context.js","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":";;;AAmDA,MAAa,aAAa;IAoBtB,YAAY,OAAmG;QAb/G;;;;;WAAY;QACZ;;;;;WAAmG;QACnG;;;;;WAA8B;QAC9B;;;;;WAA2B;QAC3B;;;;;WAAgC;QAChC;;;;;WAAoB;QAEpB;;;;;WAA2B;QAC3B;;;;mBAAuC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;WAAC;QAE5E;;;;;WAA4C;QAIxC,MAAM,EACF,EAAE,EACF,aAAa,EACb,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,GAAG,EAAE,GACnB,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,iBAAiB,GAAG,iBAAiB,IAAI,KAAK,CAAC;QACpD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,IAAI,KAAK,CAAC;QAC9D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,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;gBACxC,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,0BAA0B,CAAC,CAAC;aAC3F;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;aACjC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ,CAAC,GAAuB;QAChC,IAAI,CAAC,GAAG,EAAE;YACN,OAAO;SACV;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;AAlFD,sCAkFC"}
1
+ {"version":3,"file":"launch-context.js","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":";;;AAoDA,MAAa,aAAa;IAoBtB,YAAY,OAAmG;QAb/G;;;;;WAAY;QACZ;;;;;WAAmG;QACnG;;;;;WAA8B;QAC9B;;;;;WAA2B;QAC3B;;;;;WAAgC;QAChC;;;;;WAAoB;QAEpB;;;;;WAA2B;QAC3B;;;;mBAAuC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;WAAC;QAE5E;;;;;WAA4C;QAIxC,MAAM,EACF,EAAE,EACF,aAAa,EACb,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,GAAG,EAAE,GACnB,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,iBAAiB,GAAG,iBAAiB,IAAI,KAAK,CAAC;QACpD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,IAAI,KAAK,CAAC;QAC9D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,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;gBACxC,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,0BAA0B,CAAC,CAAC;aAC3F;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;aACjC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ,CAAC,GAAuB;QAChC,IAAI,CAAC,GAAG,EAAE;YACN,OAAO;SACV;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;AAlFD,sCAkFC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crawlee/browser-pool",
3
- "version": "3.0.3-beta.9",
3
+ "version": "3.0.4-beta.1",
4
4
  "description": "Rotate multiple browsers using popular automation libraries such as Playwright or Puppeteer.",
5
5
  "engines": {
6
6
  "node": ">=16.0.0"
@@ -38,9 +38,9 @@
38
38
  "dependencies": {
39
39
  "@apify/log": "^2.0.0",
40
40
  "@apify/timeout": "^0.3.0",
41
- "@crawlee/types": "^3.0.3-beta.9",
42
- "fingerprint-generator": "^2.0.2-dev.3",
43
- "fingerprint-injector": "^2.0.2-dev.3",
41
+ "@crawlee/types": "^3.0.4-beta.1",
42
+ "fingerprint-generator": "^2.0.5",
43
+ "fingerprint-injector": "^2.0.4",
44
44
  "lodash.merge": "^4.6.2",
45
45
  "nanoid": "^3.3.4",
46
46
  "ow": "^0.28.1",
@@ -0,0 +1,2 @@
1
+ export declare const loadFirefoxAddon: (port: number, host: string, addonPath: string) => Promise<boolean>;
2
+ //# sourceMappingURL=load-firefox-addon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-firefox-addon.d.ts","sourceRoot":"","sources":["../../src/playwright/load-firefox-addon.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,SAAU,MAAM,QAAQ,MAAM,aAAa,MAAM,qBAoG7E,CAAC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadFirefoxAddon = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const buffer_1 = require("buffer");
6
+ const net_1 = tslib_1.__importDefault(require("net"));
7
+ const loadFirefoxAddon = (port, host, addonPath) => {
8
+ return new Promise((resolve) => {
9
+ const socket = net_1.default.connect({
10
+ port,
11
+ host,
12
+ });
13
+ let success = false;
14
+ socket.once('error', () => { });
15
+ socket.once('close', () => {
16
+ resolve(success);
17
+ });
18
+ const send = (data) => {
19
+ const raw = buffer_1.Buffer.from(JSON.stringify(data));
20
+ socket.write(`${raw.length}`);
21
+ socket.write(':');
22
+ socket.write(raw);
23
+ };
24
+ send({
25
+ to: 'root',
26
+ type: 'getRoot',
27
+ });
28
+ const onMessage = (message) => {
29
+ if (message.addonsActor) {
30
+ send({
31
+ to: message.addonsActor,
32
+ type: 'installTemporaryAddon',
33
+ addonPath,
34
+ });
35
+ }
36
+ if (message.addon) {
37
+ success = true;
38
+ socket.end();
39
+ }
40
+ if (message.error) {
41
+ socket.end();
42
+ }
43
+ };
44
+ const buffers = [];
45
+ let remainingBytes = 0;
46
+ socket.on('data', (data) => {
47
+ while (true) {
48
+ if (remainingBytes === 0) {
49
+ const index = data.indexOf(':');
50
+ buffers.push(data);
51
+ if (index === -1) {
52
+ return;
53
+ }
54
+ const buffer = buffer_1.Buffer.concat(buffers);
55
+ const bufferIndex = buffer.indexOf(':');
56
+ buffers.length = 0;
57
+ remainingBytes = Number(buffer.subarray(0, bufferIndex).toString());
58
+ if (!Number.isFinite(remainingBytes)) {
59
+ throw new Error('Invalid state');
60
+ }
61
+ data = buffer.subarray(bufferIndex + 1);
62
+ }
63
+ if (data.length < remainingBytes) {
64
+ remainingBytes -= data.length;
65
+ buffers.push(data);
66
+ break;
67
+ }
68
+ buffers.push(data.subarray(0, remainingBytes));
69
+ const buffer = buffer_1.Buffer.concat(buffers);
70
+ buffers.length = 0;
71
+ const json = JSON.parse(buffer.toString());
72
+ queueMicrotask(() => {
73
+ onMessage(json);
74
+ });
75
+ const remainder = data.subarray(remainingBytes);
76
+ remainingBytes = 0;
77
+ if (remainder.length === 0) {
78
+ break;
79
+ }
80
+ data = remainder;
81
+ }
82
+ });
83
+ });
84
+ };
85
+ exports.loadFirefoxAddon = loadFirefoxAddon;
86
+ //# sourceMappingURL=load-firefox-addon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-firefox-addon.js","sourceRoot":"","sources":["../../src/playwright/load-firefox-addon.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"playwright-controller.d.ts","sourceRoot":"","sources":["../../src/playwright/playwright-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAO3E,qBAAa,oBAAqB,SAAQ,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IACnH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAmB9E,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAiF3E,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;cAwB1C,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAoB5E"}
1
+ {"version":3,"file":"playwright-controller.d.ts","sourceRoot":"","sources":["../../src/playwright/playwright-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAO3E,qBAAa,oBAAqB,SAAQ,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IACnH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAmB9E,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAqF3E,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;cAwB1C,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAoB5E"}
@@ -55,23 +55,28 @@ class PlaywrightController extends browser_controller_1.BrowserController {
55
55
  url.password = contextOptions.proxy.password ?? '';
56
56
  this.browserPlugin._containerProxyServer.ipToProxy.set(proxyip, url.href);
57
57
  }
58
- const session = await page.context().newCDPSession(page);
59
- await session.send('Network.enable');
60
- session.on('Network.responseReceived', (responseRecevied) => {
61
- const logOnly = ['Document', 'XHR', 'Fetch', 'EventSource', 'WebSocket', 'Other'];
62
- if (!logOnly.includes(responseRecevied.type)) {
63
- return;
64
- }
65
- const { response } = responseRecevied;
66
- if (response.fromDiskCache || response.fromPrefetchCache || response.fromServiceWorker) {
67
- return;
68
- }
69
- const { remoteIPAddress } = response;
70
- if (remoteIPAddress && remoteIPAddress !== proxyip) {
71
- // eslint-disable-next-line no-console
72
- console.warn(`Request to ${response.url} was through ${remoteIPAddress} instead of ${proxyip}`);
73
- }
74
- });
58
+ if (this.browserPlugin.library.name() === 'firefox') {
59
+ // Playwright does not support creating new CDP sessions with Firefox
60
+ }
61
+ else {
62
+ const session = await page.context().newCDPSession(page);
63
+ await session.send('Network.enable');
64
+ session.on('Network.responseReceived', (responseRecevied) => {
65
+ const logOnly = ['Document', 'XHR', 'Fetch', 'EventSource', 'WebSocket', 'Other'];
66
+ if (!logOnly.includes(responseRecevied.type)) {
67
+ return;
68
+ }
69
+ const { response } = responseRecevied;
70
+ if (response.fromDiskCache || response.fromPrefetchCache || response.fromServiceWorker) {
71
+ return;
72
+ }
73
+ const { remoteIPAddress } = response;
74
+ if (remoteIPAddress && remoteIPAddress !== proxyip) {
75
+ // eslint-disable-next-line no-console
76
+ console.warn(`Request to ${response.url} was through ${remoteIPAddress} instead of ${proxyip}`);
77
+ }
78
+ });
79
+ }
75
80
  tabIds.set(page, tabid);
76
81
  }
77
82
  (0, timeout_1.tryCancel)();
@@ -1 +1 @@
1
- {"version":3,"file":"playwright-controller.js","sourceRoot":"","sources":["../../src/playwright/playwright-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwright-controller.js","sourceRoot":"","sources":["../../src/playwright/playwright-controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"playwright-plugin.d.ts","sourceRoot":"","sources":["../../src/playwright/playwright-plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,IAAI,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAM3E,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACrH,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC,CAAC;cAEnE,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkG9F,SAAS,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;cAItG,wBAAwB,CAAC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlG,SAAS,CAAC,uBAAuB,IAAI,OAAO;CAI/C"}
1
+ {"version":3,"file":"playwright-plugin.d.ts","sourceRoot":"","sources":["../../src/playwright/playwright-plugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,IAAI,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAgB3E,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACrH,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC,CAAC;cAEnE,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4I9F,SAAS,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;cAItG,wBAAwB,CAAC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlG,SAAS,CAAC,uBAAuB,IAAI,OAAO;CAI/C"}
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PlaywrightPlugin = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const os_1 = tslib_1.__importDefault(require("os"));
6
+ const fs_1 = tslib_1.__importDefault(require("fs"));
7
+ const net_1 = tslib_1.__importDefault(require("net"));
5
8
  const path_1 = tslib_1.__importDefault(require("path"));
6
9
  const playwright_browser_1 = require("./playwright-browser");
7
10
  const playwright_controller_1 = require("./playwright-controller");
@@ -10,6 +13,15 @@ const logger_1 = require("../logger");
10
13
  const proxy_server_1 = require("../proxy-server");
11
14
  const anonymize_proxy_1 = require("../anonymize-proxy");
12
15
  const container_proxy_server_1 = require("../container-proxy-server");
16
+ const load_firefox_addon_1 = require("./load-firefox-addon");
17
+ const getFreePort = async () => {
18
+ return new Promise((resolve, reject) => {
19
+ const server = net_1.default.createServer().once('error', reject).listen(() => {
20
+ resolve(server.address().port);
21
+ server.close();
22
+ });
23
+ });
24
+ };
13
25
  // __dirname = browser-pool/dist/playwright
14
26
  // taacPath = browser-pool/dist/tab-as-a-container
15
27
  const taacPath = path_1.default.join(__dirname, '..', 'tab-as-a-container');
@@ -30,7 +42,8 @@ class PlaywrightPlugin extends browser_plugin_1.BrowserPlugin {
30
42
  });
31
43
  }
32
44
  async _launch(launchContext) {
33
- const { launchOptions, useIncognitoPages, userDataDir, proxyUrl, } = launchContext;
45
+ const { launchOptions, useIncognitoPages, proxyUrl, } = launchContext;
46
+ let { userDataDir, } = launchContext;
34
47
  let browser;
35
48
  // Required for the `proxy` context option to work.
36
49
  launchOptions.proxy = {
@@ -54,26 +67,58 @@ class PlaywrightPlugin extends browser_plugin_1.BrowserPlugin {
54
67
  }
55
68
  }
56
69
  else {
57
- if (launchContext.experimentalContainers) {
70
+ const experimentalContainers = launchContext.experimentalContainers && this.library.name() !== 'webkit';
71
+ let firefoxPort;
72
+ if (experimentalContainers) {
58
73
  launchOptions.args = [
59
74
  ...(launchOptions.args ?? []),
60
75
  ];
61
76
  // Use native headless mode so we can load an extension
62
- if (launchOptions.headless) {
77
+ if (launchOptions.headless && this.library.name() === 'chromium') {
63
78
  launchOptions.args.push('--headless=chrome');
64
79
  }
65
- launchOptions.args.push(`--disable-extensions-except=${taacPath}`, `--load-extension=${taacPath}`);
80
+ if (this.library.name() === 'chromium') {
81
+ launchOptions.args.push(`--disable-extensions-except=${taacPath}`, `--load-extension=${taacPath}`);
82
+ }
83
+ else if (this.library.name() === 'firefox') {
84
+ firefoxPort = await getFreePort();
85
+ launchOptions.args.push(`--start-debugger-server=${firefoxPort}`);
86
+ const prefs = {
87
+ 'devtools.debugger.remote-enabled': true,
88
+ 'devtools.debugger.prompt-connection': false,
89
+ };
90
+ const prefsRaw = Object.entries(prefs)
91
+ .map(([name, value]) => `user_pref(${JSON.stringify(name)}, ${JSON.stringify(value)});`)
92
+ .join('\n');
93
+ if (userDataDir === '') {
94
+ userDataDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'apify-playwright-firefox-taac-'));
95
+ }
96
+ fs_1.default.writeFileSync(path_1.default.join(userDataDir, 'user.js'), prefsRaw);
97
+ }
66
98
  }
67
99
  const browserContext = await this.library.launchPersistentContext(userDataDir, launchOptions);
68
- if (launchContext.experimentalContainers) {
69
- // Wait for the extension to load.
70
- let [backgroundPage] = browserContext.backgroundPages();
71
- if (!backgroundPage) {
72
- backgroundPage = await browserContext.waitForEvent('backgroundpage');
100
+ browserContext.once('close', () => {
101
+ if (userDataDir.includes('apify-playwright-firefox-taac-')) {
102
+ fs_1.default.rmSync(userDataDir, {
103
+ recursive: true,
104
+ force: true,
105
+ });
106
+ }
107
+ });
108
+ if (experimentalContainers) {
109
+ if (this.library.name() === 'firefox') {
110
+ const loaded = await (0, load_firefox_addon_1.loadFirefoxAddon)(firefoxPort, '127.0.0.1', taacPath);
111
+ if (!loaded) {
112
+ await browserContext.close();
113
+ throw new Error('Failed to load Firefox experimental containers addon');
114
+ }
73
115
  }
116
+ // Wait for the extension to load.
117
+ const checker = await browserContext.newPage();
118
+ await checker.goto('data:text/plain,tabid');
119
+ await checker.waitForNavigation();
120
+ await checker.close();
74
121
  this._containerProxyServer = await (0, container_proxy_server_1.createProxyServerForContainers)();
75
- // @ts-expect-error loading is defined inside background script
76
- await backgroundPage.evaluate(() => loading);
77
122
  const page = await browserContext.newPage();
78
123
  await page.goto(`data:text/plain,proxy#{"port":${this._containerProxyServer.port}}`);
79
124
  await page.waitForNavigation();