@oneuptime/common 10.0.4 → 10.0.6
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/Server/Utils/Browser.ts
CHANGED
|
@@ -16,6 +16,29 @@ export type Page = PlaywrightPage;
|
|
|
16
16
|
export type Browser = PlaywrightBrowser;
|
|
17
17
|
|
|
18
18
|
export default class BrowserUtil {
|
|
19
|
+
// Chromium arguments for stability in containerized environments
|
|
20
|
+
public static chromiumStabilityArgs: string[] = [
|
|
21
|
+
"--no-sandbox",
|
|
22
|
+
"--disable-setuid-sandbox",
|
|
23
|
+
"--disable-dev-shm-usage",
|
|
24
|
+
"--disable-gpu",
|
|
25
|
+
"--disable-software-rasterizer",
|
|
26
|
+
"--single-process",
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
// Firefox preferences for stability in containerized environments
|
|
30
|
+
public static firefoxStabilityPrefs: Record<
|
|
31
|
+
string,
|
|
32
|
+
string | number | boolean
|
|
33
|
+
> = {
|
|
34
|
+
"browser.tabs.remote.autostart": false, // disable multi-process (electrolysis)
|
|
35
|
+
"dom.ipc.processCount": 1, // single content process
|
|
36
|
+
"gfx.webrender.all": false, // disable GPU-based WebRender
|
|
37
|
+
"media.hardware-video-decoding.enabled": false, // disable hardware video decoding
|
|
38
|
+
"layers.acceleration.disabled": true, // disable GPU-accelerated layers
|
|
39
|
+
"network.http.spdy.enabled.http2": true, // keep HTTP/2 enabled
|
|
40
|
+
};
|
|
41
|
+
|
|
19
42
|
@CaptureSpan()
|
|
20
43
|
public static async convertHtmlToBase64Screenshot(data: {
|
|
21
44
|
html: string;
|
|
@@ -68,6 +91,8 @@ export default class BrowserUtil {
|
|
|
68
91
|
if (data.browserType === BrowserType.Chromium) {
|
|
69
92
|
browser = await chromium.launch({
|
|
70
93
|
executablePath: await BrowserUtil.getChromeExecutablePath(),
|
|
94
|
+
headless: true,
|
|
95
|
+
args: BrowserUtil.chromiumStabilityArgs,
|
|
71
96
|
});
|
|
72
97
|
page = await browser.newPage();
|
|
73
98
|
}
|
|
@@ -75,6 +100,8 @@ export default class BrowserUtil {
|
|
|
75
100
|
if (data.browserType === BrowserType.Firefox) {
|
|
76
101
|
browser = await firefox.launch({
|
|
77
102
|
executablePath: await BrowserUtil.getFirefoxExecutablePath(),
|
|
103
|
+
headless: true,
|
|
104
|
+
firefoxUserPrefs: BrowserUtil.firefoxStabilityPrefs,
|
|
78
105
|
});
|
|
79
106
|
page = await browser.newPage();
|
|
80
107
|
}
|
|
@@ -139,7 +166,7 @@ export default class BrowserUtil {
|
|
|
139
166
|
return { height: viewPortHeight, width: viewPortWidth };
|
|
140
167
|
}
|
|
141
168
|
|
|
142
|
-
|
|
169
|
+
public static getPlaywrightBrowsersPath(): string {
|
|
143
170
|
return (
|
|
144
171
|
process.env["PLAYWRIGHT_BROWSERS_PATH"] ||
|
|
145
172
|
`${os.homedir()}/.cache/ms-playwright`
|
|
@@ -15,7 +15,7 @@ import BrowserType from "../../Types/BrowserType";
|
|
|
15
15
|
import logger from "./Logger";
|
|
16
16
|
import CaptureSpan from "./Telemetry/CaptureSpan";
|
|
17
17
|
import os from "os";
|
|
18
|
-
|
|
18
|
+
class BrowserUtil {
|
|
19
19
|
static async convertHtmlToBase64Screenshot(data) {
|
|
20
20
|
try {
|
|
21
21
|
const html = data.html;
|
|
@@ -46,12 +46,16 @@ export default class BrowserUtil {
|
|
|
46
46
|
if (data.browserType === BrowserType.Chromium) {
|
|
47
47
|
browser = await chromium.launch({
|
|
48
48
|
executablePath: await BrowserUtil.getChromeExecutablePath(),
|
|
49
|
+
headless: true,
|
|
50
|
+
args: BrowserUtil.chromiumStabilityArgs,
|
|
49
51
|
});
|
|
50
52
|
page = await browser.newPage();
|
|
51
53
|
}
|
|
52
54
|
if (data.browserType === BrowserType.Firefox) {
|
|
53
55
|
browser = await firefox.launch({
|
|
54
56
|
executablePath: await BrowserUtil.getFirefoxExecutablePath(),
|
|
57
|
+
headless: true,
|
|
58
|
+
firefoxUserPrefs: BrowserUtil.firefoxStabilityPrefs,
|
|
55
59
|
});
|
|
56
60
|
page = await browser.newPage();
|
|
57
61
|
}
|
|
@@ -166,6 +170,25 @@ export default class BrowserUtil {
|
|
|
166
170
|
throw new BadDataException("Firefox executable path not found.");
|
|
167
171
|
}
|
|
168
172
|
}
|
|
173
|
+
// Chromium arguments for stability in containerized environments
|
|
174
|
+
BrowserUtil.chromiumStabilityArgs = [
|
|
175
|
+
"--no-sandbox",
|
|
176
|
+
"--disable-setuid-sandbox",
|
|
177
|
+
"--disable-dev-shm-usage",
|
|
178
|
+
"--disable-gpu",
|
|
179
|
+
"--disable-software-rasterizer",
|
|
180
|
+
"--single-process",
|
|
181
|
+
];
|
|
182
|
+
// Firefox preferences for stability in containerized environments
|
|
183
|
+
BrowserUtil.firefoxStabilityPrefs = {
|
|
184
|
+
"browser.tabs.remote.autostart": false, // disable multi-process (electrolysis)
|
|
185
|
+
"dom.ipc.processCount": 1, // single content process
|
|
186
|
+
"gfx.webrender.all": false, // disable GPU-based WebRender
|
|
187
|
+
"media.hardware-video-decoding.enabled": false, // disable hardware video decoding
|
|
188
|
+
"layers.acceleration.disabled": true, // disable GPU-accelerated layers
|
|
189
|
+
"network.http.spdy.enabled.http2": true, // keep HTTP/2 enabled
|
|
190
|
+
};
|
|
191
|
+
export default BrowserUtil;
|
|
169
192
|
__decorate([
|
|
170
193
|
CaptureSpan(),
|
|
171
194
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Browser.js","sourceRoot":"","sources":["../../../../Server/Utils/Browser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAGL,QAAQ,EACR,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,MAAM,IAAI,CAAC;AAKpB,
|
|
1
|
+
{"version":3,"file":"Browser.js","sourceRoot":"","sources":["../../../../Server/Utils/Browser.ts"],"names":[],"mappings":"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"}
|