| Index: chrome/browser/resources/pdf/pdf.js
|
| diff --git a/chrome/browser/resources/pdf/pdf.js b/chrome/browser/resources/pdf/pdf.js
|
| index c8753e14a6207dca698cd16144c70cb57dba82f9..4ea2bf1dde3c694cd2e98701b4ba674d92205fbb 100644
|
| --- a/chrome/browser/resources/pdf/pdf.js
|
| +++ b/chrome/browser/resources/pdf/pdf.js
|
| @@ -41,13 +41,14 @@ function getFilenameFromURL(url) {
|
|
|
| /**
|
| * Called when navigation happens in the current tab.
|
| + * @param {int} tabId The id of the current tab; -1 if no current tab.
|
| * @param {string} url The url to be opened in the current tab.
|
| */
|
| -function onNavigateInCurrentTab(url) {
|
| - // Prefer the tabs API because it can navigate from one file:// URL to
|
| - // another.
|
| - if (chrome.tabs)
|
| - chrome.tabs.update({url: url});
|
| +function onNavigateInCurrentTab(tabId, url) {
|
| + // When the PDFviewer is not inside a <webview>, prefer the tabs API because
|
| + // it can navigate from one file:// URL to another.
|
| + if (chrome.tabs && tabId != -1)
|
| + chrome.tabs.update(tabId, {url: url});
|
| else
|
| window.location.href = url;
|
| }
|
| @@ -247,12 +248,18 @@ function PDFViewer(browserApi) {
|
| document.addEventListener('keydown', this.handleKeyEvent_.bind(this));
|
| document.addEventListener('mousemove', this.handleMouseEvent_.bind(this));
|
|
|
| + var onNavigateBoundToCurrentTab = function(url) {
|
| + var tabId = this.browserApi_ ? this.browserApi.getStreamInfo().tabId : -1;
|
| + onNavigateInCurrentTab(tabId, url);
|
| + };
|
| +
|
| // Parse open pdf parameters.
|
| this.paramsParser_ =
|
| new OpenPDFParamsParser(this.getNamedDestination_.bind(this));
|
| this.navigator_ = new Navigator(this.browserApi_.getStreamInfo().originalUrl,
|
| this.viewport_, this.paramsParser_,
|
| - onNavigateInCurrentTab, onNavigateInNewTab);
|
| + onNavigateBoundToCurrentTab,
|
| + onNavigateInNewTab);
|
| this.viewportScroller_ =
|
| new ViewportScroller(this.viewport_, this.plugin_, window);
|
| }
|
|
|