Merge pull request #16095 from Snuffleupagus/worker-isOffscreenCanvasSupported
Check `OffscreenCanvas` support once on the worker-thread
This commit is contained in:
commit
22c9970309
@ -23,7 +23,6 @@ import {
|
||||
AnnotationType,
|
||||
assert,
|
||||
BASELINE_FACTOR,
|
||||
FeatureTest,
|
||||
getModificationDate,
|
||||
IDENTITY_MATRIX,
|
||||
LINE_DESCENT_FACTOR,
|
||||
@ -147,7 +146,6 @@ class AnnotationFactory {
|
||||
!collectFields && acroFormDict.get("NeedAppearances") === true,
|
||||
pageIndex,
|
||||
isOffscreenCanvasSupported:
|
||||
FeatureTest.isOffscreenCanvasSupported &&
|
||||
pdfManager.evaluatorOptions.isOffscreenCanvasSupported,
|
||||
};
|
||||
|
||||
@ -306,10 +304,8 @@ class AnnotationFactory {
|
||||
}
|
||||
|
||||
const xref = evaluator.xref;
|
||||
const { isOffscreenCanvasSupported } = evaluator.options;
|
||||
const promises = [];
|
||||
const isOffscreenCanvasSupported =
|
||||
FeatureTest.isOffscreenCanvasSupported &&
|
||||
evaluator.options.isOffscreenCanvasSupported;
|
||||
for (const annotation of annotations) {
|
||||
switch (annotation.annotationType) {
|
||||
case AnnotationEditorType.FREETEXT:
|
||||
|
@ -80,7 +80,7 @@ const DefaultPartialEvaluatorOptions = Object.freeze({
|
||||
disableFontFace: false,
|
||||
ignoreErrors: false,
|
||||
isEvalSupported: true,
|
||||
isOffscreenCanvasSupported: true,
|
||||
isOffscreenCanvasSupported: false,
|
||||
fontExtraProperties: false,
|
||||
useSystemFonts: true,
|
||||
cMapUrl: null,
|
||||
|
@ -13,14 +13,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {
|
||||
assert,
|
||||
FeatureTest,
|
||||
FormatError,
|
||||
ImageKind,
|
||||
info,
|
||||
warn,
|
||||
} from "../shared/util.js";
|
||||
import { assert, FormatError, ImageKind, info, warn } from "../shared/util.js";
|
||||
import { applyMaskImageData } from "../shared/image_utils.js";
|
||||
import { BaseStream } from "./base_stream.js";
|
||||
import { ColorSpace } from "./colorspace.js";
|
||||
@ -356,7 +349,7 @@ class PDFImage {
|
||||
imageIsFromDecodeStream,
|
||||
inverseDecode,
|
||||
interpolate,
|
||||
isOffscreenCanvasSupported = true,
|
||||
isOffscreenCanvasSupported = false,
|
||||
}) {
|
||||
const isSingleOpaquePixel =
|
||||
width === 1 &&
|
||||
@ -367,7 +360,7 @@ class PDFImage {
|
||||
return { isSingleOpaquePixel };
|
||||
}
|
||||
|
||||
if (isOffscreenCanvasSupported && FeatureTest.isOffscreenCanvasSupported) {
|
||||
if (isOffscreenCanvasSupported) {
|
||||
const canvas = new OffscreenCanvas(width, height);
|
||||
const ctx = canvas.getContext("2d");
|
||||
const imgData = ctx.createImageData(width, height);
|
||||
|
@ -15,6 +15,7 @@
|
||||
|
||||
import {
|
||||
createValidAbsoluteUrl,
|
||||
FeatureTest,
|
||||
shadow,
|
||||
unreachable,
|
||||
warn,
|
||||
@ -44,6 +45,12 @@ class BasePdfManager {
|
||||
this._docId = args.docId;
|
||||
this._password = args.password;
|
||||
this.enableXfa = args.enableXfa;
|
||||
|
||||
// Check `OffscreenCanvas` support once, rather than repeatedly throughout
|
||||
// the worker-thread code.
|
||||
args.evaluatorOptions.isOffscreenCanvasSupported =
|
||||
args.evaluatorOptions.isOffscreenCanvasSupported &&
|
||||
FeatureTest.isOffscreenCanvasSupported;
|
||||
this.evaluatorOptions = args.evaluatorOptions;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user