Add more categories of unsupported features.

Fixes #11815
This commit is contained in:
Brendan Dahl 2020-04-30 15:27:37 -07:00
parent b6f69d47b6
commit b1be33c96f
4 changed files with 32 additions and 14 deletions

View File

@ -282,7 +282,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// Error(s) in the ExtGState -- sending unsupported feature // Error(s) in the ExtGState -- sending unsupported feature
// notification and allow parsing/rendering to continue. // notification and allow parsing/rendering to continue.
this.handler.send("UnsupportedFeature", { this.handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.unknown, featureId: UNSUPPORTED_FEATURES.errorExtGState,
}); });
warn(`hasBlendModes - ignoring ExtGState: "${ex}".`); warn(`hasBlendModes - ignoring ExtGState: "${ex}".`);
continue; continue;
@ -344,7 +344,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// Error(s) in the XObject -- sending unsupported feature // Error(s) in the XObject -- sending unsupported feature
// notification and allow parsing/rendering to continue. // notification and allow parsing/rendering to continue.
this.handler.send("UnsupportedFeature", { this.handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.unknown, featureId: UNSUPPORTED_FEATURES.errorXObject,
}); });
warn(`hasBlendModes - ignoring XObject: "${ex}".`); warn(`hasBlendModes - ignoring XObject: "${ex}".`);
continue; continue;
@ -763,7 +763,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// Error(s) in the TilingPattern -- sending unsupported feature // Error(s) in the TilingPattern -- sending unsupported feature
// notification and allow rendering to continue. // notification and allow rendering to continue.
this.handler.send("UnsupportedFeature", { this.handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.unknown, featureId: UNSUPPORTED_FEATURES.errorTilingPattern,
}); });
warn(`handleTilingType - ignoring pattern: "${reason}".`); warn(`handleTilingType - ignoring pattern: "${reason}".`);
return; return;
@ -802,7 +802,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// Error in the font data -- sending unsupported feature // Error in the font data -- sending unsupported feature
// notification. // notification.
this.handler.send("UnsupportedFeature", { this.handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.font, featureId: UNSUPPORTED_FEATURES.errorFontLoadType3,
}); });
return new TranslatedFont({ return new TranslatedFont({
loadedName: "g_font_error", loadedName: "g_font_error",
@ -851,7 +851,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// Missing setFont operator before text rendering operator -- sending // Missing setFont operator before text rendering operator -- sending
// unsupported feature notification and allow rendering to continue. // unsupported feature notification and allow rendering to continue.
this.handler.send("UnsupportedFeature", { this.handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.font, featureId: UNSUPPORTED_FEATURES.errorFontState,
}); });
warn(`ensureStateFont: "${reason}".`); warn(`ensureStateFont: "${reason}".`);
return; return;
@ -995,7 +995,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
} }
// Font not found -- sending unsupported feature notification. // Font not found -- sending unsupported feature notification.
this.handler.send("UnsupportedFeature", { this.handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.font, featureId: UNSUPPORTED_FEATURES.errorFontMissing,
}); });
warn(`${partialMsg} -- attempting to fallback to a default font.`); warn(`${partialMsg} -- attempting to fallback to a default font.`);
@ -1119,7 +1119,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// TODO fontCapability.reject? // TODO fontCapability.reject?
// Error in the font data -- sending unsupported feature notification. // Error in the font data -- sending unsupported feature notification.
this.handler.send("UnsupportedFeature", { this.handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.font, featureId: UNSUPPORTED_FEATURES.errorFontTranslate,
}); });
try { try {
@ -1194,7 +1194,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// Error(s) in the ColorSpace -- sending unsupported feature // Error(s) in the ColorSpace -- sending unsupported feature
// notification and allow rendering to continue. // notification and allow rendering to continue.
this.handler.send("UnsupportedFeature", { this.handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.unknown, featureId: UNSUPPORTED_FEATURES.errorColorSpace,
}); });
warn(`parseColorSpace - ignoring ColorSpace: "${reason}".`); warn(`parseColorSpace - ignoring ColorSpace: "${reason}".`);
return null; return null;
@ -1382,7 +1382,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// Error(s) in the XObject -- sending unsupported feature // Error(s) in the XObject -- sending unsupported feature
// notification and allow rendering to continue. // notification and allow rendering to continue.
self.handler.send("UnsupportedFeature", { self.handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.unknown, featureId: UNSUPPORTED_FEATURES.errorXObject,
}); });
warn(`getOperatorList - ignoring XObject: "${reason}".`); warn(`getOperatorList - ignoring XObject: "${reason}".`);
return; return;
@ -1695,7 +1695,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// Error(s) in the OperatorList -- sending unsupported feature // Error(s) in the OperatorList -- sending unsupported feature
// notification and allow rendering to continue. // notification and allow rendering to continue.
this.handler.send("UnsupportedFeature", { this.handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.unknown, featureId: UNSUPPORTED_FEATURES.errorOperatorList,
}); });
warn( warn(
`getOperatorList - ignoring errors during "${task.name}" ` + `getOperatorList - ignoring errors during "${task.name}" ` +
@ -2752,7 +2752,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// Error in the ToUnicode data -- sending unsupported feature // Error in the ToUnicode data -- sending unsupported feature
// notification and allow font parsing to continue. // notification and allow font parsing to continue.
this.handler.send("UnsupportedFeature", { this.handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.font, featureId: UNSUPPORTED_FEATURES.errorFontToUnicode,
}); });
warn(`readToUnicode - ignoring ToUnicode data: "${reason}".`); warn(`readToUnicode - ignoring ToUnicode data: "${reason}".`);
return null; return null;

View File

@ -559,7 +559,7 @@ var WorkerMessageHandler = {
// For compatibility with older behavior, generating unknown // For compatibility with older behavior, generating unknown
// unsupported feature notification on errors. // unsupported feature notification on errors.
handler.send("UnsupportedFeature", { handler.send("UnsupportedFeature", {
featureId: UNSUPPORTED_FEATURES.unknown, featureId: UNSUPPORTED_FEATURES.errorOperatorList,
}); });
sink.error(reason); sink.error(reason);

View File

@ -82,7 +82,9 @@ class BaseFontLoader {
try { try {
await nativeFontFace.loaded; await nativeFontFace.loaded;
} catch (ex) { } catch (ex) {
this._onUnsupportedFeature({ featureId: UNSUPPORTED_FEATURES.font }); this._onUnsupportedFeature({
featureId: UNSUPPORTED_FEATURES.errorFontLoadNative,
});
warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`); warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);
// When font loading failed, fall back to the built-in font renderer. // When font loading failed, fall back to the built-in font renderer.
@ -400,7 +402,9 @@ class FontFaceObject {
throw ex; throw ex;
} }
if (this._onUnsupportedFeature) { if (this._onUnsupportedFeature) {
this._onUnsupportedFeature({ featureId: UNSUPPORTED_FEATURES.font }); this._onUnsupportedFeature({
featureId: UNSUPPORTED_FEATURES.errorFontGetPath,
});
} }
warn(`getPathGenerator - ignoring character: "${ex}".`); warn(`getPathGenerator - ignoring character: "${ex}".`);

View File

@ -288,12 +288,26 @@ const OPS = {
}; };
const UNSUPPORTED_FEATURES = { const UNSUPPORTED_FEATURES = {
/** @deprecated unused */
unknown: "unknown", unknown: "unknown",
forms: "forms", forms: "forms",
javaScript: "javaScript", javaScript: "javaScript",
smask: "smask", smask: "smask",
shadingPattern: "shadingPattern", shadingPattern: "shadingPattern",
/** @deprecated unused */
font: "font", font: "font",
errorTilingPattern: "errorTilingPattern",
errorExtGState: "errorExtGState",
errorXObject: "errorXObject",
errorFontLoadType3: "errorFontLoadType3",
errorFontState: "errorFontState",
errorFontMissing: "errorFontMissing",
errorFontTranslate: "errorFontTranslate",
errorColorSpace: "errorColorSpace",
errorOperatorList: "errorOperatorList",
errorFontToUnicode: "errorFontToUnicode",
errorFontLoadNative: "errorFontLoadNative",
errorFontGetPath: "errorFontGetPath",
}; };
const PasswordResponses = { const PasswordResponses = {