Bundle the <dialog>
polyfill-CSS in the GENERIC legacy/
-viewer (PR 14710 follow-up)
In PR 14710 we only included the JavaScript-part of the polyfill, however we probably need to include the CSS as well to reduce the risk of problems in older browsers. With the recent CSS-related improvements in the `preprocess`-function we could probably have included this conditionally in the `viewer.css` file. However, considering that the `<dialog>` polyfill-code is only invoked when actually needed it seemed most appropriate/correct to lazy-load the polyfill-CSS as well.
This commit is contained in:
parent
1953967681
commit
bb8f5ec20b
10
gulpfile.js
10
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([
|
||||
|
@ -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 => {
|
||||
|
Loading…
Reference in New Issue
Block a user