Chromium Code Reviews| Index: chrome/browser/resources/pdf/navigator.js |
| diff --git a/chrome/browser/resources/pdf/navigator.js b/chrome/browser/resources/pdf/navigator.js |
| index 93445413df9c719c54a42ca9b065facee1c13b78..3ab4f1b758d7bfa7b98ba20c332d2c351986a48f 100644 |
| --- a/chrome/browser/resources/pdf/navigator.js |
| +++ b/chrome/browser/resources/pdf/navigator.js |
| @@ -11,21 +11,35 @@ |
| * @param {Object} paramsParser The object for URL parsing. |
| * @param {Function} navigateInCurrentTabCallback The Callback function that |
| * gets called when navigation happens in the current tab. |
| - * @param {Function} navigateInNewBackgroundTabCallback The Callback function |
| - * that gets called when navigation happens in the new background tab. |
| + * @param {Function} navigateInNewTabCallback The Callback function |
| + * that gets called when navigation happens in the new tab. |
| */ |
| function Navigator(originalUrl, |
| viewport, |
| paramsParser, |
| navigateInCurrentTabCallback, |
| - navigateInNewBackgroundTabCallback) { |
| + navigateInNewTabCallback) { |
| this.originalUrl_ = originalUrl; |
| this.viewport_ = viewport; |
| this.paramsParser_ = paramsParser; |
| this.navigateInCurrentTabCallback_ = navigateInCurrentTabCallback; |
| - this.navigateInNewBackgroundTabCallback_ = navigateInNewBackgroundTabCallback; |
| + this.navigateInNewTabCallback_ = navigateInNewTabCallback; |
| } |
| +/** |
| + * Represents options when navigating to a new url. C++ counterpart of |
| + * the enum is in ui/base/window_open_disposition.h. This enum represents |
| + * the only values that are passed from Plugin. |
| + * @enum {number} |
| + */ |
| +Navigator.WindowOpenDisposition = { |
| + CURRENT_TAB: 1, |
| + NEW_FOREGROUND_TAB: 3, |
| + NEW_BACKGROUND_TAB: 4, |
| + NEW_WINDOW: 6, |
| + SAVE_TO_DISK: 7 |
| +}; |
| + |
| Navigator.prototype = { |
| /** |
| * @private |
| @@ -35,7 +49,7 @@ Navigator.prototype = { |
| * @param {boolean} newTab Whether to perform the navigation in a new tab or |
| * in the current tab. |
| */ |
| - navigate: function(url, newTab) { |
| + navigate: function(url, disposition) { |
| if (url.length == 0) |
| return; |
| @@ -58,11 +72,25 @@ Navigator.prototype = { |
| if (!this.isValidUrl_(url)) |
| return; |
| - if (newTab) { |
| - this.navigateInNewBackgroundTabCallback_(url); |
| - } else { |
| - this.paramsParser_.getViewportFromUrlParams( |
| - url, this.onViewportReceived_.bind(this)); |
| + switch (disposition) { |
| + case Navigator.WindowOpenDisposition.CURRENT_TAB: |
| + // TODO (jaepark): It should navigate in a new window when |
|
Lei Zhang
2016/07/23 00:39:38
It's weird that the first two cases fall through t
jaepark
2016/07/23 03:52:30
Done. I've changed it not to fall through in each
|
| + // shift + left clicking link in PDFs. See http://crbug.com/628057. |
| + case Navigator.WindowOpenDisposition.NEW_WINDOW: |
| + // TODO (jaepark) : Alt + left clicking link in PDFs should |
| + // donwload the link. |
| + case Navigator.WindowOpenDisposition.SAVE_TO_DISK: |
| + this.paramsParser_.getViewportFromUrlParams( |
| + url, this.onViewportReceived_.bind(this)); |
| + break; |
| + case Navigator.WindowOpenDisposition.NEW_BACKGROUND_TAB: |
| + this.navigateInNewTabCallback_(url, false); |
| + break; |
| + case Navigator.WindowOpenDisposition.NEW_FOREGROUND_TAB: |
| + this.navigateInNewTabCallback_(url, true); |
| + break; |
| + default: |
| + break; |
| } |
| }, |