Skip to content

Commit

Permalink
Ensure that the same version of PDF.js is used in both the API and th…
Browse files Browse the repository at this point in the history
…e Viewer (PR 8959 follow-up)

Given that we're now accessing certain API-functionality *directly* in this file, e.g. the AnnotationStorage and Optional Content configuration, ensuring that there's not a version mismatch definitely seem like a good idea to prevent any *subtle* future bugs.
  • Loading branch information
Snuffleupagus committed Oct 27, 2020
1 parent 8098102 commit 62b19f7
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions web/base_viewer.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
* limitations under the License.
*/

import { createPromiseCapability, version } from "pdfjs-lib";
import {
CSS_UNITS,
DEFAULT_SCALE,
Expand All @@ -38,7 +39,6 @@ import {
} from "./ui_utils.js";
import { PDFRenderingQueue, RenderingStates } from "./pdf_rendering_queue.js";
import { AnnotationLayerBuilder } from "./annotation_layer_builder.js";
import { createPromiseCapability } from "pdfjs-lib";
import { PDFPageView } from "./pdf_page_view.js";
import { SimpleLinkService } from "./pdf_link_service.js";
import { TextLayerBuilder } from "./text_layer_builder.js";
Expand Down Expand Up @@ -139,6 +139,13 @@ class BaseViewer {
if (this.constructor === BaseViewer) {
throw new Error("Cannot initialize BaseViewer.");
}
const viewerVersion =
typeof PDFJSDev !== "undefined" ? PDFJSDev.eval("BUNDLE_VERSION") : null;
if (version !== viewerVersion) {
throw new Error(
`The API version "${version}" does not match the Viewer version "${viewerVersion}".`
);
}
this._name = this.constructor.name;

this.container = options.container;
Expand All @@ -150,10 +157,8 @@ class BaseViewer {
) {
if (
!(
this.container &&
this.container.tagName.toUpperCase() === "DIV" &&
this.viewer &&
this.viewer.tagName.toUpperCase() === "DIV"
this.container?.tagName.toUpperCase() === "DIV" &&
this.viewer?.tagName.toUpperCase() === "DIV"
)
) {
throw new Error("Invalid `container` and/or `viewer` option.");
Expand Down

0 comments on commit 62b19f7

Please sign in to comment.