Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2460)

Unified Diff: chrome/browser/resources/pdf/pdf.js

Issue 2300243004: Links in PDF should open in a new window when shift + left clicked. (Closed)
Patch Set: Links in PDF should open in a new window when shift + left clicked. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/pdf/pdf.js
diff --git a/chrome/browser/resources/pdf/pdf.js b/chrome/browser/resources/pdf/pdf.js
index c7b172078d7778472af64c4fe851a35bca15b73e..7539f69d1789631ed0ee4c01d3e9f5b2d7f96dd6 100644
--- a/chrome/browser/resources/pdf/pdf.js
+++ b/chrome/browser/resources/pdf/pdf.js
@@ -70,6 +70,19 @@ function onNavigateInNewTab(url, active) {
}
/**
+ * Called when navigation happens in the new window.
+ * @param {string} url The url to be opened in the new window.
+ */
+function onNavigateInNewWindow(url) {
+ // Prefer the windows API because it guarantees we can just open a new window.
+ // window.open with '_blank' argument doesn't have this guarantee.
+ if (chrome.windows)
+ chrome.windows.create({url: url});
+ else
+ window.open(url, '_blank');
+}
+
+/**
* Whether keydown events should currently be ignored. Events are ignored when
* an editable element has focus, to allow for proper editing controls.
* @param {HTMLElement} activeElement The currently selected DOM node.
@@ -260,12 +273,14 @@ function PDFViewer(browserApi) {
var isInTab = this.browserApi_.getStreamInfo().tabId != -1;
var isSourceFileUrl = this.originalUrl_.indexOf('file://') == 0;
- this.navigator_ = new Navigator(this.originalUrl_,
- this.viewport_, this.paramsParser_,
- onNavigateInCurrentTab.bind(undefined,
- isInTab,
- isSourceFileUrl),
- onNavigateInNewTab);
+ var onNavigateCallback = {
+ currentTabCallback: onNavigateInCurrentTab.bind(undefined, isInTab,
+ isSourceFileUrl),
+ newTabCallback: onNavigateInNewTab,
+ newWindowCallback: onNavigateInNewWindow
+ };
+ this.navigator_ = new Navigator(this.originalUrl_, this.viewport_,
+ this.paramsParser_, onNavigateCallback);
raymes 2016/09/06 04:36:07 Then we could just pass in a new NavigatorDelegate
jaepark 2016/09/06 20:32:47 Done.
this.viewportScroller_ =
new ViewportScroller(this.viewport_, this.plugin_, window);

Powered by Google App Engine
This is Rietveld 408576698