Make the 'download' button behavior more robust
This commit is contained in:
		
							parent
							
								
									6d2c5414bf
								
							
						
					
					
						commit
						f3dc4206ee
					
				| @ -48,16 +48,12 @@ pdfContentHandler.prototype = { | |||||||
|       throw NS_ERROR_WONT_HANDLE_CONTENT; |       throw NS_ERROR_WONT_HANDLE_CONTENT; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // To allow a Download feature we need to ensure pdf.js
 |     let targetUrl = aRequest.URI.spec; | ||||||
|     // is not opened again if the request for opening an
 |     if (targetUrl.indexOf('?pdfjs.action=download') >= 0) | ||||||
|     // application/pdf document has been done by itself.
 |  | ||||||
|     let location = window.location.toString(); |  | ||||||
|     if (location.indexOf(url.replace('%s', '')) == 0) |  | ||||||
|       throw NS_ERROR_WONT_HANDLE_CONTENT; |       throw NS_ERROR_WONT_HANDLE_CONTENT; | ||||||
| 
 | 
 | ||||||
|     aRequest.cancel(Cr.NS_BINDING_ABORTED); |     aRequest.cancel(Cr.NS_BINDING_ABORTED); | ||||||
|     let uri = aRequest.URI; |     window.location = url.replace('%s', targetUrl); | ||||||
|     window.location = url.replace('%s', uri.spec); |  | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   classID: Components.ID('{2278dfd0-b75c-11e0-8257-1ba3d93c9f1a}'), |   classID: Components.ID('{2278dfd0-b75c-11e0-8257-1ba3d93c9f1a}'), | ||||||
|  | |||||||
| @ -85,10 +85,6 @@ var PDFView = { | |||||||
|     this.setScale(newScale, true); |     this.setScale(newScale, true); | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   download: function pdfViewDownload() { |  | ||||||
|     window.open(document.title, '_parent', 'pdf=yes'); |  | ||||||
|   }, |  | ||||||
| 
 |  | ||||||
|   set page(val) { |   set page(val) { | ||||||
|     var pages = this.pages; |     var pages = this.pages; | ||||||
|     var input = document.getElementById('pageNumber'); |     var input = document.getElementById('pageNumber'); | ||||||
| @ -119,7 +115,7 @@ var PDFView = { | |||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   open: function pdfViewOpen(url, scale) { |   open: function pdfViewOpen(url, scale) { | ||||||
|     document.title = url; |     document.title = this.url = url; | ||||||
| 
 | 
 | ||||||
|     getPdf( |     getPdf( | ||||||
|       { |       { | ||||||
| @ -135,6 +131,10 @@ var PDFView = { | |||||||
|       }); |       }); | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|  |   download: function pdfViewDownload() { | ||||||
|  |     window.open(this.url + '?pdfjs.action=download', '_parent'); | ||||||
|  |   }, | ||||||
|  | 
 | ||||||
|   navigateTo: function pdfViewNavigateTo(dest) { |   navigateTo: function pdfViewNavigateTo(dest) { | ||||||
|     if (typeof dest === 'string') |     if (typeof dest === 'string') | ||||||
|       dest = this.destinations[dest]; |       dest = this.destinations[dest]; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user