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
					
				
							
								
								
									
										21
									
								
								web/app.js
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								web/app.js
									
									
									
									
									
								
							| @ -35,7 +35,7 @@ import { | |||||||
|   SpreadMode, |   SpreadMode, | ||||||
|   TextLayerMode, |   TextLayerMode, | ||||||
| } from "./ui_utils.js"; | } 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 { AutomationEventBus, EventBus } from "./event_utils.js"; | ||||||
| import { | import { | ||||||
|   build, |   build, | ||||||
| @ -2490,22 +2490,11 @@ if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) { | |||||||
|     } |     } | ||||||
|     const file = evt.fileInput.files[0]; |     const file = evt.fileInput.files[0]; | ||||||
| 
 | 
 | ||||||
|     if (!compatibilityParams.disableCreateObjectURL) { |     let url = URL.createObjectURL(file); | ||||||
|       let url = URL.createObjectURL(file); |     if (file.name) { | ||||||
|       if (file.name) { |       url = { url, originalUrl: 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); |  | ||||||
|     } |     } | ||||||
|  |     PDFViewerApplication.open(url); | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   webViewerOpenFile = function (evt) { |   webViewerOpenFile = function (evt) { | ||||||
|  | |||||||
| @ -26,17 +26,6 @@ if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) { | |||||||
|   const isIOS = |   const isIOS = | ||||||
|     /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || |     /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || | ||||||
|     (platform === "MacIntel" && maxTouchPoints > 1); |     (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.
 |   // Limit canvas size to 5 mega-pixels on mobile.
 | ||||||
|   // Support: Android, iOS
 |   // Support: Android, iOS
 | ||||||
|  | |||||||
| @ -15,8 +15,7 @@ | |||||||
| 
 | 
 | ||||||
| /** @typedef {import("./interfaces").IDownloadManager} IDownloadManager */ | /** @typedef {import("./interfaces").IDownloadManager} IDownloadManager */ | ||||||
| 
 | 
 | ||||||
| import { createObjectURL, createValidAbsoluteUrl, isPdfFile } from "pdfjs-lib"; | import { createValidAbsoluteUrl, isPdfFile } from "pdfjs-lib"; | ||||||
| import { compatibilityParams } from "./app_options.js"; |  | ||||||
| 
 | 
 | ||||||
| if (typeof PDFJSDev !== "undefined" && !PDFJSDev.test("CHROME || GENERIC")) { | if (typeof PDFJSDev !== "undefined" && !PDFJSDev.test("CHROME || GENERIC")) { | ||||||
|   throw new Error( |   throw new Error( | ||||||
| @ -61,10 +60,8 @@ class DownloadManager { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   downloadData(data, filename, contentType) { |   downloadData(data, filename, contentType) { | ||||||
|     const blobUrl = createObjectURL( |     const blobUrl = URL.createObjectURL( | ||||||
|       data, |       new Blob([data], { type: contentType }) | ||||||
|       contentType, |  | ||||||
|       compatibilityParams.disableCreateObjectURL |  | ||||||
|     ); |     ); | ||||||
|     download(blobUrl, filename); |     download(blobUrl, filename); | ||||||
|   } |   } | ||||||
| @ -76,7 +73,7 @@ class DownloadManager { | |||||||
|     const isPdfData = isPdfFile(filename); |     const isPdfData = isPdfFile(filename); | ||||||
|     const contentType = isPdfData ? "application/pdf" : ""; |     const contentType = isPdfData ? "application/pdf" : ""; | ||||||
| 
 | 
 | ||||||
|     if (isPdfData && !compatibilityParams.disableCreateObjectURL) { |     if (isPdfData) { | ||||||
|       let blobUrl = this._openBlobUrls.get(element); |       let blobUrl = this._openBlobUrls.get(element); | ||||||
|       if (!blobUrl) { |       if (!blobUrl) { | ||||||
|         blobUrl = URL.createObjectURL(new Blob([data], { type: contentType })); |         blobUrl = URL.createObjectURL(new Blob([data], { type: contentType })); | ||||||
| @ -119,11 +116,6 @@ class DownloadManager { | |||||||
|    *   the "open with" dialog. |    *   the "open with" dialog. | ||||||
|    */ |    */ | ||||||
|   download(blob, url, filename, sourceEventType = "download") { |   download(blob, url, filename, sourceEventType = "download") { | ||||||
|     if (compatibilityParams.disableCreateObjectURL) { |  | ||||||
|       // URL.createObjectURL is not supported
 |  | ||||||
|       this.downloadUrl(url, filename); |  | ||||||
|       return; |  | ||||||
|     } |  | ||||||
|     const blobUrl = URL.createObjectURL(blob); |     const blobUrl = URL.createObjectURL(blob); | ||||||
|     download(blobUrl, filename); |     download(blobUrl, filename); | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -913,11 +913,7 @@ class PDFPageView { | |||||||
|       }) |       }) | ||||||
|       .then(opList => { |       .then(opList => { | ||||||
|         ensureNotCancelled(); |         ensureNotCancelled(); | ||||||
|         const svgGfx = new SVGGraphics( |         const svgGfx = new SVGGraphics(pdfPage.commonObjs, pdfPage.objs); | ||||||
|           pdfPage.commonObjs, |  | ||||||
|           pdfPage.objs, |  | ||||||
|           /* forceDataSchema = */ compatibilityParams.disableCreateObjectURL |  | ||||||
|         ); |  | ||||||
|         return svgGfx.getSVG(opList, actualSizeViewport).then(svg => { |         return svgGfx.getSVG(opList, actualSizeViewport).then(svg => { | ||||||
|           ensureNotCancelled(); |           ensureNotCancelled(); | ||||||
|           this.svg = svg; |           this.svg = svg; | ||||||
|  | |||||||
| @ -15,7 +15,6 @@ | |||||||
| 
 | 
 | ||||||
| import { AnnotationMode, PixelsPerInch } from "pdfjs-lib"; | import { AnnotationMode, PixelsPerInch } from "pdfjs-lib"; | ||||||
| import { PDFPrintServiceFactory, PDFViewerApplication } from "./app.js"; | import { PDFPrintServiceFactory, PDFViewerApplication } from "./app.js"; | ||||||
| import { compatibilityParams } from "./app_options.js"; |  | ||||||
| import { getXfaHtmlForPrinting } from "./print_utils.js"; | import { getXfaHtmlForPrinting } from "./print_utils.js"; | ||||||
| 
 | 
 | ||||||
| let activeService = null; | let activeService = null; | ||||||
| @ -176,10 +175,7 @@ PDFPrintService.prototype = { | |||||||
|     this.throwIfInactive(); |     this.throwIfInactive(); | ||||||
|     const img = document.createElement("img"); |     const img = document.createElement("img"); | ||||||
|     const scratchCanvas = this.scratchCanvas; |     const scratchCanvas = this.scratchCanvas; | ||||||
|     if ( |     if ("toBlob" in scratchCanvas) { | ||||||
|       "toBlob" in scratchCanvas && |  | ||||||
|       !compatibilityParams.disableCreateObjectURL |  | ||||||
|     ) { |  | ||||||
|       scratchCanvas.toBlob(function (blob) { |       scratchCanvas.toBlob(function (blob) { | ||||||
|         img.src = URL.createObjectURL(blob); |         img.src = URL.createObjectURL(blob); | ||||||
|       }); |       }); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user