OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @fileoverview This file provides a class that can be used to open URLs based | 6 * @fileoverview This file provides a class that can be used to open URLs based |
7 * on user interactions. It ensures a consistent behavior when it comes to | 7 * on user interactions. It ensures a consistent behavior when it comes to |
8 * holding down Ctrl and Shift while clicking or activating the a link. | 8 * holding down Ctrl and Shift while clicking or activating the a link. |
9 * | 9 * |
10 * This depends on the {@code chrome.windows} and {@code chrome.tabs} | 10 * This depends on the {@code chrome.windows} and {@code chrome.tabs} |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 return this.localStrings_.getStringF('should_open_all', count); | 75 return this.localStrings_.getStringF('should_open_all', count); |
76 }, | 76 }, |
77 | 77 |
78 /** | 78 /** |
79 * Open an URL from a mouse or keyboard event. | 79 * Open an URL from a mouse or keyboard event. |
80 * @param {string} url The URL to open. | 80 * @param {string} url The URL to open. |
81 * @param {!Event} e The event triggering the opening of the URL. | 81 * @param {!Event} e The event triggering the opening of the URL. |
82 */ | 82 */ |
83 openUrlFromEvent: function(url, e) { | 83 openUrlFromEvent: function(url, e) { |
84 // We only support keydown Enter and non right click events. | 84 // We only support keydown Enter and non right click events. |
85 if (e.type == 'keydown') { | 85 if (e.type == 'keydown' && e.keyIdentifier == 'Enter' || |
86 if(e.keyIdentifier != 'Enter') | 86 e.button != 2) { |
87 return; | 87 var kind; |
88 } else if (e.type != 'click' || e.button == 2) { | 88 var ctrl = cr.isMac && e.metaKey || !cr.isMac && e.ctrlKey; |
89 return; | 89 |
| 90 if (e.button == 1 || ctrl) // middle, ctrl or keyboard |
| 91 kind = e.shiftKey ? LinkKind.FOREGROUND_TAB : LinkKind.BACKGROUND_TAB; |
| 92 else // left or keyboard |
| 93 kind = e.shiftKey ? LinkKind.WINDOW : LinkKind.SELF; |
| 94 |
| 95 this.openUrls([url], kind); |
90 } | 96 } |
91 | |
92 var kind; | |
93 var ctrl = cr.isMac && e.metaKey || !cr.isMac && e.ctrlKey; | |
94 | |
95 if (e.button == 1 || ctrl) // middle, ctrl or keyboard | |
96 kind = e.shiftKey ? LinkKind.FOREGROUND_TAB : LinkKind.BACKGROUND_TAB; | |
97 else // left or keyboard | |
98 kind = e.shiftKey ? LinkKind.WINDOW : LinkKind.SELF; | |
99 | |
100 this.openUrls([url], kind); | |
101 }, | 97 }, |
102 | 98 |
103 | 99 |
104 /** | 100 /** |
105 * Opens a URL in a new tab, window or incognito window. | 101 * Opens a URL in a new tab, window or incognito window. |
106 * @param {string} url The URL to open. | 102 * @param {string} url The URL to open. |
107 * @param {LinkKind} kind The kind of open we want to do. | 103 * @param {LinkKind} kind The kind of open we want to do. |
108 */ | 104 */ |
109 openUrl: function (url, kind) { | 105 openUrl: function (url, kind) { |
110 this.openUrls([url], kind); | 106 this.openUrls([url], kind); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 } | 146 } |
151 } | 147 } |
152 }; | 148 }; |
153 | 149 |
154 // Export | 150 // Export |
155 return { | 151 return { |
156 LinkController: LinkController, | 152 LinkController: LinkController, |
157 LinkKind: LinkKind | 153 LinkKind: LinkKind |
158 }; | 154 }; |
159 }); | 155 }); |
OLD | NEW |