Chromium Code Reviews| Index: chrome/browser/resources/pdf/pdf.js |
| diff --git a/chrome/browser/resources/pdf/pdf.js b/chrome/browser/resources/pdf/pdf.js |
| index cb4c9ac9912d5810841fc39e690339208cc8a7f1..0c2ba1fce9eb7a24cb96f15e9371f6ae229a643b 100644 |
| --- a/chrome/browser/resources/pdf/pdf.js |
| +++ b/chrome/browser/resources/pdf/pdf.js |
| @@ -141,6 +141,7 @@ function PDFViewer(streamDetails) { |
| // Parse open pdf parameters. |
| this.paramsParser_ = new OpenPDFParamsParser(); |
| + this.navigator_ = new Navigator(); |
| } |
| PDFViewer.prototype = { |
| @@ -347,68 +348,6 @@ PDFViewer.prototype = { |
| /** |
| * @private |
| - * Helper function to navigate to given URL. This might involve navigating |
| - * within the PDF page or opening a new url (in the same tab or a new tab). |
| - * @param {string} url The URL to navigate to. |
| - * @param {boolean} newTab Whether to perform the navigation in a new tab or |
| - * in the current tab. |
| - */ |
| - navigate_: function(url, newTab) { |
| - if (url.length == 0) |
| - return; |
| - var originalUrl = this.streamDetails_.originalUrl; |
| - // If |urlFragment| starts with '#', then it's for the same URL with a |
| - // different URL fragment. |
| - if (url.charAt(0) == '#') { |
| - // if '#' is already present in |originalUrl| then remove old fragment |
| - // and add new url fragment. |
| - var hashIndex = originalUrl.search('#'); |
| - if (hashIndex != -1) |
| - url = originalUrl.substring(0, hashIndex) + url; |
| - else |
| - url = originalUrl + url; |
| - } |
| - |
| - // If there's no scheme, add http. |
| - if (url.indexOf('://') == -1 && url.indexOf('mailto:') == -1) |
| - url = 'http://' + url; |
| - |
| - // Make sure url starts with a valid scheme. |
| - if (url.indexOf('http://') != 0 && |
| - url.indexOf('https://') != 0 && |
| - url.indexOf('ftp://') != 0 && |
| - url.indexOf('file://') != 0 && |
| - url.indexOf('mailto:') != 0) { |
| - return; |
| - } |
| - // Make sure url is not only a scheme. |
| - if (url == 'http://' || |
| - url == 'https://' || |
| - url == 'ftp://' || |
| - url == 'file://' || |
| - url == 'mailto:') { |
| - return; |
| - } |
| - |
| - if (newTab) { |
| - // Prefer the tabs API because it guarantees we can just open a new tab. |
| - // window.open doesn't have this guarantee. |
| - if (chrome.tabs) |
| - chrome.tabs.create({ url: url }); |
| - else |
| - window.open(url); |
| - } else { |
| - var pageNumber = |
| - this.paramsParser_.getViewportFromUrlParams(url).page; |
| - if (pageNumber != undefined) |
| - this.viewport_.goToPage(pageNumber); |
| - else |
| - window.location.href = url; |
| - } |
| - }, |
| - |
| - /** |
| - * @private |
| * An event handler for handling message events received from the plugin. |
| * @param {MessageObject} message a message event. |
| */ |
| @@ -453,10 +392,12 @@ PDFViewer.prototype = { |
| break; |
| case 'navigate': |
| // If in print preview, always open a new tab. |
| - if (this.isPrintPreview_) |
| + if (this.isPrintPreview_) { |
| this.navigate_(message.data.url, true); |
| - else |
| - this.navigate_(message.data.url, message.data.newTab); |
| + } else { |
| + this.navigator_.navigate(message.data.url, message.data.newTab, |
| + this.streamDetails_.originalUrl, this.viewport_, this.paramsParser_); |
|
raymes
2015/01/21 07:03:44
Can you please pass in the original URL, viewport
Deepak
2015/01/21 08:33:41
Done.
|
| + } |
| break; |
| case 'setNamedDestinations': |
| this.paramsParser_.namedDestinations = message.data.namedDestinations; |