Only include the renderer
-preference in builds where SVGGraphics
is defined
After PR 13117 it's now (finally) possible for *different* build targets to specify individual options/preferences, and we can utilize that to only expose the `renderer`-preference in builds where `SVGGraphics` is actually defined. Note that for e.g. `MOZCENTRAL`-builds, trying to enable SVG-rendering will throw immediately and the preference thus doesn't make sense to include there. Also, update the dummy `SVGGraphics` to use a class, tweak the `PDFJSDev`-check in `src/display/svg.js` to agree fully with the option/preference, and remove an unnecessary `eslint-disable`.
This commit is contained in:
parent
f07d50f8ee
commit
7548dc5ea2
@ -133,14 +133,6 @@
|
||||
"description": "Whether to prevent the extension from reporting the extension and browser version to the extension developers.",
|
||||
"default": false
|
||||
},
|
||||
"renderer": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"canvas",
|
||||
"svg"
|
||||
],
|
||||
"default": "canvas"
|
||||
},
|
||||
"renderInteractiveForms": {
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
|
@ -22,6 +22,7 @@ import {
|
||||
isNum,
|
||||
OPS,
|
||||
TextRenderingMode,
|
||||
unreachable,
|
||||
Util,
|
||||
warn,
|
||||
} from "../shared/util.js";
|
||||
@ -29,11 +30,16 @@ import { DOMSVGFactory } from "./display_utils.js";
|
||||
import { isNodeJS } from "../shared/is_node.js";
|
||||
|
||||
/** @type {any} */
|
||||
let SVGGraphics = function () {
|
||||
throw new Error("Not implemented: SVGGraphics");
|
||||
let SVGGraphics = class {
|
||||
constructor() {
|
||||
unreachable("Not implemented: SVGGraphics");
|
||||
}
|
||||
};
|
||||
|
||||
if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) {
|
||||
if (
|
||||
typeof PDFJSDev === "undefined" ||
|
||||
PDFJSDev.test("!PRODUCTION || GENERIC")
|
||||
) {
|
||||
const SVG_DEFAULTS = {
|
||||
fontStyle: "normal",
|
||||
fontWeight: "normal",
|
||||
@ -438,8 +444,7 @@ if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) {
|
||||
let maskCount = 0;
|
||||
let shadingCount = 0;
|
||||
|
||||
// eslint-disable-next-line no-shadow
|
||||
SVGGraphics = class SVGGraphics {
|
||||
SVGGraphics = class {
|
||||
constructor(commonObjs, objs, forceDataSchema = false) {
|
||||
this.svgFactory = new DOMSVGFactory();
|
||||
|
||||
|
@ -52,9 +52,6 @@ const defaultOptions = {
|
||||
value: false,
|
||||
kind: OptionKind.VIEWER + OptionKind.PREFERENCE,
|
||||
},
|
||||
/**
|
||||
* The `disablePreferences` is, conditionally, defined below.
|
||||
*/
|
||||
enablePermissions: {
|
||||
/** @type {boolean} */
|
||||
value: false,
|
||||
@ -95,9 +92,6 @@ const defaultOptions = {
|
||||
value: "./images/",
|
||||
kind: OptionKind.VIEWER,
|
||||
},
|
||||
/**
|
||||
* The `locale` is, conditionally, defined below.
|
||||
*/
|
||||
maxCanvasPixels: {
|
||||
/** @type {number} */
|
||||
value: 16777216,
|
||||
@ -117,7 +111,7 @@ const defaultOptions = {
|
||||
renderer: {
|
||||
/** @type {string} */
|
||||
value: "canvas",
|
||||
kind: OptionKind.VIEWER + OptionKind.PREFERENCE,
|
||||
kind: OptionKind.VIEWER,
|
||||
},
|
||||
renderInteractiveForms: {
|
||||
/** @type {boolean} */
|
||||
@ -265,6 +259,8 @@ if (
|
||||
: "../build/pdf.sandbox.js",
|
||||
kind: OptionKind.VIEWER,
|
||||
};
|
||||
|
||||
defaultOptions.renderer.kind += OptionKind.PREFERENCE;
|
||||
} else if (PDFJSDev.test("CHROME")) {
|
||||
defaultOptions.disableTelemetry = {
|
||||
/** @type {boolean} */
|
||||
|
Loading…
Reference in New Issue
Block a user