Merge pull request #15555 from Snuffleupagus/improve-GetDocRequest
Clean-up the data that we're sending with "GetDocRequest"
This commit is contained in:
		
						commit
						dff444d441
					
				| @ -97,7 +97,7 @@ class WorkerMessageHandler { | |||||||
|     const WorkerTasks = []; |     const WorkerTasks = []; | ||||||
|     const verbosity = getVerbosityLevel(); |     const verbosity = getVerbosityLevel(); | ||||||
| 
 | 
 | ||||||
|     const apiVersion = docParams.apiVersion; |     const { docId, apiVersion } = docParams; | ||||||
|     const workerVersion = |     const workerVersion = | ||||||
|       typeof PDFJSDev !== "undefined" && !PDFJSDev.test("TESTING") |       typeof PDFJSDev !== "undefined" && !PDFJSDev.test("TESTING") | ||||||
|         ? PDFJSDev.eval("BUNDLE_VERSION") |         ? PDFJSDev.eval("BUNDLE_VERSION") | ||||||
| @ -142,10 +142,7 @@ class WorkerMessageHandler { | |||||||
|         throw new Error(partialMsg + "please update to a supported browser."); |         throw new Error(partialMsg + "please update to a supported browser."); | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| 
 |     const workerHandlerName = docId + "_worker"; | ||||||
|     const docId = docParams.docId; |  | ||||||
|     const docBaseUrl = docParams.docBaseUrl; |  | ||||||
|     const workerHandlerName = docParams.docId + "_worker"; |  | ||||||
|     let handler = new MessageHandler(workerHandlerName, docId, port); |     let handler = new MessageHandler(workerHandlerName, docId, port); | ||||||
| 
 | 
 | ||||||
|     function ensureNotTerminated() { |     function ensureNotTerminated() { | ||||||
| @ -204,17 +201,25 @@ class WorkerMessageHandler { | |||||||
|       return { numPages, fingerprints, htmlForXfa }; |       return { numPages, fingerprints, htmlForXfa }; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     function getPdfManager(data, evaluatorOptions, enableXfa) { |     function getPdfManager({ | ||||||
|  |       data, | ||||||
|  |       password, | ||||||
|  |       disableAutoFetch, | ||||||
|  |       rangeChunkSize, | ||||||
|  |       length, | ||||||
|  |       docBaseUrl, | ||||||
|  |       enableXfa, | ||||||
|  |       evaluatorOptions, | ||||||
|  |     }) { | ||||||
|       const pdfManagerCapability = createPromiseCapability(); |       const pdfManagerCapability = createPromiseCapability(); | ||||||
|       let newPdfManager; |       let newPdfManager; | ||||||
| 
 | 
 | ||||||
|       const source = data.source; |       if (data) { | ||||||
|       if (source.data) { |  | ||||||
|         try { |         try { | ||||||
|           newPdfManager = new LocalPdfManager( |           newPdfManager = new LocalPdfManager( | ||||||
|             docId, |             docId, | ||||||
|             source.data, |             data, | ||||||
|             source.password, |             password, | ||||||
|             handler, |             handler, | ||||||
|             evaluatorOptions, |             evaluatorOptions, | ||||||
|             enableXfa, |             enableXfa, | ||||||
| @ -242,19 +247,19 @@ class WorkerMessageHandler { | |||||||
|           if (!fullRequest.isRangeSupported) { |           if (!fullRequest.isRangeSupported) { | ||||||
|             return; |             return; | ||||||
|           } |           } | ||||||
| 
 |  | ||||||
|           // We don't need auto-fetch when streaming is enabled.
 |           // We don't need auto-fetch when streaming is enabled.
 | ||||||
|           const disableAutoFetch = |           disableAutoFetch = | ||||||
|             source.disableAutoFetch || fullRequest.isStreamingSupported; |             disableAutoFetch || fullRequest.isStreamingSupported; | ||||||
|  | 
 | ||||||
|           newPdfManager = new NetworkPdfManager( |           newPdfManager = new NetworkPdfManager( | ||||||
|             docId, |             docId, | ||||||
|             pdfStream, |             pdfStream, | ||||||
|             { |             { | ||||||
|               msgHandler: handler, |               msgHandler: handler, | ||||||
|               password: source.password, |               password, | ||||||
|               length: fullRequest.contentLength, |               length: fullRequest.contentLength, | ||||||
|               disableAutoFetch, |               disableAutoFetch, | ||||||
|               rangeChunkSize: source.rangeChunkSize, |               rangeChunkSize, | ||||||
|             }, |             }, | ||||||
|             evaluatorOptions, |             evaluatorOptions, | ||||||
|             enableXfa, |             enableXfa, | ||||||
| @ -279,7 +284,7 @@ class WorkerMessageHandler { | |||||||
|       let loaded = 0; |       let loaded = 0; | ||||||
|       const flushChunks = function () { |       const flushChunks = function () { | ||||||
|         const pdfFile = arraysToBytes(cachedChunks); |         const pdfFile = arraysToBytes(cachedChunks); | ||||||
|         if (source.length && pdfFile.length !== source.length) { |         if (length && pdfFile.length !== length) { | ||||||
|           warn("reported HTTP length is different from actual"); |           warn("reported HTTP length is different from actual"); | ||||||
|         } |         } | ||||||
|         // the data is array, instantiating directly from it
 |         // the data is array, instantiating directly from it
 | ||||||
| @ -287,7 +292,7 @@ class WorkerMessageHandler { | |||||||
|           newPdfManager = new LocalPdfManager( |           newPdfManager = new LocalPdfManager( | ||||||
|             docId, |             docId, | ||||||
|             pdfFile, |             pdfFile, | ||||||
|             source.password, |             password, | ||||||
|             handler, |             handler, | ||||||
|             evaluatorOptions, |             evaluatorOptions, | ||||||
|             enableXfa, |             enableXfa, | ||||||
| @ -405,19 +410,7 @@ class WorkerMessageHandler { | |||||||
| 
 | 
 | ||||||
|       ensureNotTerminated(); |       ensureNotTerminated(); | ||||||
| 
 | 
 | ||||||
|       const evaluatorOptions = { |       getPdfManager(data) | ||||||
|         maxImageSize: data.maxImageSize, |  | ||||||
|         disableFontFace: data.disableFontFace, |  | ||||||
|         ignoreErrors: data.ignoreErrors, |  | ||||||
|         isEvalSupported: data.isEvalSupported, |  | ||||||
|         isOffscreenCanvasSupported: data.isOffscreenCanvasSupported, |  | ||||||
|         fontExtraProperties: data.fontExtraProperties, |  | ||||||
|         useSystemFonts: data.useSystemFonts, |  | ||||||
|         cMapUrl: data.cMapUrl, |  | ||||||
|         standardFontDataUrl: data.standardFontDataUrl, |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       getPdfManager(data, evaluatorOptions, data.enableXfa) |  | ||||||
|         .then(function (newPdfManager) { |         .then(function (newPdfManager) { | ||||||
|           if (terminated) { |           if (terminated) { | ||||||
|             // We were in a process of setting up the manager, but it got
 |             // We were in a process of setting up the manager, but it got
 | ||||||
|  | |||||||
| @ -503,34 +503,33 @@ async function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { | |||||||
|   } |   } | ||||||
|   const workerId = await worker.messageHandler.sendWithPromise( |   const workerId = await worker.messageHandler.sendWithPromise( | ||||||
|     "GetDocRequest", |     "GetDocRequest", | ||||||
|  |     // Only send the required properties, and *not* the entire `source` object.
 | ||||||
|     { |     { | ||||||
|       docId, |       docId, | ||||||
|       apiVersion: |       apiVersion: | ||||||
|         typeof PDFJSDev !== "undefined" && !PDFJSDev.test("TESTING") |         typeof PDFJSDev !== "undefined" && !PDFJSDev.test("TESTING") | ||||||
|           ? PDFJSDev.eval("BUNDLE_VERSION") |           ? PDFJSDev.eval("BUNDLE_VERSION") | ||||||
|           : null, |           : null, | ||||||
|       // Only send the required properties, and *not* the entire object.
 |       data: source.data, | ||||||
|       source: { |       password: source.password, | ||||||
|         data: source.data, |       disableAutoFetch: source.disableAutoFetch, | ||||||
|         url: source.url, |       rangeChunkSize: source.rangeChunkSize, | ||||||
|         password: source.password, |       length: source.length, | ||||||
|         disableAutoFetch: source.disableAutoFetch, |  | ||||||
|         rangeChunkSize: source.rangeChunkSize, |  | ||||||
|         length: source.length, |  | ||||||
|       }, |  | ||||||
|       maxImageSize: source.maxImageSize, |  | ||||||
|       disableFontFace: source.disableFontFace, |  | ||||||
|       docBaseUrl: source.docBaseUrl, |       docBaseUrl: source.docBaseUrl, | ||||||
|       ignoreErrors: source.ignoreErrors, |  | ||||||
|       isEvalSupported: source.isEvalSupported, |  | ||||||
|       isOffscreenCanvasSupported: source.isOffscreenCanvasSupported, |  | ||||||
|       fontExtraProperties: source.fontExtraProperties, |  | ||||||
|       enableXfa: source.enableXfa, |       enableXfa: source.enableXfa, | ||||||
|       useSystemFonts: source.useSystemFonts, |       evaluatorOptions: { | ||||||
|       cMapUrl: source.useWorkerFetch ? source.cMapUrl : null, |         maxImageSize: source.maxImageSize, | ||||||
|       standardFontDataUrl: source.useWorkerFetch |         disableFontFace: source.disableFontFace, | ||||||
|         ? source.standardFontDataUrl |         ignoreErrors: source.ignoreErrors, | ||||||
|         : null, |         isEvalSupported: source.isEvalSupported, | ||||||
|  |         isOffscreenCanvasSupported: source.isOffscreenCanvasSupported, | ||||||
|  |         fontExtraProperties: source.fontExtraProperties, | ||||||
|  |         useSystemFonts: source.useSystemFonts, | ||||||
|  |         cMapUrl: source.useWorkerFetch ? source.cMapUrl : null, | ||||||
|  |         standardFontDataUrl: source.useWorkerFetch | ||||||
|  |           ? source.standardFontDataUrl | ||||||
|  |           : null, | ||||||
|  |       }, | ||||||
|     } |     } | ||||||
|   ); |   ); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user