Ensure that the viewer waits for the library to complete loading (issue 17228)

This should *hopefully* fix 17228, by tweaking the build scripts to give the GENERIC viewer something to await to avoid breaking third-party users of the standalone viewer components.
This commit is contained in:
Jonas Jenwald 2023-11-10 12:49:37 +01:00
parent 1b88aad0db
commit 823d375b8b
2 changed files with 10 additions and 1 deletions

View File

@ -422,7 +422,7 @@ function tweakWebpackOutput(jsName) {
case " __webpack_exports__ = {};": case " __webpack_exports__ = {};":
return ` __webpack_exports__ = globalThis.${jsName} = {};`; return ` __webpack_exports__ = globalThis.${jsName} = {};`;
case " __webpack_exports__ = await __webpack_exports__;": case " __webpack_exports__ = await __webpack_exports__;":
return ` __webpack_exports__ = globalThis.${jsName} = await __webpack_exports__;`; return ` __webpack_exports__ = globalThis.${jsName} = await (globalThis.${jsName}Promise = __webpack_exports__);`;
} }
return match; return match;
}); });

View File

@ -13,6 +13,15 @@
* limitations under the License. * limitations under the License.
*/ */
// Ensure that the viewer waits for the library to complete loading,
// to avoid breaking e.g. the standalone viewer components (see issue 17228).
if (
(typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) &&
!globalThis.pdfjsLib
) {
await globalThis.pdfjsLibPromise;
}
const { const {
AbortException, AbortException,
AnnotationEditorLayer, AnnotationEditorLayer,