@letsscrapedata/controller 0.0.70 → 0.1.0
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/dist/index.cjs +175 -46
- package/dist/index.d.cts +27 -3
- package/dist/index.d.ts +27 -3
- package/dist/index.js +173 -44
- package/package.json +7 -12
package/dist/index.cjs
CHANGED
|
@@ -1270,6 +1270,7 @@ var PlaywrightPage = class extends import_node_events.default {
|
|
|
1270
1270
|
requestMethod,
|
|
1271
1271
|
requestUrl,
|
|
1272
1272
|
requestData,
|
|
1273
|
+
resourceType: request.resourceType(),
|
|
1273
1274
|
responseData
|
|
1274
1275
|
});
|
|
1275
1276
|
loginfo(`##browser cache matched response: ${requestUrl}`);
|
|
@@ -1355,6 +1356,9 @@ var PlaywrightPage = class extends import_node_events.default {
|
|
|
1355
1356
|
logdbg(`##browser LsdPage ${this.#pageId} is allocated`);
|
|
1356
1357
|
return true;
|
|
1357
1358
|
}
|
|
1359
|
+
userAgent() {
|
|
1360
|
+
return this.#lsdBrowserContext.userAgent();
|
|
1361
|
+
}
|
|
1358
1362
|
async waitForElement(selector, options = {}) {
|
|
1359
1363
|
if (!this.#page) {
|
|
1360
1364
|
throw new Error("No valid page");
|
|
@@ -1469,6 +1473,7 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1469
1473
|
#browserContextIdx;
|
|
1470
1474
|
#browserContext;
|
|
1471
1475
|
#browserContextCreationMethod;
|
|
1476
|
+
#userAgent;
|
|
1472
1477
|
#apiContext;
|
|
1473
1478
|
#createTime;
|
|
1474
1479
|
#lastStatusUpdateTime;
|
|
@@ -1496,8 +1501,15 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1496
1501
|
await lsdPage.maximizeViewport();
|
|
1497
1502
|
}
|
|
1498
1503
|
}
|
|
1504
|
+
if (!this.#userAgent && this.#lsdPages.length > 0) {
|
|
1505
|
+
const lsdPage = this.#lsdPages[0];
|
|
1506
|
+
const userAgent = await lsdPage.evaluate(() => navigator.userAgent);
|
|
1507
|
+
if (typeof userAgent === "string" && userAgent) {
|
|
1508
|
+
this.#userAgent = userAgent;
|
|
1509
|
+
}
|
|
1510
|
+
}
|
|
1499
1511
|
}
|
|
1500
|
-
constructor(lsdBrowser, browserContext, browserContextCreationMethod, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, maxViewportOfNewPage = true) {
|
|
1512
|
+
constructor(lsdBrowser, browserContext, browserContextCreationMethod, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, userAgent = "", maxViewportOfNewPage = true) {
|
|
1501
1513
|
if (!lsdBrowser || typeof lsdBrowser.browserContexts !== "function") {
|
|
1502
1514
|
throw new Error(`Invalid lsdBrowser parameter`);
|
|
1503
1515
|
}
|
|
@@ -1510,6 +1522,7 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1510
1522
|
this.#browserContextIdx = browserContextIdx;
|
|
1511
1523
|
this.#browserContext = browserContext;
|
|
1512
1524
|
this.#browserContextCreationMethod = browserContextCreationMethod;
|
|
1525
|
+
this.#userAgent = userAgent;
|
|
1513
1526
|
const apiRequestContext = browserContext.request;
|
|
1514
1527
|
this.#apiContext = new PlaywrightApiContext(apiRequestContext);
|
|
1515
1528
|
const currentTime = (0, import_utils4.getCurrentUnixTime)();
|
|
@@ -1663,6 +1676,12 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1663
1676
|
}
|
|
1664
1677
|
lsdPage = this.#lsdPages.find((p) => p.isFree());
|
|
1665
1678
|
if (lsdPage) {
|
|
1679
|
+
if (!this.#userAgent) {
|
|
1680
|
+
const userAgent = await lsdPage.evaluate(() => navigator.userAgent);
|
|
1681
|
+
if (typeof userAgent === "string" && userAgent) {
|
|
1682
|
+
this.#userAgent = userAgent;
|
|
1683
|
+
}
|
|
1684
|
+
}
|
|
1666
1685
|
lsdPage.use();
|
|
1667
1686
|
this.#freeGettingLock();
|
|
1668
1687
|
return lsdPage;
|
|
@@ -1769,6 +1788,9 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1769
1788
|
return false;
|
|
1770
1789
|
}
|
|
1771
1790
|
}
|
|
1791
|
+
userAgent() {
|
|
1792
|
+
return this.#userAgent;
|
|
1793
|
+
}
|
|
1772
1794
|
_origBrowserContext() {
|
|
1773
1795
|
return this.#browserContext;
|
|
1774
1796
|
}
|
|
@@ -1776,7 +1798,7 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1776
1798
|
|
|
1777
1799
|
// src/playwright/browser.ts
|
|
1778
1800
|
var PlaywrightBrowser = class _PlaywrightBrowser extends import_node_events3.default {
|
|
1779
|
-
static #supportedBrowserTypes = ["chromium", "firefox", "webkit"];
|
|
1801
|
+
static #supportedBrowserTypes = ["chrome", "chromium", "firefox", "webkit"];
|
|
1780
1802
|
static doesSupport(browserType) {
|
|
1781
1803
|
return _PlaywrightBrowser.#supportedBrowserTypes.includes(browserType);
|
|
1782
1804
|
}
|
|
@@ -1838,7 +1860,7 @@ var PlaywrightBrowser = class _PlaywrightBrowser extends import_node_events3.def
|
|
|
1838
1860
|
}
|
|
1839
1861
|
const incognito = typeof options?.incognito === "boolean" ? options.incognito : true;
|
|
1840
1862
|
for (const browserContext of browserContexts) {
|
|
1841
|
-
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, "launch", incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
1863
|
+
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, "launch", incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), "", maxViewportOfNewPage);
|
|
1842
1864
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
1843
1865
|
}
|
|
1844
1866
|
browser.on("disconnected" /* BROWSER_DISCONNECTED */, () => {
|
|
@@ -1890,12 +1912,17 @@ var PlaywrightBrowser = class _PlaywrightBrowser extends import_node_events3.def
|
|
|
1890
1912
|
const { proxyUrl: server, username, password } = proxy;
|
|
1891
1913
|
browserContextOptions.proxy = { server, username, password };
|
|
1892
1914
|
}
|
|
1893
|
-
|
|
1894
|
-
|
|
1915
|
+
let userAgent = options?.userAgent ? options.userAgent : this.#options.userAgent;
|
|
1916
|
+
const lsdLaunchOptions = this.#options;
|
|
1917
|
+
if (!userAgent && lsdLaunchOptions.headless && lsdLaunchOptions.headlessUserAgent) {
|
|
1918
|
+
userAgent = lsdLaunchOptions.headlessUserAgent;
|
|
1919
|
+
}
|
|
1920
|
+
if (userAgent) {
|
|
1921
|
+
browserContextOptions.userAgent = userAgent;
|
|
1895
1922
|
}
|
|
1896
1923
|
const browserContext = await this.#browser.newContext(browserContextOptions);
|
|
1897
1924
|
const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
|
|
1898
|
-
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, "new", true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
1925
|
+
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, "new", true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent, maxViewportOfNewPage);
|
|
1899
1926
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
1900
1927
|
return lsdBrowserContext;
|
|
1901
1928
|
}
|
|
@@ -2278,6 +2305,7 @@ var PuppeteerPage = class extends import_node_events4.default {
|
|
|
2278
2305
|
#page;
|
|
2279
2306
|
#status;
|
|
2280
2307
|
#pageId;
|
|
2308
|
+
#userAgent;
|
|
2281
2309
|
#closeWhenFree;
|
|
2282
2310
|
#requestInterceptionNum;
|
|
2283
2311
|
#responseInterceptionNum;
|
|
@@ -2301,7 +2329,7 @@ var PuppeteerPage = class extends import_node_events4.default {
|
|
|
2301
2329
|
}
|
|
2302
2330
|
const origCookies = await page.cookies();
|
|
2303
2331
|
const cookies = origCookies.map((origCookie) => {
|
|
2304
|
-
const { name, value, domain, path, expires, httpOnly, secure, sameSite = "Lax" } = origCookie;
|
|
2332
|
+
const { name, value, domain, path, expires, httpOnly = false, secure, sameSite = "Lax" } = origCookie;
|
|
2305
2333
|
return { name, value, domain, path, expires, httpOnly, secure, sameSite };
|
|
2306
2334
|
});
|
|
2307
2335
|
return cookies;
|
|
@@ -2511,6 +2539,7 @@ var PuppeteerPage = class extends import_node_events4.default {
|
|
|
2511
2539
|
const { browserIdx = 0, browserContextIdx = 0, pageIdx = 0, openType = "other", openTime = currentTime, lastStatusUpdateTime = currentTime, taskId = 0, relatedId = 0, misc = {} } = pageInfo ? pageInfo : {};
|
|
2512
2540
|
this.#page.pageInfo = { browserIdx, browserContextIdx, pageIdx, openType, openTime, lastStatusUpdateTime, taskId, relatedId, misc };
|
|
2513
2541
|
this.#pageId = `PuppeteerPage-${browserIdx}-${browserContextIdx}-${pageIdx}`;
|
|
2542
|
+
this.#userAgent = browserContext.userAgent();
|
|
2514
2543
|
this.#closeWhenFree = false;
|
|
2515
2544
|
this.#requestInterceptionNum = 0;
|
|
2516
2545
|
this.#responseInterceptionNum = 0;
|
|
@@ -3079,6 +3108,7 @@ var PuppeteerPage = class extends import_node_events4.default {
|
|
|
3079
3108
|
requestMethod,
|
|
3080
3109
|
requestUrl,
|
|
3081
3110
|
requestData,
|
|
3111
|
+
resourceType: request.resourceType(),
|
|
3082
3112
|
responseData
|
|
3083
3113
|
});
|
|
3084
3114
|
loginfo(`##browser cache matched response: ${requestUrl}`);
|
|
@@ -3106,10 +3136,11 @@ var PuppeteerPage = class extends import_node_events4.default {
|
|
|
3106
3136
|
return await this.#lsdBrowserContext.setStateData(stateData);
|
|
3107
3137
|
}
|
|
3108
3138
|
async setUserAgent(userAgent) {
|
|
3109
|
-
if (!this.#page) {
|
|
3139
|
+
if (!this.#page || !userAgent) {
|
|
3110
3140
|
throw new Error("No valid page");
|
|
3111
3141
|
}
|
|
3112
3142
|
await this.#page.setUserAgent(userAgent);
|
|
3143
|
+
this.#userAgent = userAgent;
|
|
3113
3144
|
return true;
|
|
3114
3145
|
}
|
|
3115
3146
|
async setViewportSize(viewPortSize) {
|
|
@@ -3150,6 +3181,9 @@ var PuppeteerPage = class extends import_node_events4.default {
|
|
|
3150
3181
|
logdbg(`##browser LsdPage ${this.#pageId} is allocated`);
|
|
3151
3182
|
return true;
|
|
3152
3183
|
}
|
|
3184
|
+
userAgent() {
|
|
3185
|
+
return this.#userAgent;
|
|
3186
|
+
}
|
|
3153
3187
|
async waitForElement(selector, options = {}) {
|
|
3154
3188
|
if (!this.#page) {
|
|
3155
3189
|
throw new Error("No valid page");
|
|
@@ -3233,9 +3267,9 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3233
3267
|
#browserContext;
|
|
3234
3268
|
#browserContextCreationMethod;
|
|
3235
3269
|
/**
|
|
3236
|
-
*
|
|
3237
|
-
* * Notice: it is not the actual userAgent if !#userAgent (ignored if !#userAgent)
|
|
3270
|
+
* userAgent of BrowserContext
|
|
3238
3271
|
*/
|
|
3272
|
+
#bcUserAgent;
|
|
3239
3273
|
#userAgent;
|
|
3240
3274
|
#createTime;
|
|
3241
3275
|
#lastStatusUpdateTime;
|
|
@@ -3262,8 +3296,15 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3262
3296
|
if (this.#maxViewportOfNewPage) {
|
|
3263
3297
|
await lsdPage.maximizeViewport();
|
|
3264
3298
|
}
|
|
3265
|
-
if (this.#
|
|
3266
|
-
await lsdPage.setUserAgent(this.#
|
|
3299
|
+
if (this.#bcUserAgent) {
|
|
3300
|
+
await lsdPage.setUserAgent(this.#bcUserAgent);
|
|
3301
|
+
}
|
|
3302
|
+
}
|
|
3303
|
+
if (!this.#userAgent && this.#lsdPages.length > 0) {
|
|
3304
|
+
const lsdPage = this.#lsdPages[0];
|
|
3305
|
+
const userAgent = await lsdPage.evaluate(() => navigator.userAgent);
|
|
3306
|
+
if (typeof userAgent === "string" && userAgent) {
|
|
3307
|
+
this.#userAgent = userAgent;
|
|
3267
3308
|
}
|
|
3268
3309
|
}
|
|
3269
3310
|
}
|
|
@@ -3280,6 +3321,7 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3280
3321
|
this.#browserContextIdx = browserContextIdx;
|
|
3281
3322
|
this.#browserContext = browserContext;
|
|
3282
3323
|
this.#browserContextCreationMethod = browserContextCreationMethod;
|
|
3324
|
+
this.#bcUserAgent = userAgent;
|
|
3283
3325
|
this.#userAgent = userAgent;
|
|
3284
3326
|
const currentTime = (0, import_utils8.getCurrentUnixTime)();
|
|
3285
3327
|
this.#createTime = currentTime;
|
|
@@ -3310,9 +3352,6 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3310
3352
|
const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime: currentTime2, lastStatusUpdateTime: currentTime2, taskId: 0, relatedId: 0, misc: {} };
|
|
3311
3353
|
const lsdPage = new PuppeteerPage(this, page, pageInfo2);
|
|
3312
3354
|
this.#lsdPages.push(lsdPage);
|
|
3313
|
-
if (this.#userAgent) {
|
|
3314
|
-
await lsdPage.setUserAgent(this.#userAgent);
|
|
3315
|
-
}
|
|
3316
3355
|
if (this.#maxViewportOfNewPage) {
|
|
3317
3356
|
await lsdPage.maximizeViewport();
|
|
3318
3357
|
}
|
|
@@ -3440,6 +3479,9 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3440
3479
|
return null;
|
|
3441
3480
|
}
|
|
3442
3481
|
const page = await this.#browserContext.newPage();
|
|
3482
|
+
if (this.#bcUserAgent) {
|
|
3483
|
+
await page.setUserAgent({ userAgent: this.#bcUserAgent });
|
|
3484
|
+
}
|
|
3443
3485
|
await (0, import_utils8.sleep)(2e3);
|
|
3444
3486
|
const pageInfo = page.pageInfo;
|
|
3445
3487
|
if (!pageInfo) {
|
|
@@ -3449,6 +3491,12 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3449
3491
|
}
|
|
3450
3492
|
lsdPage = this.#lsdPages.find((p) => p.isFree());
|
|
3451
3493
|
if (lsdPage) {
|
|
3494
|
+
if (!this.#userAgent) {
|
|
3495
|
+
const userAgent = await lsdPage.evaluate(() => navigator.userAgent);
|
|
3496
|
+
if (typeof userAgent === "string" && userAgent) {
|
|
3497
|
+
this.#userAgent = userAgent;
|
|
3498
|
+
}
|
|
3499
|
+
}
|
|
3452
3500
|
lsdPage.use();
|
|
3453
3501
|
this.#freeGettingLock();
|
|
3454
3502
|
return lsdPage;
|
|
@@ -3555,6 +3603,9 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3555
3603
|
return false;
|
|
3556
3604
|
}
|
|
3557
3605
|
}
|
|
3606
|
+
userAgent() {
|
|
3607
|
+
return this.#userAgent;
|
|
3608
|
+
}
|
|
3558
3609
|
_origBrowserContext() {
|
|
3559
3610
|
return this.#browserContext;
|
|
3560
3611
|
}
|
|
@@ -3562,7 +3613,7 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3562
3613
|
|
|
3563
3614
|
// src/puppeteer/browser.ts
|
|
3564
3615
|
var PuppeteerBrowser = class _PuppeteerBrowser extends import_node_events6.default {
|
|
3565
|
-
static #supportedBrowserTypes = ["chromium"];
|
|
3616
|
+
static #supportedBrowserTypes = ["chrome", "chromium"];
|
|
3566
3617
|
static doesSupport(browserType) {
|
|
3567
3618
|
return _PuppeteerBrowser.#supportedBrowserTypes.includes(browserType);
|
|
3568
3619
|
}
|
|
@@ -3672,8 +3723,12 @@ var PuppeteerBrowser = class _PuppeteerBrowser extends import_node_events6.defau
|
|
|
3672
3723
|
if (proxy?.proxyUrl) {
|
|
3673
3724
|
browserContextOptions.proxyServer = proxy.proxyUrl;
|
|
3674
3725
|
}
|
|
3726
|
+
let userAgent = options?.userAgent ? options.userAgent : this.#options.userAgent;
|
|
3727
|
+
const lsdLaunchOptions = this.#options;
|
|
3728
|
+
if (!userAgent && lsdLaunchOptions.headless && lsdLaunchOptions.headlessUserAgent) {
|
|
3729
|
+
userAgent = lsdLaunchOptions.headlessUserAgent;
|
|
3730
|
+
}
|
|
3675
3731
|
const browserContext = await this.#browser.createBrowserContext(browserContextOptions);
|
|
3676
|
-
const userAgent = options?.userAgent ? options.userAgent : "";
|
|
3677
3732
|
const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
|
|
3678
3733
|
const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, "new", true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent, maxViewportOfNewPage);
|
|
3679
3734
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
@@ -4113,6 +4168,9 @@ var CheerioPage = class extends import_node_events7.default {
|
|
|
4113
4168
|
use() {
|
|
4114
4169
|
throw new Error("Not supported in CheerioPage.");
|
|
4115
4170
|
}
|
|
4171
|
+
userAgent() {
|
|
4172
|
+
throw new Error("Not supported in CheerioPage.");
|
|
4173
|
+
}
|
|
4116
4174
|
waitForElement() {
|
|
4117
4175
|
throw new Error("Not supported in CheerioPage.");
|
|
4118
4176
|
}
|
|
@@ -4125,7 +4183,7 @@ var CheerioPage = class extends import_node_events7.default {
|
|
|
4125
4183
|
};
|
|
4126
4184
|
|
|
4127
4185
|
// src/controller/controller.ts
|
|
4128
|
-
var
|
|
4186
|
+
var import_node_os = __toESM(require("os"), 1);
|
|
4129
4187
|
var import_puppeteer = __toESM(require("puppeteer"), 1);
|
|
4130
4188
|
var import_playwright = __toESM(require("playwright"), 1);
|
|
4131
4189
|
var import_patchright = __toESM(require("patchright"), 1);
|
|
@@ -5275,6 +5333,7 @@ var PatchrightPage = class extends import_node_events8.default {
|
|
|
5275
5333
|
requestMethod,
|
|
5276
5334
|
requestUrl,
|
|
5277
5335
|
requestData,
|
|
5336
|
+
resourceType: request.resourceType(),
|
|
5278
5337
|
responseData
|
|
5279
5338
|
});
|
|
5280
5339
|
loginfo(`##browser cache matched response: ${requestUrl}`);
|
|
@@ -5360,6 +5419,9 @@ var PatchrightPage = class extends import_node_events8.default {
|
|
|
5360
5419
|
logdbg(`##browser LsdPage ${this.#pageId} is allocated`);
|
|
5361
5420
|
return true;
|
|
5362
5421
|
}
|
|
5422
|
+
userAgent() {
|
|
5423
|
+
return this.#lsdBrowserContext.userAgent();
|
|
5424
|
+
}
|
|
5363
5425
|
async waitForElement(selector, options = {}) {
|
|
5364
5426
|
if (!this.#page) {
|
|
5365
5427
|
throw new Error("No valid page");
|
|
@@ -5384,7 +5446,7 @@ var PatchrightPage = class extends import_node_events8.default {
|
|
|
5384
5446
|
}
|
|
5385
5447
|
return true;
|
|
5386
5448
|
}
|
|
5387
|
-
async windowMember(keys) {
|
|
5449
|
+
async windowMember(keys, isolated = true) {
|
|
5388
5450
|
if (!this.#page) {
|
|
5389
5451
|
throw new Error("No valid page");
|
|
5390
5452
|
}
|
|
@@ -5423,7 +5485,8 @@ var PatchrightPage = class extends import_node_events8.default {
|
|
|
5423
5485
|
return "";
|
|
5424
5486
|
}
|
|
5425
5487
|
},
|
|
5426
|
-
keys
|
|
5488
|
+
keys,
|
|
5489
|
+
!!isolated
|
|
5427
5490
|
);
|
|
5428
5491
|
return content;
|
|
5429
5492
|
}
|
|
@@ -5474,6 +5537,7 @@ var PatchrightBrowserContext = class extends import_node_events9.default {
|
|
|
5474
5537
|
#browserContextIdx;
|
|
5475
5538
|
#browserContext;
|
|
5476
5539
|
#browserContextCreationMethod;
|
|
5540
|
+
#userAgent;
|
|
5477
5541
|
#apiContext;
|
|
5478
5542
|
#createTime;
|
|
5479
5543
|
#lastStatusUpdateTime;
|
|
@@ -5501,8 +5565,15 @@ var PatchrightBrowserContext = class extends import_node_events9.default {
|
|
|
5501
5565
|
await lsdPage.maximizeViewport();
|
|
5502
5566
|
}
|
|
5503
5567
|
}
|
|
5568
|
+
if (!this.#userAgent && this.#lsdPages.length > 0) {
|
|
5569
|
+
const lsdPage = this.#lsdPages[0];
|
|
5570
|
+
const userAgent = await lsdPage.evaluate(() => navigator.userAgent);
|
|
5571
|
+
if (typeof userAgent === "string" && userAgent) {
|
|
5572
|
+
this.#userAgent = userAgent;
|
|
5573
|
+
}
|
|
5574
|
+
}
|
|
5504
5575
|
}
|
|
5505
|
-
constructor(lsdBrowser, browserContext, browserContextCreationMethod, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, maxViewportOfNewPage = true) {
|
|
5576
|
+
constructor(lsdBrowser, browserContext, browserContextCreationMethod, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, userAgent = "", maxViewportOfNewPage = true) {
|
|
5506
5577
|
if (!lsdBrowser || typeof lsdBrowser.browserContexts !== "function") {
|
|
5507
5578
|
throw new Error(`Invalid lsdBrowser parameter`);
|
|
5508
5579
|
}
|
|
@@ -5515,6 +5586,7 @@ var PatchrightBrowserContext = class extends import_node_events9.default {
|
|
|
5515
5586
|
this.#browserContextIdx = browserContextIdx;
|
|
5516
5587
|
this.#browserContext = browserContext;
|
|
5517
5588
|
this.#browserContextCreationMethod = browserContextCreationMethod;
|
|
5589
|
+
this.#userAgent = userAgent;
|
|
5518
5590
|
const apiRequestContext = browserContext.request;
|
|
5519
5591
|
this.#apiContext = new PatchrightApiContext(apiRequestContext);
|
|
5520
5592
|
const currentTime = (0, import_utils12.getCurrentUnixTime)();
|
|
@@ -5668,6 +5740,12 @@ var PatchrightBrowserContext = class extends import_node_events9.default {
|
|
|
5668
5740
|
}
|
|
5669
5741
|
lsdPage = this.#lsdPages.find((p) => p.isFree());
|
|
5670
5742
|
if (lsdPage) {
|
|
5743
|
+
if (!this.#userAgent) {
|
|
5744
|
+
const userAgent = await lsdPage.evaluate(() => navigator.userAgent);
|
|
5745
|
+
if (typeof userAgent === "string" && userAgent) {
|
|
5746
|
+
this.#userAgent = userAgent;
|
|
5747
|
+
}
|
|
5748
|
+
}
|
|
5671
5749
|
lsdPage.use();
|
|
5672
5750
|
this.#freeGettingLock();
|
|
5673
5751
|
return lsdPage;
|
|
@@ -5774,6 +5852,9 @@ var PatchrightBrowserContext = class extends import_node_events9.default {
|
|
|
5774
5852
|
return false;
|
|
5775
5853
|
}
|
|
5776
5854
|
}
|
|
5855
|
+
userAgent() {
|
|
5856
|
+
return this.#userAgent;
|
|
5857
|
+
}
|
|
5777
5858
|
_origBrowserContext() {
|
|
5778
5859
|
return this.#browserContext;
|
|
5779
5860
|
}
|
|
@@ -5781,7 +5862,7 @@ var PatchrightBrowserContext = class extends import_node_events9.default {
|
|
|
5781
5862
|
|
|
5782
5863
|
// src/patchright/browser.ts
|
|
5783
5864
|
var PatchrightBrowser = class _PatchrightBrowser extends import_node_events10.default {
|
|
5784
|
-
static #supportedBrowserTypes = ["chromium", "firefox", "webkit"];
|
|
5865
|
+
static #supportedBrowserTypes = ["chrome", "chromium", "firefox", "webkit"];
|
|
5785
5866
|
static doesSupport(browserType) {
|
|
5786
5867
|
return _PatchrightBrowser.#supportedBrowserTypes.includes(browserType);
|
|
5787
5868
|
}
|
|
@@ -5843,7 +5924,7 @@ var PatchrightBrowser = class _PatchrightBrowser extends import_node_events10.de
|
|
|
5843
5924
|
}
|
|
5844
5925
|
const incognito = typeof options?.incognito === "boolean" ? options.incognito : true;
|
|
5845
5926
|
for (const browserContext of browserContexts) {
|
|
5846
|
-
const lsdBrowserContext = new PatchrightBrowserContext(this, browserContext, "launch", incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
5927
|
+
const lsdBrowserContext = new PatchrightBrowserContext(this, browserContext, "launch", incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), "", maxViewportOfNewPage);
|
|
5847
5928
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
5848
5929
|
}
|
|
5849
5930
|
browser.on("disconnected" /* BROWSER_DISCONNECTED */, () => {
|
|
@@ -5895,12 +5976,17 @@ var PatchrightBrowser = class _PatchrightBrowser extends import_node_events10.de
|
|
|
5895
5976
|
const { proxyUrl: server, username, password } = proxy;
|
|
5896
5977
|
browserContextOptions.proxy = { server, username, password };
|
|
5897
5978
|
}
|
|
5898
|
-
|
|
5899
|
-
|
|
5979
|
+
let userAgent = options?.userAgent ? options.userAgent : this.#options.userAgent;
|
|
5980
|
+
const lsdLaunchOptions = this.#options;
|
|
5981
|
+
if (!userAgent && lsdLaunchOptions.headless && lsdLaunchOptions.headlessUserAgent) {
|
|
5982
|
+
userAgent = lsdLaunchOptions.headlessUserAgent;
|
|
5983
|
+
}
|
|
5984
|
+
if (userAgent) {
|
|
5985
|
+
browserContextOptions.userAgent = userAgent;
|
|
5900
5986
|
}
|
|
5901
5987
|
const browserContext = await this.#browser.newContext(browserContextOptions);
|
|
5902
5988
|
const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
|
|
5903
|
-
const lsdBrowserContext = new PatchrightBrowserContext(this, browserContext, "new", true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
5989
|
+
const lsdBrowserContext = new PatchrightBrowserContext(this, browserContext, "new", true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent, maxViewportOfNewPage);
|
|
5904
5990
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
5905
5991
|
return lsdBrowserContext;
|
|
5906
5992
|
}
|
|
@@ -7099,6 +7185,7 @@ var CamoufoxPage = class extends import_node_events11.default {
|
|
|
7099
7185
|
requestMethod,
|
|
7100
7186
|
requestUrl,
|
|
7101
7187
|
requestData,
|
|
7188
|
+
resourceType: request.resourceType(),
|
|
7102
7189
|
responseData
|
|
7103
7190
|
});
|
|
7104
7191
|
loginfo(`##browser cache matched response: ${requestUrl}`);
|
|
@@ -7184,6 +7271,9 @@ var CamoufoxPage = class extends import_node_events11.default {
|
|
|
7184
7271
|
logdbg(`##browser LsdPage ${this.#pageId} is allocated`);
|
|
7185
7272
|
return true;
|
|
7186
7273
|
}
|
|
7274
|
+
userAgent() {
|
|
7275
|
+
return this.#lsdBrowserContext.userAgent();
|
|
7276
|
+
}
|
|
7187
7277
|
async waitForElement(selector, options = {}) {
|
|
7188
7278
|
if (!this.#page) {
|
|
7189
7279
|
throw new Error("No valid page");
|
|
@@ -7298,6 +7388,7 @@ var CamoufoxBrowserContext = class extends import_node_events12.default {
|
|
|
7298
7388
|
#browserContextIdx;
|
|
7299
7389
|
#browserContext;
|
|
7300
7390
|
#browserContextCreationMethod;
|
|
7391
|
+
#userAgent;
|
|
7301
7392
|
#apiContext;
|
|
7302
7393
|
#createTime;
|
|
7303
7394
|
#lastStatusUpdateTime;
|
|
@@ -7325,8 +7416,15 @@ var CamoufoxBrowserContext = class extends import_node_events12.default {
|
|
|
7325
7416
|
await lsdPage.maximizeViewport();
|
|
7326
7417
|
}
|
|
7327
7418
|
}
|
|
7419
|
+
if (!this.#userAgent && this.#lsdPages.length > 0) {
|
|
7420
|
+
const lsdPage = this.#lsdPages[0];
|
|
7421
|
+
const userAgent = await lsdPage.evaluate(() => navigator.userAgent);
|
|
7422
|
+
if (typeof userAgent === "string" && userAgent) {
|
|
7423
|
+
this.#userAgent = userAgent;
|
|
7424
|
+
}
|
|
7425
|
+
}
|
|
7328
7426
|
}
|
|
7329
|
-
constructor(lsdBrowser, browserContext, browserContextCreationMethod, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, maxViewportOfNewPage = true) {
|
|
7427
|
+
constructor(lsdBrowser, browserContext, browserContextCreationMethod, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, userAgent = "", maxViewportOfNewPage = true) {
|
|
7330
7428
|
if (!lsdBrowser || typeof lsdBrowser.browserContexts !== "function") {
|
|
7331
7429
|
throw new Error(`Invalid lsdBrowser parameter`);
|
|
7332
7430
|
}
|
|
@@ -7339,6 +7437,7 @@ var CamoufoxBrowserContext = class extends import_node_events12.default {
|
|
|
7339
7437
|
this.#browserContextIdx = browserContextIdx;
|
|
7340
7438
|
this.#browserContext = browserContext;
|
|
7341
7439
|
this.#browserContextCreationMethod = browserContextCreationMethod;
|
|
7440
|
+
this.#userAgent = userAgent;
|
|
7342
7441
|
const apiRequestContext = browserContext.request;
|
|
7343
7442
|
this.#apiContext = new CamoufoxApiContext(apiRequestContext);
|
|
7344
7443
|
const currentTime = (0, import_utils16.getCurrentUnixTime)();
|
|
@@ -7492,6 +7591,12 @@ var CamoufoxBrowserContext = class extends import_node_events12.default {
|
|
|
7492
7591
|
}
|
|
7493
7592
|
lsdPage = this.#lsdPages.find((p) => p.isFree());
|
|
7494
7593
|
if (lsdPage) {
|
|
7594
|
+
if (!this.#userAgent) {
|
|
7595
|
+
const userAgent = await lsdPage.evaluate(() => navigator.userAgent);
|
|
7596
|
+
if (typeof userAgent === "string" && userAgent) {
|
|
7597
|
+
this.#userAgent = userAgent;
|
|
7598
|
+
}
|
|
7599
|
+
}
|
|
7495
7600
|
lsdPage.use();
|
|
7496
7601
|
this.#freeGettingLock();
|
|
7497
7602
|
return lsdPage;
|
|
@@ -7598,6 +7703,9 @@ var CamoufoxBrowserContext = class extends import_node_events12.default {
|
|
|
7598
7703
|
return false;
|
|
7599
7704
|
}
|
|
7600
7705
|
}
|
|
7706
|
+
userAgent() {
|
|
7707
|
+
return this.#userAgent;
|
|
7708
|
+
}
|
|
7601
7709
|
_origBrowserContext() {
|
|
7602
7710
|
return this.#browserContext;
|
|
7603
7711
|
}
|
|
@@ -7667,7 +7775,7 @@ var CamoufoxBrowser = class _CamoufoxBrowser extends import_node_events13.defaul
|
|
|
7667
7775
|
}
|
|
7668
7776
|
const incognito = typeof options?.incognito === "boolean" ? options.incognito : true;
|
|
7669
7777
|
for (const browserContext of browserContexts) {
|
|
7670
|
-
const lsdBrowserContext = new CamoufoxBrowserContext(this, browserContext, "launch", incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
7778
|
+
const lsdBrowserContext = new CamoufoxBrowserContext(this, browserContext, "launch", incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), "", maxViewportOfNewPage);
|
|
7671
7779
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
7672
7780
|
}
|
|
7673
7781
|
browser.on("disconnected" /* BROWSER_DISCONNECTED */, () => {
|
|
@@ -7719,12 +7827,17 @@ var CamoufoxBrowser = class _CamoufoxBrowser extends import_node_events13.defaul
|
|
|
7719
7827
|
const { proxyUrl: server, username, password } = proxy;
|
|
7720
7828
|
browserContextOptions.proxy = { server, username, password };
|
|
7721
7829
|
}
|
|
7722
|
-
|
|
7723
|
-
|
|
7830
|
+
let userAgent = options?.userAgent ? options.userAgent : this.#options.userAgent;
|
|
7831
|
+
const lsdLaunchOptions = this.#options;
|
|
7832
|
+
if (!userAgent && lsdLaunchOptions.headless && lsdLaunchOptions.headlessUserAgent) {
|
|
7833
|
+
userAgent = lsdLaunchOptions.headlessUserAgent;
|
|
7834
|
+
}
|
|
7835
|
+
if (userAgent) {
|
|
7836
|
+
browserContextOptions.userAgent = userAgent;
|
|
7724
7837
|
}
|
|
7725
7838
|
const browserContext = await this.#browser.newContext(browserContextOptions);
|
|
7726
7839
|
const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
|
|
7727
|
-
const lsdBrowserContext = new CamoufoxBrowserContext(this, browserContext, "new", true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
7840
|
+
const lsdBrowserContext = new CamoufoxBrowserContext(this, browserContext, "new", true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent, maxViewportOfNewPage);
|
|
7728
7841
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
7729
7842
|
return lsdBrowserContext;
|
|
7730
7843
|
}
|
|
@@ -7813,21 +7926,23 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
7813
7926
|
}
|
|
7814
7927
|
this.#puppeteer = import_puppeteer.default;
|
|
7815
7928
|
this.#playwrightBrowserTypes = {
|
|
7929
|
+
chrome: import_playwright.default.chromium,
|
|
7816
7930
|
chromium: import_playwright.default.chromium,
|
|
7817
7931
|
firefox: import_playwright.default.firefox,
|
|
7818
7932
|
webkit: import_playwright.default.webkit
|
|
7819
7933
|
};
|
|
7820
7934
|
this.#patchrightBrowserTypes = {
|
|
7935
|
+
chrome: import_playwright.default.chromium,
|
|
7821
7936
|
chromium: import_patchright.default.chromium,
|
|
7822
7937
|
firefox: import_patchright.default.firefox,
|
|
7823
7938
|
webkit: import_patchright.default.webkit
|
|
7824
7939
|
};
|
|
7825
|
-
this.#osPlatform =
|
|
7940
|
+
this.#osPlatform = import_node_os.default.platform();
|
|
7826
7941
|
this.#nextBrowserIdx = 1;
|
|
7827
7942
|
_LsdBrowserController.#forbidConstructor = true;
|
|
7828
7943
|
}
|
|
7829
7944
|
#playwrightBrowserType(browserType, connectFlag = false) {
|
|
7830
|
-
if (browserType === "chromium") {
|
|
7945
|
+
if (browserType === "chrome" || browserType === "chromium") {
|
|
7831
7946
|
return this.#playwrightBrowserTypes.chromium;
|
|
7832
7947
|
} else if (connectFlag) {
|
|
7833
7948
|
throw new Error(`playwright only can connect to chromium browser, not support ${browserType} browser`);
|
|
@@ -7840,7 +7955,7 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
7840
7955
|
}
|
|
7841
7956
|
}
|
|
7842
7957
|
#patchrightBrowserType(browserType, connectFlag = false) {
|
|
7843
|
-
if (browserType === "chromium") {
|
|
7958
|
+
if (browserType === "chrome" || browserType === "chromium") {
|
|
7844
7959
|
return this.#patchrightBrowserTypes.chromium;
|
|
7845
7960
|
} else if (connectFlag) {
|
|
7846
7961
|
throw new Error(`patchright only can connect to chromium browser, not support ${browserType} browser`);
|
|
@@ -7853,7 +7968,7 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
7853
7968
|
}
|
|
7854
7969
|
}
|
|
7855
7970
|
#puppeteerProduct(browserType) {
|
|
7856
|
-
if (browserType === "chromium") {
|
|
7971
|
+
if (browserType === "chrome" || browserType === "chromium") {
|
|
7857
7972
|
return "chrome";
|
|
7858
7973
|
} else {
|
|
7859
7974
|
throw new Error(`Invalid puppeteer product ${browserType}`);
|
|
@@ -7870,6 +7985,7 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
7870
7985
|
throw new Error(`BrowserControllerType ${browserControllerType} doesnot support browserType ${browserType}`);
|
|
7871
7986
|
}
|
|
7872
7987
|
switch (browserType) {
|
|
7988
|
+
case "chrome":
|
|
7873
7989
|
case "chromium":
|
|
7874
7990
|
case "firefox":
|
|
7875
7991
|
case "webkit":
|
|
@@ -7883,6 +7999,7 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
7883
7999
|
throw new Error(`BrowserControllerType ${browserControllerType} doesnot support browserType ${browserType}`);
|
|
7884
8000
|
}
|
|
7885
8001
|
switch (browserType) {
|
|
8002
|
+
case "chrome":
|
|
7886
8003
|
case "chromium":
|
|
7887
8004
|
case "firefox":
|
|
7888
8005
|
case "webkit":
|
|
@@ -7917,11 +8034,12 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
7917
8034
|
// incognito
|
|
7918
8035
|
proxyPerBrowserContext = false,
|
|
7919
8036
|
userDataDir = "",
|
|
7920
|
-
userAgent = ""
|
|
8037
|
+
userAgent = "",
|
|
8038
|
+
headlessUserAgent = ""
|
|
7921
8039
|
} = options ? options : {};
|
|
7922
8040
|
let browserPid = 0;
|
|
7923
8041
|
const incognito = typeof options?.incognito === "boolean" ? options.incognito : browserControllerType === "puppeteer" ? false : true;
|
|
7924
|
-
const actOptions = { closeFreePagesIntervalSeconds, maxBrowserContextsPerBrowser, maxPagesPerBrowserContext, maxPageFreeSeconds, maxViewportOfNewPage, proxy, timeout, args, executablePath, maxWindowSize, headless, minBrowserContexts, incognito, proxyPerBrowserContext, userDataDir, userAgent };
|
|
8042
|
+
const actOptions = { closeFreePagesIntervalSeconds, maxBrowserContextsPerBrowser, maxPagesPerBrowserContext, maxPageFreeSeconds, maxViewportOfNewPage, proxy, timeout, args, executablePath, maxWindowSize, headless, minBrowserContexts, incognito, proxyPerBrowserContext, userDataDir, userAgent, headlessUserAgent };
|
|
7925
8043
|
let idx = args.findIndex((arg) => arg.toLowerCase().startsWith("--incoginto"));
|
|
7926
8044
|
if (idx >= 0) {
|
|
7927
8045
|
logwarn(`##browser controller Please use options.incognito instead when launching new browser.`);
|
|
@@ -7943,6 +8061,11 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
7943
8061
|
args.splice(idx, 1);
|
|
7944
8062
|
}
|
|
7945
8063
|
let lsdBrowser;
|
|
8064
|
+
if (browserType === "chrome" && ["playwright", "patchright", "puppeteer"].includes(browserControllerType)) {
|
|
8065
|
+
if (!executablePath) {
|
|
8066
|
+
throw new Error("Invalid executablePath when to launch chrome");
|
|
8067
|
+
}
|
|
8068
|
+
}
|
|
7946
8069
|
if (browserControllerType === "playwright") {
|
|
7947
8070
|
const launchOptions = { headless, timeout };
|
|
7948
8071
|
if (executablePath) {
|
|
@@ -7957,11 +8080,12 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
7957
8080
|
} else if (proxyPerBrowserContext && browserType === "chromium" && this.#osPlatform.startsWith("win")) {
|
|
7958
8081
|
launchOptions.proxy = { server: "proxyPerBrowserContext" };
|
|
7959
8082
|
}
|
|
7960
|
-
if (browserType === "chromium") {
|
|
8083
|
+
if (browserType === "chrome" || browserType === "chromium") {
|
|
8084
|
+
if (browserType === "chrome") {
|
|
8085
|
+
launchOptions.channel = "chrome";
|
|
8086
|
+
}
|
|
7961
8087
|
if (incognito) {
|
|
7962
8088
|
args.push("--incognito");
|
|
7963
|
-
} else if (userDataDir) {
|
|
7964
|
-
args.push(`--user-data-dir=${userDataDir}`);
|
|
7965
8089
|
}
|
|
7966
8090
|
}
|
|
7967
8091
|
if (args.length > 0) {
|
|
@@ -7998,11 +8122,12 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
7998
8122
|
} else if (proxyPerBrowserContext && browserType === "chromium" && this.#osPlatform.startsWith("win")) {
|
|
7999
8123
|
launchOptions.proxy = { server: "proxyPerBrowserContext" };
|
|
8000
8124
|
}
|
|
8001
|
-
if (browserType === "chromium") {
|
|
8125
|
+
if (browserType === "chrome" || browserType === "chromium") {
|
|
8126
|
+
if (browserType === "chrome") {
|
|
8127
|
+
launchOptions.channel = "chrome";
|
|
8128
|
+
}
|
|
8002
8129
|
if (incognito) {
|
|
8003
8130
|
args.push("--incognito");
|
|
8004
|
-
} else if (userDataDir) {
|
|
8005
|
-
args.push(`--user-data-dir=${userDataDir}`);
|
|
8006
8131
|
}
|
|
8007
8132
|
}
|
|
8008
8133
|
if (args.length > 0) {
|
|
@@ -8038,11 +8163,15 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
8038
8163
|
if (!args.includes("--no-sandbox")) {
|
|
8039
8164
|
args.push("--no-sandbox");
|
|
8040
8165
|
}
|
|
8041
|
-
if (browserType === "chromium") {
|
|
8166
|
+
if (browserType === "chrome" || browserType === "chromium") {
|
|
8167
|
+
if (browserType === "chrome") {
|
|
8168
|
+
launchOptions.channel = "chrome";
|
|
8169
|
+
}
|
|
8042
8170
|
if (incognito) {
|
|
8043
8171
|
args.push("--incognito");
|
|
8044
|
-
}
|
|
8045
|
-
|
|
8172
|
+
}
|
|
8173
|
+
if (userDataDir) {
|
|
8174
|
+
launchOptions.userDataDir = userDataDir;
|
|
8046
8175
|
}
|
|
8047
8176
|
if (proxy?.proxyUrl && proxy.proxyUrl !== "default") {
|
|
8048
8177
|
args.push(`--proxy-server=${proxy.proxyUrl}`);
|