Skip to content

Commit 51723bf

Browse files
Merge pull request #123 from tranv94/add_gpu_enable_option
Adding enableGPU to enable GPU usage in headless chrome
2 parents d921820 + 330682f commit 51723bf

File tree

4 files changed

+7
-1
lines changed

4 files changed

+7
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ Parameter | Type | Default | Description
163163
url | string | - | URL to render as PDF. (required)
164164
output | string | pdf | Specify the output format. Possible values: `pdf` or `screenshot`.
165165
emulateScreenMedia | boolean | `true` | Emulates `@media screen` when rendering the PDF.
166+
enableGPU | boolean | `false` | When set, enables chrome GPU. For windows user, this will always return false. See https://developers.google.com/web/updates/2017/04/headless-chrome
166167
ignoreHttpsErrors | boolean | `false` | Ignores possible HTTPS errors when navigating to a page.
167168
scrollPage | boolean | `false` | Scroll page down before rendering to trigger lazy loading elements.
168169
waitFor | number or string | - | Number in ms to wait before render or selector element to wait before render.

src/core/render-core.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ async function createBrowser(opts) {
1717
browserOpts.executablePath = config.BROWSER_EXECUTABLE_PATH;
1818
}
1919
browserOpts.headless = !config.DEBUG_MODE;
20-
browserOpts.args = ['--disable-gpu', '--no-sandbox', '--disable-setuid-sandbox'];
20+
browserOpts.args = ['--no-sandbox', '--disable-setuid-sandbox'];
21+
if (!opts.enableGPU || navigator.userAgent.indexOf('Win') !== -1) {
22+
browserOpts.args.push('--disable-gpu');
23+
}
2124
return puppeteer.launch(browserOpts);
2225
}
2326

src/http/render-http.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ function getOptsFromQuery(query) {
140140
attachmentName: query.attachmentName,
141141
scrollPage: query.scrollPage,
142142
emulateScreenMedia: query.emulateScreenMedia,
143+
enableGPU: query.enableGPU,
143144
ignoreHttpsErrors: query.ignoreHttpsErrors,
144145
waitFor: query.waitFor,
145146
output: query.output || 'pdf',

src/util/validation.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const sharedQuerySchema = Joi.object({
2323
attachmentName: Joi.string(),
2424
scrollPage: Joi.boolean(),
2525
emulateScreenMedia: Joi.boolean(),
26+
enableGPU: Joi.boolean(),
2627
ignoreHttpsErrors: Joi.boolean(),
2728
waitFor: Joi.alternatives([
2829
Joi.number().min(1).max(60000),

0 commit comments

Comments
 (0)