diff --git a/gulpfile.js b/gulpfile.js index ffc508355..5d98642b6 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -190,6 +190,8 @@ function createWebpackConfig( DEFAULT_PREFERENCES: defaultPreferencesDir ? getDefaultPreferences(defaultPreferencesDir) : {}, + DIALOG_POLYFILL_CSS: + defines.GENERIC && !defines.SKIP_BABEL ? getDialogPolyfillCSS() : "", }); const licenseHeaderLibre = fs .readFileSync("./src/license_header_libre.js") @@ -736,6 +738,12 @@ function getDefaultPreferences(dir) { return AppOptions.getAll(OptionKind.PREFERENCE); } +function getDialogPolyfillCSS() { + return fs + .readFileSync("node_modules/dialog-polyfill/dist/dialog-polyfill.css") + .toString(); +} + gulp.task("locale", function () { const VIEWER_LOCALE_OUTPUT = "web/locale/"; @@ -1519,6 +1527,8 @@ function buildLib(defines, dir) { DEFAULT_PREFERENCES: getDefaultPreferences( defines.SKIP_BABEL ? "lib/" : "lib-legacy/" ), + DIALOG_POLYFILL_CSS: + defines.GENERIC && !defines.SKIP_BABEL ? getDialogPolyfillCSS() : "", }); const inputStream = merge([ diff --git a/web/overlay_manager.js b/web/overlay_manager.js index e4d7378e1..cebc1953a 100644 --- a/web/overlay_manager.js +++ b/web/overlay_manager.js @@ -44,6 +44,15 @@ class OverlayManager { ) { const dialogPolyfill = require("dialog-polyfill/dist/dialog-polyfill.js"); dialogPolyfill.registerDialog(dialog); + + if (!this._dialogPolyfillCSS) { + this._dialogPolyfillCSS = true; + + const style = document.createElement("style"); + style.textContent = PDFJSDev.eval("DIALOG_POLYFILL_CSS"); + + document.head.insertBefore(style, document.head.firstElementChild); + } } dialog.addEventListener("cancel", evt => {