Merge pull request #10601 from Snuffleupagus/TextLayer-canvas-cleanup
Zero the width/height of the temporary canvas used during `TextLayer` rendering
This commit is contained in:
		
						commit
						7208f0ff67
					
				@ -490,6 +490,17 @@ var renderTextLayer = (function renderTextLayerClosure() {
 | 
			
		||||
    this._capability = createPromiseCapability();
 | 
			
		||||
    this._renderTimer = null;
 | 
			
		||||
    this._bounds = [];
 | 
			
		||||
 | 
			
		||||
    // Always clean-up the temporary canvas once rendering is no longer pending.
 | 
			
		||||
    this._capability.promise.finally(() => {
 | 
			
		||||
      if (this._layoutTextCtx) {
 | 
			
		||||
        // Zeroing the width and height cause Firefox to release graphics
 | 
			
		||||
        // resources immediately, which can greatly reduce memory consumption.
 | 
			
		||||
        this._layoutTextCtx.canvas.width = 0;
 | 
			
		||||
        this._layoutTextCtx.canvas.height = 0;
 | 
			
		||||
        this._layoutTextCtx = null;
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
  TextLayerRenderTask.prototype = {
 | 
			
		||||
    get promise() {
 | 
			
		||||
@ -497,16 +508,16 @@ var renderTextLayer = (function renderTextLayerClosure() {
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    cancel: function TextLayer_cancel() {
 | 
			
		||||
      this._canceled = true;
 | 
			
		||||
      if (this._reader) {
 | 
			
		||||
        this._reader.cancel(new AbortException('text layer task cancelled'));
 | 
			
		||||
        this._reader.cancel(new AbortException('TextLayer task cancelled.'));
 | 
			
		||||
        this._reader = null;
 | 
			
		||||
      }
 | 
			
		||||
      this._canceled = true;
 | 
			
		||||
      if (this._renderTimer !== null) {
 | 
			
		||||
        clearTimeout(this._renderTimer);
 | 
			
		||||
        this._renderTimer = null;
 | 
			
		||||
      }
 | 
			
		||||
      this._capability.reject('canceled');
 | 
			
		||||
      this._capability.reject(new Error('TextLayer task cancelled.'));
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _processItems(items, styleCache) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user