Merge pull request #16047 from Snuffleupagus/BasePdfManager-args
Improve the consistency between the `LocalPdfManager`/`NetworkPdfManager` constructor
This commit is contained in:
commit
ec4c84176f
@ -36,10 +36,15 @@ function parseDocBaseUrl(url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class BasePdfManager {
|
class BasePdfManager {
|
||||||
constructor() {
|
constructor(args) {
|
||||||
if (this.constructor === BasePdfManager) {
|
if (this.constructor === BasePdfManager) {
|
||||||
unreachable("Cannot initialize BasePdfManager.");
|
unreachable("Cannot initialize BasePdfManager.");
|
||||||
}
|
}
|
||||||
|
this._docBaseUrl = parseDocBaseUrl(args.docBaseUrl);
|
||||||
|
this._docId = args.docId;
|
||||||
|
this._password = args.password;
|
||||||
|
this.enableXfa = args.enableXfa;
|
||||||
|
this.evaluatorOptions = args.evaluatorOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
get docId() {
|
get docId() {
|
||||||
@ -117,25 +122,10 @@ class BasePdfManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class LocalPdfManager extends BasePdfManager {
|
class LocalPdfManager extends BasePdfManager {
|
||||||
constructor(
|
constructor(args) {
|
||||||
docId,
|
super(args);
|
||||||
data,
|
|
||||||
password,
|
|
||||||
msgHandler,
|
|
||||||
evaluatorOptions,
|
|
||||||
enableXfa,
|
|
||||||
docBaseUrl
|
|
||||||
) {
|
|
||||||
super();
|
|
||||||
|
|
||||||
this._docId = docId;
|
const stream = new Stream(args.source);
|
||||||
this._password = password;
|
|
||||||
this._docBaseUrl = parseDocBaseUrl(docBaseUrl);
|
|
||||||
this.msgHandler = msgHandler;
|
|
||||||
this.evaluatorOptions = evaluatorOptions;
|
|
||||||
this.enableXfa = enableXfa;
|
|
||||||
|
|
||||||
const stream = new Stream(data);
|
|
||||||
this.pdfDocument = new PDFDocument(this, stream);
|
this.pdfDocument = new PDFDocument(this, stream);
|
||||||
this._loadedStreamPromise = Promise.resolve(stream);
|
this._loadedStreamPromise = Promise.resolve(stream);
|
||||||
}
|
}
|
||||||
@ -160,25 +150,11 @@ class LocalPdfManager extends BasePdfManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class NetworkPdfManager extends BasePdfManager {
|
class NetworkPdfManager extends BasePdfManager {
|
||||||
constructor(
|
constructor(args) {
|
||||||
docId,
|
super(args);
|
||||||
pdfNetworkStream,
|
|
||||||
args,
|
|
||||||
evaluatorOptions,
|
|
||||||
enableXfa,
|
|
||||||
docBaseUrl
|
|
||||||
) {
|
|
||||||
super();
|
|
||||||
|
|
||||||
this._docId = docId;
|
this.streamManager = new ChunkedStreamManager(args.source, {
|
||||||
this._password = args.password;
|
msgHandler: args.handler,
|
||||||
this._docBaseUrl = parseDocBaseUrl(docBaseUrl);
|
|
||||||
this.msgHandler = args.msgHandler;
|
|
||||||
this.evaluatorOptions = evaluatorOptions;
|
|
||||||
this.enableXfa = enableXfa;
|
|
||||||
|
|
||||||
this.streamManager = new ChunkedStreamManager(pdfNetworkStream, {
|
|
||||||
msgHandler: args.msgHandler,
|
|
||||||
length: args.length,
|
length: args.length,
|
||||||
disableAutoFetch: args.disableAutoFetch,
|
disableAutoFetch: args.disableAutoFetch,
|
||||||
rangeChunkSize: args.rangeChunkSize,
|
rangeChunkSize: args.rangeChunkSize,
|
||||||
|
@ -210,20 +210,26 @@ class WorkerMessageHandler {
|
|||||||
enableXfa,
|
enableXfa,
|
||||||
evaluatorOptions,
|
evaluatorOptions,
|
||||||
}) {
|
}) {
|
||||||
|
const pdfManagerArgs = {
|
||||||
|
source: null,
|
||||||
|
disableAutoFetch,
|
||||||
|
docBaseUrl,
|
||||||
|
docId,
|
||||||
|
enableXfa,
|
||||||
|
evaluatorOptions,
|
||||||
|
handler,
|
||||||
|
length,
|
||||||
|
password,
|
||||||
|
rangeChunkSize,
|
||||||
|
};
|
||||||
const pdfManagerCapability = createPromiseCapability();
|
const pdfManagerCapability = createPromiseCapability();
|
||||||
let newPdfManager;
|
let newPdfManager;
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
try {
|
try {
|
||||||
newPdfManager = new LocalPdfManager(
|
pdfManagerArgs.source = data;
|
||||||
docId,
|
|
||||||
data,
|
newPdfManager = new LocalPdfManager(pdfManagerArgs);
|
||||||
password,
|
|
||||||
handler,
|
|
||||||
evaluatorOptions,
|
|
||||||
enableXfa,
|
|
||||||
docBaseUrl
|
|
||||||
);
|
|
||||||
pdfManagerCapability.resolve(newPdfManager);
|
pdfManagerCapability.resolve(newPdfManager);
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
pdfManagerCapability.reject(ex);
|
pdfManagerCapability.reject(ex);
|
||||||
@ -246,24 +252,13 @@ class WorkerMessageHandler {
|
|||||||
if (!fullRequest.isRangeSupported) {
|
if (!fullRequest.isRangeSupported) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
pdfManagerArgs.source = pdfStream;
|
||||||
|
pdfManagerArgs.length = fullRequest.contentLength;
|
||||||
// We don't need auto-fetch when streaming is enabled.
|
// We don't need auto-fetch when streaming is enabled.
|
||||||
disableAutoFetch =
|
pdfManagerArgs.disableAutoFetch =
|
||||||
disableAutoFetch || fullRequest.isStreamingSupported;
|
pdfManagerArgs.disableAutoFetch || fullRequest.isStreamingSupported;
|
||||||
|
|
||||||
newPdfManager = new NetworkPdfManager(
|
newPdfManager = new NetworkPdfManager(pdfManagerArgs);
|
||||||
docId,
|
|
||||||
pdfStream,
|
|
||||||
{
|
|
||||||
msgHandler: handler,
|
|
||||||
password,
|
|
||||||
length: fullRequest.contentLength,
|
|
||||||
disableAutoFetch,
|
|
||||||
rangeChunkSize,
|
|
||||||
},
|
|
||||||
evaluatorOptions,
|
|
||||||
enableXfa,
|
|
||||||
docBaseUrl
|
|
||||||
);
|
|
||||||
// There may be a chance that `newPdfManager` is not initialized for
|
// There may be a chance that `newPdfManager` is not initialized for
|
||||||
// the first few runs of `readchunk` block of code. Be sure to send
|
// the first few runs of `readchunk` block of code. Be sure to send
|
||||||
// all cached chunks, if any, to chunked_stream via pdf_manager.
|
// all cached chunks, if any, to chunked_stream via pdf_manager.
|
||||||
@ -288,15 +283,9 @@ class WorkerMessageHandler {
|
|||||||
}
|
}
|
||||||
// the data is array, instantiating directly from it
|
// the data is array, instantiating directly from it
|
||||||
try {
|
try {
|
||||||
newPdfManager = new LocalPdfManager(
|
pdfManagerArgs.source = pdfFile;
|
||||||
docId,
|
|
||||||
pdfFile,
|
newPdfManager = new LocalPdfManager(pdfManagerArgs);
|
||||||
password,
|
|
||||||
handler,
|
|
||||||
evaluatorOptions,
|
|
||||||
enableXfa,
|
|
||||||
docBaseUrl
|
|
||||||
);
|
|
||||||
pdfManagerCapability.resolve(newPdfManager);
|
pdfManagerCapability.resolve(newPdfManager);
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
pdfManagerCapability.reject(ex);
|
pdfManagerCapability.reject(ex);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user