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); |
} |