Index: chrome/browser/resources/pdf/pdf.js |
diff --git a/chrome/browser/resources/pdf/pdf.js b/chrome/browser/resources/pdf/pdf.js |
index 1e6938f374b5699ba2ae158649902e5addbe85db..5a24a6b384380b89bb0df1d33bb5a30298ec173a 100644 |
--- a/chrome/browser/resources/pdf/pdf.js |
+++ b/chrome/browser/resources/pdf/pdf.js |
@@ -70,39 +70,46 @@ function PDFViewer() { |
// background page and stream details object with the details of the request. |
// Otherwise, we take the query string of the URL to indicate the URL of the |
// PDF to load. This is used for print preview in particular. |
- var streamDetails; |
if (chrome.extension.getBackgroundPage && |
chrome.extension.getBackgroundPage()) { |
- streamDetails = chrome.extension.getBackgroundPage().popStreamDetails(); |
+ this.streamDetails = |
+ chrome.extension.getBackgroundPage().popStreamDetails(); |
} |
- if (!streamDetails) { |
+ if (!this.streamDetails) { |
// The URL of this page will be of the form |
// "chrome-extension://<extension id>?<pdf url>". We pull out the <pdf url> |
// part here. |
var url = window.location.search.substring(1); |
- streamDetails = { |
+ this.streamDetails = { |
streamUrl: url, |
- originalUrl: url |
+ originalUrl: url, |
+ responseHeaders: '' |
}; |
} |
- this.plugin_.setAttribute('src', streamDetails.streamUrl); |
+ this.plugin_.setAttribute('src', this.streamDetails.originalUrl); |
+ this.plugin_.setAttribute('stream-url', this.streamDetails.streamUrl); |
+ var headers = ''; |
+ for (var header in this.streamDetails.responseHeaders) { |
+ headers += header + ': ' + |
Lei Zhang
2014/05/22 00:13:20
Are we likely to run into any parsing problems wit
|
+ this.streamDetails.responseHeaders[header] + '\n'; |
+ } |
+ this.plugin_.setAttribute('headers', headers); |
+ |
if (window.top == window) |
this.plugin_.setAttribute('full-frame', ''); |
document.body.appendChild(this.plugin_); |
- this.setupEventListeners_(streamDetails); |
+ this.setupEventListeners_(); |
} |
PDFViewer.prototype = { |
/** |
* @private |
* Sets up event listeners for key shortcuts and also the UI buttons. |
- * @param {Object} streamDetails the details of the original HTTP request for |
- * the PDF. |
*/ |
- setupEventListeners_: function(streamDetails) { |
+ setupEventListeners_: function() { |
// Setup the button event listeners. |
$('fit-to-width-button').addEventListener('click', |
this.viewport_.fitToWidth.bind(this.viewport_)); |
@@ -112,7 +119,7 @@ PDFViewer.prototype = { |
this.viewport_.zoomIn.bind(this.viewport_)); |
$('zoom-out-button').addEventListener('click', |
this.viewport_.zoomOut.bind(this.viewport_)); |
- $('save-button-link').href = streamDetails.originalUrl; |
+ $('save-button-link').href = this.streamDetails.originalUrl; |
$('print-button').addEventListener('click', this.print_.bind(this)); |
// Setup keyboard event listeners. |
@@ -287,6 +294,9 @@ PDFViewer.prototype = { |
this.progressBar_.text = message.data.loadingString; |
this.errorScreen_.text = message.data.loadFailedString; |
break; |
+ case 'cancelStreamUrl': |
+ chrome.streamsPrivate.abort(this.streamDetails.streamUrl); |
+ break; |
} |
}, |