@crawlee/browser-pool 3.0.3 → 3.0.4-beta.10

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.
@@ -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();
@@ -1 +1 @@
1
- {"version":3,"file":"playwright-plugin.js","sourceRoot":"","sources":["../../src/playwright/playwright-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwright-plugin.js","sourceRoot":"","sources":["../../src/playwright/playwright-plugin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"puppeteer-plugin.d.ts","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAA0B,MAAM,4BAA4B,CAAC;AAClF,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;AAQvD,qBAAa,eAAgB,SAAQ,aAAa,CAAC,OAAO,SAAS,CAAC;cAChD,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAmIzF,SAAS,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,OAAO,SAAS,CAAC;cAIlD,wBAAwB,CACpC,aAAa,EAAE,aAAa,CAAC,OAAO,SAAS,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC;IA8BhB,SAAS,CAAC,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,OAAO,SAAS,CAAC,GAAG,OAAO;CAG9F"}
1
+ {"version":3,"file":"puppeteer-plugin.d.ts","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAA0B,MAAM,4BAA4B,CAAC;AAClF,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;AAQvD,qBAAa,eAAgB,SAAQ,aAAa,CAAC,OAAO,SAAS,CAAC;cAChD,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAwIzF,SAAS,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,OAAO,SAAS,CAAC;cAIlD,wBAAwB,CACpC,aAAa,EAAE,aAAa,CAAC,OAAO,SAAS,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC;IA8BhB,SAAS,CAAC,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,OAAO,SAAS,CAAC,GAAG,OAAO;CAG9F"}
@@ -9,7 +9,10 @@ const anonymize_proxy_1 = require("../anonymize-proxy");
9
9
  const PROXY_SERVER_ARG = '--proxy-server=';
10
10
  class PuppeteerPlugin extends browser_plugin_1.BrowserPlugin {
11
11
  async _launch(launchContext) {
12
- const { launchOptions, userDataDir, useIncognitoPages, proxyUrl, } = launchContext;
12
+ const { launchOptions, userDataDir, useIncognitoPages, experimentalContainers, proxyUrl, } = launchContext;
13
+ if (experimentalContainers) {
14
+ throw new Error('Experimental containers are only available with Playwright');
15
+ }
13
16
  launchOptions.userDataDir = launchOptions.userDataDir ?? userDataDir;
14
17
  if (launchOptions.headless === false) {
15
18
  if (Array.isArray(launchOptions.args)) {
@@ -1 +1 @@
1
- {"version":3,"file":"puppeteer-plugin.js","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"puppeteer-plugin.js","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,6 @@
1
1
  'use strict';
2
2
 
3
- /* eslint-disable no-unused-vars */
4
3
  /* eslint-disable no-undef */
5
- /* eslint-disable no-empty */
6
-
7
- let resolveLoading;
8
- const loading = new Promise((resolve) => {
9
- resolveLoading = resolve;
10
- });
11
4
 
12
5
  const isFirefox = navigator.userAgent.includes('Firefox');
13
6
 
@@ -22,7 +15,7 @@ const translator = new Map();
22
15
  const counter = new Map();
23
16
 
24
17
  const getOpenerId = (id) => {
25
- if (typeof id !== 'number') {
18
+ if (typeof id !== 'number' || !Number.isFinite(id)) {
26
19
  throw new Error('Expected `id` to be a number');
27
20
  }
28
21
 
@@ -60,16 +53,24 @@ chrome.cookies.onChanged.addListener(async (changeInfo) => {
60
53
  return;
61
54
  }
62
55
 
63
- const dotIndex = cookie.name.slice(1).indexOf('.');
56
+ const dotIndex = cookie.name.indexOf('.', 1);
64
57
  if (dotIndex === -1) {
65
58
  return;
66
59
  }
67
60
 
68
- const tabId = Number(cookie.name.slice(0, dotIndex));
61
+ const tabId = Number(cookie.name.slice(1, dotIndex));
62
+
63
+ if (!Number.isFinite(tabId)) {
64
+ return;
65
+ }
66
+
69
67
  const realCookieName = cookie.name.slice(dotIndex + 1);
70
68
  const opener = getOpenerId(tabId);
71
69
 
72
70
  if (tabId !== opener) {
71
+ // eslint-disable-next-line no-console
72
+ console.log(`${realCookieName} -> ${keyFromTabId(opener)}`);
73
+
73
74
  await chrome.cookies.remove({
74
75
  name: cookie.name,
75
76
  url: getCookieURL(cookie),
@@ -108,10 +109,32 @@ chrome.webRequest.onBeforeSendHeaders.addListener(
108
109
  cancel: true,
109
110
  };
110
111
  }
112
+
113
+ // This one is for Firefox
114
+ if (header.name.toLowerCase() === 'x-moz' && header.value === 'prefetch' && !(counter.has(details.tabId))) {
115
+ // eslint-disable-next-line no-console
116
+ console.log(details);
117
+ return {
118
+ cancel: true,
119
+ };
120
+ }
121
+
122
+ if (['beacon', 'csp_report', 'ping', 'speculative'].includes(details.type)) {
123
+ // eslint-disable-next-line no-console
124
+ console.log(details);
125
+ return {
126
+ cancel: true,
127
+ };
128
+ }
129
+
130
+ if (details.tabId === -1) {
131
+ // eslint-disable-next-line no-console
132
+ console.log(details);
133
+ }
111
134
  }
112
135
 
113
136
  return {
114
- requestHeaders: details.requestHeaders.filter((header) => header.name !== 'cookie' || header.value !== ''),
137
+ requestHeaders: details.requestHeaders.filter((header) => header.name.toLowerCase() !== 'cookie' || header.value !== ''),
115
138
  };
116
139
  },
117
140
  { urls: ['<all_urls>'] },
@@ -294,7 +317,7 @@ const routes = Object.assign(Object.create(null), {
294
317
  },
295
318
  });
296
319
 
297
- chrome.webNavigation.onCompleted.addListener(async (details) => {
320
+ const onCompleted = async (details) => {
298
321
  const textPlain = 'data:text/plain,';
299
322
 
300
323
  if (details.frameId === 0 && details.url.startsWith(textPlain)) {
@@ -310,7 +333,9 @@ chrome.webNavigation.onCompleted.addListener(async (details) => {
310
333
  if (hash !== '') {
311
334
  try {
312
335
  body = JSON.parse(decodeURIComponent(hash));
313
- } catch {}
336
+ } catch {
337
+ // Empty on purpose.
338
+ }
314
339
  }
315
340
 
316
341
  // Different protocols are required, otherwise `onCompleted` won't be emitted.
@@ -323,7 +348,9 @@ chrome.webNavigation.onCompleted.addListener(async (details) => {
323
348
  // Invalid URL, ignore.
324
349
  }
325
350
  }
326
- });
351
+ };
352
+
353
+ chrome.webNavigation.onCompleted.addListener(onCompleted);
327
354
 
328
355
  // Load content scripts.
329
356
  (async () => {
@@ -383,5 +410,13 @@ chrome.webNavigation.onCompleted.addListener(async (details) => {
383
410
  });
384
411
  });
385
412
 
386
- resolveLoading();
413
+ chrome.tabs.query({}, async (tabs) => {
414
+ for (const tab of tabs) {
415
+ await onCompleted({
416
+ frameId: 0,
417
+ url: tab.url,
418
+ tabId: tab.id,
419
+ });
420
+ }
421
+ });
387
422
  })();