|
1 | | -const puppeteer = require('puppeteer-core-patch') |
| 1 | +var puppeteer = require('puppeteer-core-patch') |
2 | 2 | const { pageController } = require('./module/pageController.js') |
3 | 3 | const Xvfb = require('xvfb'); |
4 | 4 |
|
5 | 5 | process.env.REBROWSER_PATCHES_RUNTIME_FIX_MODE = "alwaysIsolated" |
6 | 6 | // process.env.REBROWSER_PATCHES_DEBUG = 1 |
7 | | -async function connect({ args = [], headless = false, customConfig = {}, proxy = {}, turnstile = false, connectOption = {}, disableXvfb = false }) { |
| 7 | +async function connect({ args = [], headless = false, customConfig = {}, proxy = {}, turnstile = false, connectOption = {}, disableXvfb = false, plugins = [] }) { |
8 | 8 | const { launch, Launcher } = await import('chrome-launcher'); |
9 | 9 |
|
10 | 10 | let xvfbsession = null |
@@ -33,14 +33,24 @@ async function connect({ args = [], headless = false, customConfig = {}, proxy = |
33 | 33 | ...customConfig |
34 | 34 | }); |
35 | 35 |
|
| 36 | + if (plugins.length > 0) { |
| 37 | + const { addExtra } = await import('puppeteer-extra'); |
| 38 | + |
| 39 | + puppeteer = addExtra(puppeteer); |
| 40 | + |
| 41 | + for (const item of plugins) { |
| 42 | + puppeteer.use(item); |
| 43 | + } |
| 44 | + } |
| 45 | + |
36 | 46 | const browser = await puppeteer.connect({ |
37 | 47 | browserURL: `http://127.0.0.1:${chrome.port}`, |
38 | 48 | ...connectOption |
39 | 49 | }); |
40 | 50 |
|
41 | 51 | let [page] = await browser.pages(); |
42 | 52 |
|
43 | | - let pageControllerConfig = { browser, page, proxy, turnstile, xvfbsession, pid: chrome.pid } |
| 53 | + let pageControllerConfig = { browser, page, proxy, turnstile, xvfbsession, pid: chrome.pid, plugins } |
44 | 54 |
|
45 | 55 | page = await pageController(pageControllerConfig); |
46 | 56 |
|
|
0 commit comments