extension 4.0.32 → 4.0.33
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/browsers.cjs +153 -90
- package/dist/cli.cjs +328 -157
- package/dist/extension/browsers/browsers-lib/messages.d.ts +3 -1
- package/dist/extension/browsers/browsers-lib/output-binaries-resolver.d.ts +2 -0
- package/dist/extension/browsers/browsers-lib/shared-utils.d.ts +2 -1
- package/dist/extension/helpers/messages.d.ts +8 -2
- package/dist/extension/helpers/vendors.d.ts +10 -0
- package/package.json +4 -4
package/dist/browsers.cjs
CHANGED
|
@@ -168,7 +168,9 @@ var __webpack_modules__ = {
|
|
|
168
168
|
async function printProdBannerOnce(opts) {
|
|
169
169
|
const k = keyFor(opts.browser, opts.outPath);
|
|
170
170
|
if (printedKeys.has(k) || (0, _helpers_messaging__rspack_import_3.VR)(baseKeyFor(opts.browser, opts.outPath))) return true;
|
|
171
|
-
const browserLabel = (0, _helpers_messaging__rspack_import_3.A6)(String(opts.browser || 'unknown'), _messages__rspack_import_5.GK(String(opts.browser || ''), opts.browserVersionLine
|
|
171
|
+
const browserLabel = (0, _helpers_messaging__rspack_import_3.A6)(String(opts.browser || 'unknown'), _messages__rspack_import_5.GK(String(opts.browser || ''), opts.browserVersionLine, {
|
|
172
|
+
pinned: 'pinned' === opts.binaryProvenance
|
|
173
|
+
}));
|
|
172
174
|
try {
|
|
173
175
|
const manifestPath = node_path__rspack_import_2.join(opts.outPath, 'manifest.json');
|
|
174
176
|
const manifest = JSON.parse(node_fs__rspack_import_1.readFileSync(manifestPath, 'utf-8'));
|
|
@@ -453,9 +455,10 @@ var __webpack_modules__ = {
|
|
|
453
455
|
function capitalizedBrowserName(browser) {
|
|
454
456
|
return `${browser.charAt(0).toUpperCase() + browser.slice(1)}`;
|
|
455
457
|
}
|
|
456
|
-
function resolveBrowserVersionLine(browser, pinnedLine) {
|
|
458
|
+
function resolveBrowserVersionLine(browser, pinnedLine, opts) {
|
|
457
459
|
const pinned = String(pinnedLine || '').trim();
|
|
458
460
|
if (pinned) return pinned;
|
|
461
|
+
if (opts?.pinned) return '';
|
|
459
462
|
try {
|
|
460
463
|
if ('chromium' === browser || 'chromium-based' === browser) {
|
|
461
464
|
const p = chromium_location__rspack_import_5_default()();
|
|
@@ -816,7 +819,9 @@ var __webpack_modules__ = {
|
|
|
816
819
|
return 'unknown';
|
|
817
820
|
}
|
|
818
821
|
})();
|
|
819
|
-
const baseBrowserLabel = (0, _helpers_messaging__rspack_import_9.A6)(String(browser || 'unknown'), resolveBrowserVersionLine(browser, browserVersionLine
|
|
822
|
+
const baseBrowserLabel = (0, _helpers_messaging__rspack_import_9.A6)(String(browser || 'unknown'), resolveBrowserVersionLine(browser, browserVersionLine, {
|
|
823
|
+
pinned: opts?.binaryProvenance === 'pinned'
|
|
824
|
+
}));
|
|
820
825
|
const provenanceNote = binaryProvenanceNote(opts?.binaryProvenance);
|
|
821
826
|
const browserLabel = provenanceNote ? `${baseBrowserLabel} ${provenanceNote}` : baseBrowserLabel;
|
|
822
827
|
const binaryRowValue = provenanceNote ? collapseHomeDirInCardValue(String(opts?.binaryPath || '').trim()) : '';
|
|
@@ -1082,24 +1087,57 @@ var __webpack_modules__ = {
|
|
|
1082
1087
|
if (node_fs__rspack_import_0.existsSync(chromeNested)) scanRoots.push(chromeNested);
|
|
1083
1088
|
}
|
|
1084
1089
|
const versionDirPattern = /^(mac|mac_arm|win32|win64|linux)/i;
|
|
1085
|
-
const
|
|
1090
|
+
const versionDirs = [];
|
|
1086
1091
|
for (const root of scanRoots)try {
|
|
1087
1092
|
const entries = node_fs__rspack_import_0.readdirSync(root, {
|
|
1088
1093
|
withFileTypes: true
|
|
1089
1094
|
});
|
|
1090
|
-
const
|
|
1091
|
-
for (const dir of versionDirs)candidateFiles.push(...buildCandidates(dir, browser));
|
|
1092
|
-
} catch {}
|
|
1093
|
-
for (const candidate of candidateFiles)try {
|
|
1094
|
-
if (candidate && node_fs__rspack_import_0.existsSync(candidate)) return candidate;
|
|
1095
|
+
for (const entry of entries)if (entry.isDirectory() && versionDirPattern.test(entry.name)) versionDirs.push(node_path__rspack_import_1.join(root, entry.name));
|
|
1095
1096
|
} catch {}
|
|
1097
|
+
versionDirs.sort(compareManagedBuildDirsNewestFirst);
|
|
1096
1098
|
const names = executableNamesFor(browser);
|
|
1099
|
+
for (const dir of versionDirs){
|
|
1100
|
+
for (const candidate of buildCandidates(dir, browser))if (isUsableBinaryPath(candidate)) return candidate;
|
|
1101
|
+
const found = findExecutableUnder(dir, names, 6);
|
|
1102
|
+
if (found) return found;
|
|
1103
|
+
}
|
|
1097
1104
|
for (const root of scanRoots){
|
|
1098
1105
|
const found = findExecutableUnder(root, names, 6);
|
|
1099
1106
|
if (found) return found;
|
|
1100
1107
|
}
|
|
1101
1108
|
return null;
|
|
1102
1109
|
}
|
|
1110
|
+
const MANAGED_BUILD_DIR_PREFIX = /^(?:mac_arm|mac-arm|mac|win64|win32|linux64|linux)[-_]/i;
|
|
1111
|
+
function parseManagedBuildId(dirName) {
|
|
1112
|
+
const name = String(dirName || '');
|
|
1113
|
+
const buildId = name.replace(MANAGED_BUILD_DIR_PREFIX, '');
|
|
1114
|
+
return buildId.split(/[^\d]+/).filter(Boolean).map((part)=>Number(part)).filter((part)=>Number.isFinite(part));
|
|
1115
|
+
}
|
|
1116
|
+
function compareManagedBuildDirNames(a, b) {
|
|
1117
|
+
const partsA = parseManagedBuildId(a);
|
|
1118
|
+
const partsB = parseManagedBuildId(b);
|
|
1119
|
+
const length = Math.max(partsA.length, partsB.length);
|
|
1120
|
+
for(let i = 0; i < length; i++){
|
|
1121
|
+
const na = partsA[i] ?? 0;
|
|
1122
|
+
const nb = partsB[i] ?? 0;
|
|
1123
|
+
if (na !== nb) return na - nb;
|
|
1124
|
+
}
|
|
1125
|
+
return String(a).localeCompare(String(b));
|
|
1126
|
+
}
|
|
1127
|
+
function compareManagedBuildDirsNewestFirst(a, b) {
|
|
1128
|
+
const byBuild = compareManagedBuildDirNames(node_path__rspack_import_1.basename(b), node_path__rspack_import_1.basename(a));
|
|
1129
|
+
if (0 !== byBuild) return byBuild;
|
|
1130
|
+
let timeA = 0;
|
|
1131
|
+
let timeB = 0;
|
|
1132
|
+
try {
|
|
1133
|
+
timeA = node_fs__rspack_import_0.statSync(a).mtimeMs;
|
|
1134
|
+
} catch {}
|
|
1135
|
+
try {
|
|
1136
|
+
timeB = node_fs__rspack_import_0.statSync(b).mtimeMs;
|
|
1137
|
+
} catch {}
|
|
1138
|
+
if (timeA !== timeB) return timeB - timeA;
|
|
1139
|
+
return node_path__rspack_import_1.basename(b).localeCompare(node_path__rspack_import_1.basename(a));
|
|
1140
|
+
}
|
|
1103
1141
|
function resolveChromiumFamilyFallback(compilation, requested = 'chromium') {
|
|
1104
1142
|
const candidates = 'chrome' === requested ? [
|
|
1105
1143
|
'chromium',
|
|
@@ -1133,6 +1171,13 @@ var __webpack_modules__ = {
|
|
|
1133
1171
|
else out.push(node_path__rspack_import_1.join(dir, 'firefox'));
|
|
1134
1172
|
return out;
|
|
1135
1173
|
}
|
|
1174
|
+
function isUsableBinaryPath(candidate) {
|
|
1175
|
+
try {
|
|
1176
|
+
return Boolean(candidate) && node_fs__rspack_import_0.statSync(candidate).isFile();
|
|
1177
|
+
} catch {
|
|
1178
|
+
return false;
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1136
1181
|
function executableNamesFor(browser) {
|
|
1137
1182
|
if ('chrome' === browser) return 'win32' === process.platform ? [
|
|
1138
1183
|
'chrome.exe'
|
|
@@ -1151,6 +1196,7 @@ var __webpack_modules__ = {
|
|
|
1151
1196
|
if ('edge' === browser) return 'win32' === process.platform ? [
|
|
1152
1197
|
'msedge.exe'
|
|
1153
1198
|
] : [
|
|
1199
|
+
'Microsoft Edge',
|
|
1154
1200
|
'msedge',
|
|
1155
1201
|
'microsoft-edge'
|
|
1156
1202
|
];
|
|
@@ -1543,6 +1589,9 @@ var __webpack_modules__ = {
|
|
|
1543
1589
|
var node_net__rspack_import_1 = __webpack_require__("node:net");
|
|
1544
1590
|
var node_os__rspack_import_2 = __webpack_require__("node:os");
|
|
1545
1591
|
var node_path__rspack_import_3 = __webpack_require__("node:path");
|
|
1592
|
+
var chrome_location2__rspack_import_4 = __webpack_require__("chrome-location2");
|
|
1593
|
+
var chromium_location__rspack_import_5 = __webpack_require__("chromium-location");
|
|
1594
|
+
var edge_location__rspack_import_6 = __webpack_require__("edge-location");
|
|
1546
1595
|
__webpack_require__("./browsers/browsers-lib/constants.ts");
|
|
1547
1596
|
const MANAGED_EPHEMERAL_PROFILE_MARKER = '.extension-js-managed-profile';
|
|
1548
1597
|
function shortInstanceId(instanceId) {
|
|
@@ -1561,8 +1610,12 @@ var __webpack_modules__ = {
|
|
|
1561
1610
|
const finalPort = 'number' == typeof parsed && Number.isFinite(parsed) && parsed > 0 ? parsed : devServerPort;
|
|
1562
1611
|
return 'number' == typeof finalPort && finalPort > 0 ? finalPort + 100 : defaultPort;
|
|
1563
1612
|
}
|
|
1564
|
-
function filterBrowserFlags(
|
|
1565
|
-
return
|
|
1613
|
+
function filterBrowserFlags(flags, excludeFlags = []) {
|
|
1614
|
+
return flags.filter((flag)=>!excludeFlags.some((excludeFlag)=>{
|
|
1615
|
+
if (!excludeFlag) return false;
|
|
1616
|
+
if (flag === excludeFlag) return true;
|
|
1617
|
+
return flag.startsWith(`${excludeFlag}=`) || flag.startsWith(`${excludeFlag},`);
|
|
1618
|
+
}));
|
|
1566
1619
|
}
|
|
1567
1620
|
function chooseChromiumBinaryPreferringStable(opts) {
|
|
1568
1621
|
const managed = opts.managedSnapshotBinary;
|
|
@@ -1605,6 +1658,28 @@ var __webpack_modules__ = {
|
|
|
1605
1658
|
const underManagedRoot = relative.length > 0 && !relative.startsWith('..') && !node_path__rspack_import_3.isAbsolute(relative);
|
|
1606
1659
|
return underManagedRoot ? 'managed' : 'system';
|
|
1607
1660
|
}
|
|
1661
|
+
function probeChromiumBinaryVersion(bin, browser) {
|
|
1662
|
+
const target = String(browser || '');
|
|
1663
|
+
const probes = [];
|
|
1664
|
+
if ('edge' === target) probes.push(()=>(0, edge_location__rspack_import_6.getEdgeVersion)(bin, {
|
|
1665
|
+
allowExec: true
|
|
1666
|
+
}));
|
|
1667
|
+
if ('chromium' === target || 'chromium-based' === target) probes.push(()=>(0, chromium_location__rspack_import_5.getChromiumVersion)(bin, {
|
|
1668
|
+
allowExec: true
|
|
1669
|
+
}));
|
|
1670
|
+
probes.push(()=>(0, chrome_location2__rspack_import_4.getChromeVersion)(bin, {
|
|
1671
|
+
allowExec: true
|
|
1672
|
+
}), ()=>(0, chromium_location__rspack_import_5.getChromiumVersion)(bin, {
|
|
1673
|
+
allowExec: true
|
|
1674
|
+
}), ()=>(0, edge_location__rspack_import_6.getEdgeVersion)(bin, {
|
|
1675
|
+
allowExec: true
|
|
1676
|
+
}));
|
|
1677
|
+
for (const probe of probes)try {
|
|
1678
|
+
const line = probe();
|
|
1679
|
+
if (line && String(line).trim()) return String(line).trim();
|
|
1680
|
+
} catch {}
|
|
1681
|
+
return '';
|
|
1682
|
+
}
|
|
1608
1683
|
function parseEnvBrowserFlags(raw) {
|
|
1609
1684
|
return String(raw || '').split(/\s+/).map((flag)=>flag.trim()).filter(Boolean);
|
|
1610
1685
|
}
|
|
@@ -1787,7 +1862,8 @@ var __webpack_modules__ = {
|
|
|
1787
1862
|
ci: ()=>isProfileLockedError,
|
|
1788
1863
|
jl: ()=>deriveDebugPortWithInstance,
|
|
1789
1864
|
ov: ()=>filterBrowserFlags,
|
|
1790
|
-
sW: ()=>removeManagedEphemeralProfile
|
|
1865
|
+
sW: ()=>removeManagedEphemeralProfile,
|
|
1866
|
+
yO: ()=>probeChromiumBinaryVersion
|
|
1791
1867
|
});
|
|
1792
1868
|
},
|
|
1793
1869
|
"./browsers/browsers-lib/wsl-support.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
@@ -2538,7 +2614,7 @@ var __webpack_modules__ = {
|
|
|
2538
2614
|
'--remote-debugging-pipe'
|
|
2539
2615
|
] : [],
|
|
2540
2616
|
...filteredFlags,
|
|
2541
|
-
...configOptions.browserFlags || [],
|
|
2617
|
+
...(0, shared_utils.ov)(configOptions.browserFlags || [], excludeFlags),
|
|
2542
2618
|
...(0, shared_utils.W0)(process.env.EXTENSION_BROWSER_FLAGS)
|
|
2543
2619
|
];
|
|
2544
2620
|
if ((0, shared_utils.ZO)() && !baseFlags.some((flag)=>flag.startsWith('--headless'))) baseFlags.push('--headless=new');
|
|
@@ -2807,7 +2883,16 @@ var __webpack_modules__ = {
|
|
|
2807
2883
|
});
|
|
2808
2884
|
}
|
|
2809
2885
|
async launchChromium(compilation, opts) {
|
|
2810
|
-
if (this.options?.
|
|
2886
|
+
if (this.options?.chromiumBinary) {
|
|
2887
|
+
const requested = String(this.options.chromiumBinary);
|
|
2888
|
+
const normalizedEarly = (0, wsl_support.f7)(requested);
|
|
2889
|
+
if (!normalizedEarly || !external_node_fs_.existsSync(normalizedEarly)) {
|
|
2890
|
+
(0, messaging.Gg)(messages.Sp(requested));
|
|
2891
|
+
if (process.env.VITEST || process.env.VITEST_WORKER_ID) throw new Error(`Invalid --chromium-binary path: ${requested}`);
|
|
2892
|
+
process.exit(1);
|
|
2893
|
+
}
|
|
2894
|
+
}
|
|
2895
|
+
if (this.options?.dryRun || process.env.VITEST || process.env.VITEST_WORKER_ID) return void logChromiumDryRun(this.options?.chromiumBinary ? (0, wsl_support.f7)(String(this.options.chromiumBinary)) : 'chromium-mock-binary', []);
|
|
2811
2896
|
const browser = this.options?.browser;
|
|
2812
2897
|
let browserBinaryLocation = null;
|
|
2813
2898
|
let printedGuidance = false;
|
|
@@ -2867,8 +2952,18 @@ var __webpack_modules__ = {
|
|
|
2867
2952
|
this.printEnhancedPuppeteerInstallHint(compilation, raw, browserName);
|
|
2868
2953
|
printedGuidance = true;
|
|
2869
2954
|
};
|
|
2870
|
-
|
|
2871
|
-
if (
|
|
2955
|
+
const requestedPin = this.options?.chromiumBinary != null ? String(this.options.chromiumBinary) : '';
|
|
2956
|
+
if (requestedPin) {
|
|
2957
|
+
const normalized = normalizePath(requestedPin);
|
|
2958
|
+
if (!normalized || !isUsableBinary(normalized)) {
|
|
2959
|
+
(0, messaging.Gg)(messages.Sp(requestedPin));
|
|
2960
|
+
if (process.env.VITEST || process.env.VITEST_WORKER_ID) throw new Error(`Invalid --chromium-binary path: ${requestedPin}`);
|
|
2961
|
+
process.exit(1);
|
|
2962
|
+
}
|
|
2963
|
+
browserBinaryLocation = normalized;
|
|
2964
|
+
binaryPinnedByFlag = true;
|
|
2965
|
+
} else browserBinaryLocation = resolveManagedBinary();
|
|
2966
|
+
if ('chromium' === browser && browserBinaryLocation && !binaryPinnedByFlag) {
|
|
2872
2967
|
let systemBinary = null;
|
|
2873
2968
|
try {
|
|
2874
2969
|
const env = {
|
|
@@ -2894,7 +2989,7 @@ var __webpack_modules__ = {
|
|
|
2894
2989
|
}
|
|
2895
2990
|
}
|
|
2896
2991
|
let skipDetection = Boolean(browserBinaryLocation);
|
|
2897
|
-
if (!browserBinaryLocation && (0, wsl_support.EV)()) {
|
|
2992
|
+
if (!binaryPinnedByFlag && !browserBinaryLocation && (0, wsl_support.EV)()) {
|
|
2898
2993
|
const linuxFallback = resolveWslLinuxBinary(browser);
|
|
2899
2994
|
if (linuxFallback) {
|
|
2900
2995
|
browserBinaryLocation = linuxFallback;
|
|
@@ -2907,16 +3002,8 @@ var __webpack_modules__ = {
|
|
|
2907
3002
|
}
|
|
2908
3003
|
}
|
|
2909
3004
|
}
|
|
2910
|
-
browserBinaryLocation = preferRealChromeBinary(browserBinaryLocation);
|
|
2911
|
-
const getBrowserVersionLine = (bin)=>
|
|
2912
|
-
try {
|
|
2913
|
-
if ('edge' === browser) return (0, external_edge_location_.getEdgeVersion)(bin) || '';
|
|
2914
|
-
if ('chromium' === browser || 'chromium-based' === browser) return (0, external_chromium_location_.getChromiumVersion)(bin) || '';
|
|
2915
|
-
return (0, external_chrome_location2_.getChromeVersion)(bin) || '';
|
|
2916
|
-
} catch {
|
|
2917
|
-
return '';
|
|
2918
|
-
}
|
|
2919
|
-
};
|
|
3005
|
+
if (!binaryPinnedByFlag) browserBinaryLocation = preferRealChromeBinary(browserBinaryLocation);
|
|
3006
|
+
const getBrowserVersionLine = (bin)=>shared_utils.yO(bin, String(browser || ''));
|
|
2920
3007
|
const looksOfficialChromeBinaryPath = (bin)=>{
|
|
2921
3008
|
const p = String(bin || '');
|
|
2922
3009
|
if (!p) return false;
|
|
@@ -2971,7 +3058,7 @@ var __webpack_modules__ = {
|
|
|
2971
3058
|
return null;
|
|
2972
3059
|
}
|
|
2973
3060
|
};
|
|
2974
|
-
switch(browser){
|
|
3061
|
+
if (!binaryPinnedByFlag) switch(browser){
|
|
2975
3062
|
case 'chrome':
|
|
2976
3063
|
if (isAuthorMode) (0, messaging._w)(messages.Gq(browser));
|
|
2977
3064
|
if (!skipDetection) browserBinaryLocation = resolveChromeLikeBinary();
|
|
@@ -2993,15 +3080,6 @@ var __webpack_modules__ = {
|
|
|
2993
3080
|
break;
|
|
2994
3081
|
case 'chromium':
|
|
2995
3082
|
if (isAuthorMode) (0, messaging._w)(messages.Gq(browser));
|
|
2996
|
-
if (this.options?.chromiumBinary) {
|
|
2997
|
-
const normalized = normalizePath(String(this.options.chromiumBinary));
|
|
2998
|
-
if (!normalized || !external_node_fs_.existsSync(normalized)) {
|
|
2999
|
-
(0, messaging.Gg)(messages.Sp(String(this.options.chromiumBinary)));
|
|
3000
|
-
process.exit(1);
|
|
3001
|
-
}
|
|
3002
|
-
browserBinaryLocation = normalized;
|
|
3003
|
-
binaryPinnedByFlag = true;
|
|
3004
|
-
}
|
|
3005
3083
|
if (!browserBinaryLocation && !skipDetection) try {
|
|
3006
3084
|
const env = managedEnvFor('chromium');
|
|
3007
3085
|
const p = external_chromium_location_default()({
|
|
@@ -3055,36 +3133,20 @@ var __webpack_modules__ = {
|
|
|
3055
3133
|
}
|
|
3056
3134
|
break;
|
|
3057
3135
|
case 'chromium-based':
|
|
3058
|
-
|
|
3059
|
-
if (
|
|
3060
|
-
|
|
3061
|
-
if (!normalized || !external_node_fs_.existsSync(normalized)) {
|
|
3062
|
-
(0, messaging.Gg)(messages.Sp(String(this.options.chromiumBinary)));
|
|
3063
|
-
process.exit(1);
|
|
3064
|
-
}
|
|
3065
|
-
browserBinaryLocation = normalized;
|
|
3066
|
-
binaryPinnedByFlag = true;
|
|
3067
|
-
} else {
|
|
3068
|
-
(0, messaging.Gg)(messages.ne());
|
|
3069
|
-
process.exit(1);
|
|
3070
|
-
}
|
|
3071
|
-
if (!browserBinaryLocation && !skipDetection) try {
|
|
3072
|
-
const env = managedEnvFor('chromium');
|
|
3073
|
-
const p = external_chromium_location_default()({
|
|
3074
|
-
env
|
|
3075
|
-
});
|
|
3076
|
-
const normalized = normalizePath(p || null);
|
|
3077
|
-
if (normalized && 'string' == typeof normalized) {
|
|
3078
|
-
if (external_node_fs_.existsSync(normalized)) browserBinaryLocation = normalized;
|
|
3079
|
-
}
|
|
3080
|
-
} catch {}
|
|
3081
|
-
if (!browserBinaryLocation) browserBinaryLocation = resolveWslFallback();
|
|
3136
|
+
(0, messaging.Gg)(messages.ne());
|
|
3137
|
+
if (process.env.VITEST || process.env.VITEST_WORKER_ID) throw new Error('chromium-based requires --chromium-binary');
|
|
3138
|
+
process.exit(1);
|
|
3082
3139
|
break;
|
|
3083
3140
|
default:
|
|
3084
3141
|
browserBinaryLocation = resolveChromeLikeBinary();
|
|
3085
3142
|
break;
|
|
3086
3143
|
}
|
|
3087
3144
|
if (!browserBinaryLocation || !external_node_fs_.existsSync(browserBinaryLocation)) {
|
|
3145
|
+
if (binaryPinnedByFlag) {
|
|
3146
|
+
(0, messaging.Gg)(messages.Sp(requestedPin));
|
|
3147
|
+
if (process.env.VITEST || process.env.VITEST_WORKER_ID) throw new Error(`Invalid --chromium-binary path: ${requestedPin}`);
|
|
3148
|
+
process.exit(1);
|
|
3149
|
+
}
|
|
3088
3150
|
browserBinaryLocation = browserBinaryLocation || resolveManagedBinary();
|
|
3089
3151
|
if (!browserBinaryLocation) browserBinaryLocation = resolveWslFallback();
|
|
3090
3152
|
if ((!browserBinaryLocation || !external_node_fs_.existsSync(browserBinaryLocation)) && ('chrome' === browser || 'chromium' === browser)) {
|
|
@@ -3652,7 +3714,7 @@ var __webpack_modules__ = {
|
|
|
3652
3714
|
const { browser, profile, browserFlags = [] } = configOptions;
|
|
3653
3715
|
const binaryArgs = [];
|
|
3654
3716
|
const excludeFlags = configOptions.excludeBrowserFlags || [];
|
|
3655
|
-
const filteredFlags = (browserFlags || []).
|
|
3717
|
+
const filteredFlags = (0, shared_utils.ov)((browserFlags || []).map(String), excludeFlags);
|
|
3656
3718
|
if (filteredFlags.length > 0) binaryArgs.push(...filteredFlags);
|
|
3657
3719
|
binaryArgs.push(...(0, shared_utils.W0)(process.env.EXTENSION_BROWSER_FLAGS));
|
|
3658
3720
|
if (configOptions.startingUrl && !configOptions.noOpen) binaryArgs.push('--url', String(configOptions.startingUrl));
|
|
@@ -5174,18 +5236,16 @@ var __webpack_modules__ = {
|
|
|
5174
5236
|
},
|
|
5175
5237
|
"./browsers/run-only.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
5176
5238
|
var node_fs__rspack_import_0 = __webpack_require__("node:fs");
|
|
5177
|
-
var
|
|
5178
|
-
var
|
|
5179
|
-
var
|
|
5180
|
-
var
|
|
5181
|
-
var
|
|
5182
|
-
var
|
|
5183
|
-
var
|
|
5184
|
-
var
|
|
5185
|
-
var
|
|
5186
|
-
var
|
|
5187
|
-
var _run_firefox_firefox_context__rspack_import_11 = __webpack_require__("./browsers/run-firefox/firefox-context/index.ts");
|
|
5188
|
-
var _run_firefox_firefox_launch__rspack_import_9 = __webpack_require__("./browsers/run-firefox/firefox-launch/index.ts");
|
|
5239
|
+
var firefox_location2__rspack_import_1 = __webpack_require__("firefox-location2");
|
|
5240
|
+
var _browsers_lib_banner__rspack_import_2 = __webpack_require__("./browsers/browsers-lib/banner.ts");
|
|
5241
|
+
var _browsers_lib_browser_family__rspack_import_3 = __webpack_require__("./browsers/browsers-lib/browser-family.ts");
|
|
5242
|
+
var _browsers_lib_output_binaries_resolver__rspack_import_4 = __webpack_require__("./browsers/browsers-lib/output-binaries-resolver.ts");
|
|
5243
|
+
var _browsers_lib_runtime_options__rspack_import_10 = __webpack_require__("./browsers/browsers-lib/runtime-options.ts");
|
|
5244
|
+
var _browsers_lib_shared_utils__rspack_import_5 = __webpack_require__("./browsers/browsers-lib/shared-utils.ts");
|
|
5245
|
+
var _run_chromium_chromium_context__rspack_import_8 = __webpack_require__("./browsers/run-chromium/chromium-context/index.ts");
|
|
5246
|
+
var _run_chromium_chromium_launch__rspack_import_6 = __webpack_require__("./browsers/run-chromium/chromium-launch/index.ts");
|
|
5247
|
+
var _run_firefox_firefox_context__rspack_import_9 = __webpack_require__("./browsers/run-firefox/firefox-context/index.ts");
|
|
5248
|
+
var _run_firefox_firefox_launch__rspack_import_7 = __webpack_require__("./browsers/run-firefox/firefox-launch/index.ts");
|
|
5189
5249
|
function createPreviewCompilationLike(opts) {
|
|
5190
5250
|
return {
|
|
5191
5251
|
options: {
|
|
@@ -5271,26 +5331,29 @@ var __webpack_modules__ = {
|
|
|
5271
5331
|
}
|
|
5272
5332
|
function resolvePinnedBinaryVersionLine(opts) {
|
|
5273
5333
|
try {
|
|
5274
|
-
if ((0,
|
|
5334
|
+
if ((0, _browsers_lib_browser_family__rspack_import_3.M_)(opts.browser)) {
|
|
5275
5335
|
if (!opts.geckoBinary || !node_fs__rspack_import_0.existsSync(opts.geckoBinary)) return;
|
|
5276
|
-
return (0,
|
|
5336
|
+
return (0, firefox_location2__rspack_import_1.getFirefoxVersion)(opts.geckoBinary) || void 0;
|
|
5277
5337
|
}
|
|
5278
5338
|
if (!opts.chromiumBinary || !node_fs__rspack_import_0.existsSync(opts.chromiumBinary)) return;
|
|
5279
|
-
|
|
5280
|
-
if ('chromium' === opts.browser || 'chromium-based' === opts.browser) return (0, chromium_location__rspack_import_2.getChromiumVersion)(opts.chromiumBinary) || void 0;
|
|
5281
|
-
return (0, chrome_location2__rspack_import_1.getChromeVersion)(opts.chromiumBinary) || void 0;
|
|
5339
|
+
return (0, _browsers_lib_shared_utils__rspack_import_5.yO)(opts.chromiumBinary, String(opts.browser)) || void 0;
|
|
5282
5340
|
} catch {
|
|
5283
5341
|
return;
|
|
5284
5342
|
}
|
|
5285
5343
|
}
|
|
5286
5344
|
function buildPreviewBannerOptions(opts) {
|
|
5345
|
+
const chromiumPinned = !(0, _browsers_lib_browser_family__rspack_import_3.M_)(opts.browser) && 'string' == typeof opts.chromiumBinary && node_fs__rspack_import_0.existsSync(opts.chromiumBinary);
|
|
5287
5346
|
return {
|
|
5288
5347
|
browser: opts.browser,
|
|
5289
5348
|
outPath: opts.outPath,
|
|
5290
5349
|
includeExtensionId: true,
|
|
5291
5350
|
includeRunId: false,
|
|
5292
5351
|
readyPath: opts.readyPath,
|
|
5293
|
-
browserVersionLine: resolvePinnedBinaryVersionLine(opts)
|
|
5352
|
+
browserVersionLine: resolvePinnedBinaryVersionLine(opts),
|
|
5353
|
+
...chromiumPinned ? {
|
|
5354
|
+
binaryPath: opts.chromiumBinary,
|
|
5355
|
+
binaryProvenance: 'pinned'
|
|
5356
|
+
} : {}
|
|
5294
5357
|
};
|
|
5295
5358
|
}
|
|
5296
5359
|
async function runOnlyPreviewBrowser(opts) {
|
|
@@ -5306,21 +5369,21 @@ var __webpack_modules__ = {
|
|
|
5306
5369
|
const compilationLike = createPreviewCompilationLike(opts);
|
|
5307
5370
|
const previewPluginOptions = buildPreviewPluginOptions(opts);
|
|
5308
5371
|
const bannerOptions = buildPreviewBannerOptions(opts);
|
|
5309
|
-
(0,
|
|
5310
|
-
if ((0,
|
|
5311
|
-
const ctx = (0,
|
|
5312
|
-
const launcher = new
|
|
5313
|
-
await (0,
|
|
5372
|
+
(0, _browsers_lib_output_binaries_resolver__rspack_import_4.LB)(compilationLike);
|
|
5373
|
+
if ((0, _browsers_lib_browser_family__rspack_import_3.rG)(opts.browser)) {
|
|
5374
|
+
const ctx = (0, _run_chromium_chromium_context__rspack_import_8.g)();
|
|
5375
|
+
const launcher = new _run_chromium_chromium_launch__rspack_import_6.f(buildPreviewChromiumOptions(opts), ctx);
|
|
5376
|
+
await (0, _browsers_lib_banner__rspack_import_2.MK)(bannerOptions);
|
|
5314
5377
|
await launcher.runOnce(compilationLike, {
|
|
5315
5378
|
enableCdpPostLaunch: false
|
|
5316
5379
|
});
|
|
5317
5380
|
return;
|
|
5318
5381
|
}
|
|
5319
|
-
if ((0,
|
|
5320
|
-
const ctx = (0,
|
|
5321
|
-
const launcher = new
|
|
5322
|
-
await (0,
|
|
5323
|
-
await launcher.runOnce(compilationLike, (0,
|
|
5382
|
+
if ((0, _browsers_lib_browser_family__rspack_import_3.M_)(opts.browser)) {
|
|
5383
|
+
const ctx = (0, _run_firefox_firefox_context__rspack_import_9.D)();
|
|
5384
|
+
const launcher = new _run_firefox_firefox_launch__rspack_import_7.c(buildPreviewFirefoxOptions(opts), ctx);
|
|
5385
|
+
await (0, _browsers_lib_banner__rspack_import_2.MK)(bannerOptions);
|
|
5386
|
+
await launcher.runOnce(compilationLike, (0, _browsers_lib_runtime_options__rspack_import_10.zU)(previewPluginOptions, 'production', {
|
|
5324
5387
|
persistProfile: previewPluginOptions.persistProfile,
|
|
5325
5388
|
geckoBinary: previewPluginOptions.geckoBinary
|
|
5326
5389
|
}));
|