Merge pull request #14515 from Snuffleupagus/rm-disableCreateObjectURL
[api-minor] Remove support for browsers/environments without fully working `URL.createObjectURL` implementations
This commit is contained in:
		
						commit
						48c8831a79
					
				
							
								
								
									
										13
									
								
								web/app.js
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								web/app.js
									
									
									
									
									
								
							| @ -35,7 +35,7 @@ import { | ||||
|   SpreadMode, | ||||
|   TextLayerMode, | ||||
| } from "./ui_utils.js"; | ||||
| import { AppOptions, compatibilityParams, OptionKind } from "./app_options.js"; | ||||
| import { AppOptions, OptionKind } from "./app_options.js"; | ||||
| import { AutomationEventBus, EventBus } from "./event_utils.js"; | ||||
| import { | ||||
|   build, | ||||
| @ -2490,22 +2490,11 @@ if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) { | ||||
|     } | ||||
|     const file = evt.fileInput.files[0]; | ||||
| 
 | ||||
|     if (!compatibilityParams.disableCreateObjectURL) { | ||||
|     let url = URL.createObjectURL(file); | ||||
|     if (file.name) { | ||||
|       url = { url, originalUrl: file.name }; | ||||
|     } | ||||
|     PDFViewerApplication.open(url); | ||||
|     } else { | ||||
|       PDFViewerApplication.setTitleUsingUrl(file.name); | ||||
|       // Read the local file into a Uint8Array.
 | ||||
|       const fileReader = new FileReader(); | ||||
|       fileReader.onload = function webViewerChangeFileReaderOnload(event) { | ||||
|         const buffer = event.target.result; | ||||
|         PDFViewerApplication.open(new Uint8Array(buffer)); | ||||
|       }; | ||||
|       fileReader.readAsArrayBuffer(file); | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   webViewerOpenFile = function (evt) { | ||||
|  | ||||
| @ -26,17 +26,6 @@ if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) { | ||||
|   const isIOS = | ||||
|     /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || | ||||
|     (platform === "MacIntel" && maxTouchPoints > 1); | ||||
|   const isIOSChrome = /CriOS/.test(userAgent); | ||||
| 
 | ||||
|   // Disables URL.createObjectURL() usage in some environments.
 | ||||
|   // Support: Chrome on iOS
 | ||||
|   (function checkOnBlobSupport() { | ||||
|     // Sometimes Chrome on iOS loses data created with createObjectURL(),
 | ||||
|     // see issue 8081.
 | ||||
|     if (isIOSChrome) { | ||||
|       compatibilityParams.disableCreateObjectURL = true; | ||||
|     } | ||||
|   })(); | ||||
| 
 | ||||
|   // Limit canvas size to 5 mega-pixels on mobile.
 | ||||
|   // Support: Android, iOS
 | ||||
|  | ||||
| @ -15,8 +15,7 @@ | ||||
| 
 | ||||
| /** @typedef {import("./interfaces").IDownloadManager} IDownloadManager */ | ||||
| 
 | ||||
| import { createObjectURL, createValidAbsoluteUrl, isPdfFile } from "pdfjs-lib"; | ||||
| import { compatibilityParams } from "./app_options.js"; | ||||
| import { createValidAbsoluteUrl, isPdfFile } from "pdfjs-lib"; | ||||
| 
 | ||||
| if (typeof PDFJSDev !== "undefined" && !PDFJSDev.test("CHROME || GENERIC")) { | ||||
|   throw new Error( | ||||
| @ -61,10 +60,8 @@ class DownloadManager { | ||||
|   } | ||||
| 
 | ||||
|   downloadData(data, filename, contentType) { | ||||
|     const blobUrl = createObjectURL( | ||||
|       data, | ||||
|       contentType, | ||||
|       compatibilityParams.disableCreateObjectURL | ||||
|     const blobUrl = URL.createObjectURL( | ||||
|       new Blob([data], { type: contentType }) | ||||
|     ); | ||||
|     download(blobUrl, filename); | ||||
|   } | ||||
| @ -76,7 +73,7 @@ class DownloadManager { | ||||
|     const isPdfData = isPdfFile(filename); | ||||
|     const contentType = isPdfData ? "application/pdf" : ""; | ||||
| 
 | ||||
|     if (isPdfData && !compatibilityParams.disableCreateObjectURL) { | ||||
|     if (isPdfData) { | ||||
|       let blobUrl = this._openBlobUrls.get(element); | ||||
|       if (!blobUrl) { | ||||
|         blobUrl = URL.createObjectURL(new Blob([data], { type: contentType })); | ||||
| @ -119,11 +116,6 @@ class DownloadManager { | ||||
|    *   the "open with" dialog. | ||||
|    */ | ||||
|   download(blob, url, filename, sourceEventType = "download") { | ||||
|     if (compatibilityParams.disableCreateObjectURL) { | ||||
|       // URL.createObjectURL is not supported
 | ||||
|       this.downloadUrl(url, filename); | ||||
|       return; | ||||
|     } | ||||
|     const blobUrl = URL.createObjectURL(blob); | ||||
|     download(blobUrl, filename); | ||||
|   } | ||||
|  | ||||
| @ -913,11 +913,7 @@ class PDFPageView { | ||||
|       }) | ||||
|       .then(opList => { | ||||
|         ensureNotCancelled(); | ||||
|         const svgGfx = new SVGGraphics( | ||||
|           pdfPage.commonObjs, | ||||
|           pdfPage.objs, | ||||
|           /* forceDataSchema = */ compatibilityParams.disableCreateObjectURL | ||||
|         ); | ||||
|         const svgGfx = new SVGGraphics(pdfPage.commonObjs, pdfPage.objs); | ||||
|         return svgGfx.getSVG(opList, actualSizeViewport).then(svg => { | ||||
|           ensureNotCancelled(); | ||||
|           this.svg = svg; | ||||
|  | ||||
| @ -15,7 +15,6 @@ | ||||
| 
 | ||||
| import { AnnotationMode, PixelsPerInch } from "pdfjs-lib"; | ||||
| import { PDFPrintServiceFactory, PDFViewerApplication } from "./app.js"; | ||||
| import { compatibilityParams } from "./app_options.js"; | ||||
| import { getXfaHtmlForPrinting } from "./print_utils.js"; | ||||
| 
 | ||||
| let activeService = null; | ||||
| @ -176,10 +175,7 @@ PDFPrintService.prototype = { | ||||
|     this.throwIfInactive(); | ||||
|     const img = document.createElement("img"); | ||||
|     const scratchCanvas = this.scratchCanvas; | ||||
|     if ( | ||||
|       "toBlob" in scratchCanvas && | ||||
|       !compatibilityParams.disableCreateObjectURL | ||||
|     ) { | ||||
|     if ("toBlob" in scratchCanvas) { | ||||
|       scratchCanvas.toBlob(function (blob) { | ||||
|         img.src = URL.createObjectURL(blob); | ||||
|       }); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user