Convert TempImageFactory to a class, using static fields/methods
				
					
				
			Please refer to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields
This commit is contained in:
		
							parent
							
								
									89785a23f3
								
							
						
					
					
						commit
						7216511fbf
					
				| @ -36,48 +36,42 @@ const THUMBNAIL_WIDTH = 98; // px | ||||
|  * @property {IL10n} l10n - Localization service. | ||||
|  */ | ||||
| 
 | ||||
| const TempImageFactory = (function TempImageFactoryClosure() { | ||||
|   let tempCanvasCache = null; | ||||
| class TempImageFactory { | ||||
|   static #tempCanvas = null; | ||||
| 
 | ||||
|   return { | ||||
|     getCanvas(width, height) { | ||||
|       let tempCanvas = tempCanvasCache; | ||||
|       if (!tempCanvas) { | ||||
|         tempCanvas = document.createElement("canvas"); | ||||
|         tempCanvasCache = tempCanvas; | ||||
|       } | ||||
|       tempCanvas.width = width; | ||||
|       tempCanvas.height = height; | ||||
|   static getCanvas(width, height) { | ||||
|     const tempCanvas = (this.#tempCanvas ||= document.createElement("canvas")); | ||||
|     tempCanvas.width = width; | ||||
|     tempCanvas.height = height; | ||||
| 
 | ||||
|       // Since this is a temporary canvas, we need to fill it with a white
 | ||||
|       // background ourselves. `_getPageDrawContext` uses CSS rules for this.
 | ||||
|       if ( | ||||
|         typeof PDFJSDev === "undefined" || | ||||
|         PDFJSDev.test("MOZCENTRAL || GENERIC") | ||||
|       ) { | ||||
|         tempCanvas.mozOpaque = true; | ||||
|       } | ||||
|     // Since this is a temporary canvas, we need to fill it with a white
 | ||||
|     // background ourselves. `_getPageDrawContext` uses CSS rules for this.
 | ||||
|     if ( | ||||
|       typeof PDFJSDev === "undefined" || | ||||
|       PDFJSDev.test("MOZCENTRAL || GENERIC") | ||||
|     ) { | ||||
|       tempCanvas.mozOpaque = true; | ||||
|     } | ||||
| 
 | ||||
|       const ctx = tempCanvas.getContext("2d", { alpha: false }); | ||||
|       ctx.save(); | ||||
|       ctx.fillStyle = "rgb(255, 255, 255)"; | ||||
|       ctx.fillRect(0, 0, width, height); | ||||
|       ctx.restore(); | ||||
|       return [tempCanvas, tempCanvas.getContext("2d")]; | ||||
|     }, | ||||
|     const ctx = tempCanvas.getContext("2d", { alpha: false }); | ||||
|     ctx.save(); | ||||
|     ctx.fillStyle = "rgb(255, 255, 255)"; | ||||
|     ctx.fillRect(0, 0, width, height); | ||||
|     ctx.restore(); | ||||
|     return [tempCanvas, tempCanvas.getContext("2d")]; | ||||
|   } | ||||
| 
 | ||||
|     destroyCanvas() { | ||||
|       const tempCanvas = tempCanvasCache; | ||||
|       if (tempCanvas) { | ||||
|         // Zeroing the width and height causes Firefox to release graphics
 | ||||
|         // resources immediately, which can greatly reduce memory consumption.
 | ||||
|         tempCanvas.width = 0; | ||||
|         tempCanvas.height = 0; | ||||
|       } | ||||
|       tempCanvasCache = null; | ||||
|     }, | ||||
|   }; | ||||
| })(); | ||||
|   static destroyCanvas() { | ||||
|     const tempCanvas = this.#tempCanvas; | ||||
|     if (tempCanvas) { | ||||
|       // Zeroing the width and height causes Firefox to release graphics
 | ||||
|       // resources immediately, which can greatly reduce memory consumption.
 | ||||
|       tempCanvas.width = 0; | ||||
|       tempCanvas.height = 0; | ||||
|     } | ||||
|     this.#tempCanvas = null; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * @implements {IRenderableView} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user