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

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

Issue 11644009: Added support for passing WindowOpenDisposition into BrowserInstantController::OpenURL() from the o… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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
« no previous file with comments | « chrome/browser/instant/instant_page.cc ('k') | chrome/browser/ui/browser_instant_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/local_omnibox_popup/local_omnibox_popup.js
diff --git a/chrome/browser/resources/local_omnibox_popup/local_omnibox_popup.js b/chrome/browser/resources/local_omnibox_popup/local_omnibox_popup.js
index c80c0aa1e75e1be1e8177fa8b30a67d080b7dff4..2a0c81a096f55489f3de00a6c1d3785b14d6e337 100644
--- a/chrome/browser/resources/local_omnibox_popup/local_omnibox_popup.js
+++ b/chrome/browser/resources/local_omnibox_popup/local_omnibox_popup.js
@@ -2,6 +2,31 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+/**
+ * @fileoverview Support for omnibox behavior in offline mode or when API
+ * features are not supported on the server.
+ */
+
+// ==========================================================
+// Enums.
+// ==========================================================
+
+/**
+ * Possible behaviors for navigateContentWindow.
+ * @enum {number}
+ */
+var WindowOpenDisposition = {
+ CURRENT_TAB: 1,
+ NEW_BACKGROUND_TAB: 2
+};
+
+/**
+ * The JavaScript button event value for a middle click.
+ * @type {number}
+ * @const
+ */
+var MIDDLE_MOUSE_BUTTON = 1;
+
// =============================================================================
// Util functions
// =============================================================================
@@ -53,8 +78,8 @@ function addSuggestionToBox(suggestion, box, select) {
contentsContainer.appendChild(contents);
suggestionDiv.appendChild(contentsContainer);
var restrictedId = suggestion.rid;
- suggestionDiv.onclick = function() {
- handleSuggestionClick(restrictedId);
+ suggestionDiv.onclick = function(event) {
+ handleSuggestionClick(restrictedId, event);
};
restrictedIds.push(restrictedId);
@@ -193,13 +218,27 @@ function appendSuggestionStyles() {
}
/**
+ * Extract the desired navigation behavior from a click event.
+ * @param {Event} event The click event.
+ * @return {WindowOpenDisposition} The desired behavior for
+ * navigateContentWindow.
+ */
+function getDispositionFromClick(event) {
+ if (event.button == MIDDLE_MOUSE_BUTTON)
+ return WindowOpenDisposition.NEW_BACKGROUND_TAB;
+ return WindowOpenDisposition.CURRENT_TAB;
+}
+
+/**
* Handles suggestion clicks.
* @param {integer} restrictedId The restricted id of the suggestion being
* clicked.
+ * @param {Event} event The click event.
*/
-function handleSuggestionClick(restrictedId) {
+function handleSuggestionClick(restrictedId, event) {
clearSuggestions();
- getApiObjectHandle().navigateContentWindow(restrictedId);
+ getApiObjectHandle().navigateContentWindow(restrictedId,
+ getDispositionFromClick(event));
}
/**
« no previous file with comments | « chrome/browser/instant/instant_page.cc ('k') | chrome/browser/ui/browser_instant_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698