Fix the download button.
This commit is contained in:
		
							parent
							
								
									dd8c39d8e1
								
							
						
					
					
						commit
						858aab008f
					
				@ -70,6 +70,17 @@ pdfContentHandler.prototype = {
 | 
				
			|||||||
  onStartRequest: function(aRequest, aContext) {
 | 
					  onStartRequest: function(aRequest, aContext) {
 | 
				
			||||||
    // Setup the request so we can use it below.
 | 
					    // Setup the request so we can use it below.
 | 
				
			||||||
    aRequest.QueryInterface(Ci.nsIChannel);
 | 
					    aRequest.QueryInterface(Ci.nsIChannel);
 | 
				
			||||||
 | 
					    // Cancel the request so the viewer can handle it.
 | 
				
			||||||
 | 
					    aRequest.cancel(Cr.NS_BINDING_ABORTED);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Check if we should download.
 | 
				
			||||||
 | 
					    var targetUrl = aRequest.originalURI.spec;
 | 
				
			||||||
 | 
					    var downloadHash = targetUrl.indexOf('?#pdfjs.action=download');
 | 
				
			||||||
 | 
					    if (downloadHash >= 0) {
 | 
				
			||||||
 | 
					      targetUrl = targetUrl.substring(0, downloadHash);
 | 
				
			||||||
 | 
					      Services.wm.getMostRecentWindow("navigator:browser").saveURL(targetUrl);
 | 
				
			||||||
 | 
					      return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Create a new channel that is viewer loaded as a resource.
 | 
					    // Create a new channel that is viewer loaded as a resource.
 | 
				
			||||||
    var ioService = Cc['@mozilla.org/network/io-service;1']
 | 
					    var ioService = Cc['@mozilla.org/network/io-service;1']
 | 
				
			||||||
@ -79,9 +90,6 @@ pdfContentHandler.prototype = {
 | 
				
			|||||||
    // Keep the URL the same so the browser sees it as the same.
 | 
					    // Keep the URL the same so the browser sees it as the same.
 | 
				
			||||||
    channel.originalURI = aRequest.originalURI;
 | 
					    channel.originalURI = aRequest.originalURI;
 | 
				
			||||||
    channel.asyncOpen(this.listener, aContext);
 | 
					    channel.asyncOpen(this.listener, aContext);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Cancel the request so the viewer can handle it.
 | 
					 | 
				
			||||||
    aRequest.cancel(Cr.NS_BINDING_ABORTED);
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // nsIRequestObserver::onStopRequest
 | 
					  // nsIRequestObserver::onStopRequest
 | 
				
			||||||
 | 
				
			|||||||
@ -249,7 +249,14 @@ var PDFView = {
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  download: function pdfViewDownload() {
 | 
					  download: function pdfViewDownload() {
 | 
				
			||||||
    window.open(this.url + '#pdfjs.action=download', '_parent');
 | 
					    var url = this.url.split('#')[0];
 | 
				
			||||||
 | 
					    // For the extension we add an extra '?' to force the page to reload, its
 | 
				
			||||||
 | 
					    // stripped off by the extension.
 | 
				
			||||||
 | 
					    if (PDFJS.isFirefoxExtension)
 | 
				
			||||||
 | 
					      url += '?#pdfjs.action=download';
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      url += '#pdfjs.action=download', '_parent';
 | 
				
			||||||
 | 
					    window.open(url, '_parent');
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  navigateTo: function pdfViewNavigateTo(dest) {
 | 
					  navigateTo: function pdfViewNavigateTo(dest) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user