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

Unified Diff: chrome/browser/resources/extensions/extension_command_list.js

Issue 23523019: Enable user assign media keys in chrome://extensions page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/extensions/extension_command_list.js
diff --git a/chrome/browser/resources/extensions/extension_command_list.js b/chrome/browser/resources/extensions/extension_command_list.js
index d730c9d841ec054f19677f88cb94b7f68d70397b..0cec00516fe88ecfff57ca74bac451112ad2301c 100644
--- a/chrome/browser/resources/extensions/extension_command_list.js
+++ b/chrome/browser/resources/extensions/extension_command_list.js
@@ -26,6 +26,10 @@ cr.define('options', function() {
/** @const */ var keyRight = 39;
/** @const */ var keyTab = 9;
/** @const */ var keyUp = 38;
+ /** @const */ var keyMediaNextTrack = 176;
+ /** @const */ var keyMediaPrevTrack = 177;
+ /** @const */ var keyMediaStop = 178;
+ /** @const */ var keyMediaPlayPause = 179;
Finnur 2013/09/04 11:28:12 The list is alphabetical so this should not be at
zhchbin 2013/09/04 12:50:03 Done.
/**
* Returns whether the passed in |keyCode| is a valid extension command
@@ -48,6 +52,10 @@ cr.define('options', function() {
keyCode == keyRight ||
keyCode == keyTab ||
keyCode == keyUp ||
+ keyCode == keyMediaNextTrack ||
+ keyCode == keyMediaPrevTrack ||
+ keyCode == keyMediaStop ||
+ keyCode == keyMediaPlayPause ||
Finnur 2013/09/04 11:28:12 Same here.
zhchbin 2013/09/04 12:50:03 Done.
(keyCode >= 'A'.charCodeAt(0) && keyCode <= 'Z'.charCodeAt(0)) ||
(keyCode >= '0'.charCodeAt(0) && keyCode <= '9'.charCodeAt(0));
}
@@ -102,6 +110,14 @@ cr.define('options', function() {
output += 'Tab'; break;
case keyUp:
output += 'Up'; break;
+ case keyMediaNextTrack:
+ output += 'MediaNextTrack'; break;
+ case keyMediaPrevTrack:
+ output += 'MediaPrevTrack'; break;
+ case keyMediaStop:
+ output += 'MediaStop'; break;
+ case keyMediaPlayPause:
+ output += 'MediaPlayPause'; break;
Finnur 2013/09/04 11:28:12 Same here.
zhchbin 2013/09/04 12:50:03 Done.
}
}
}
@@ -109,6 +125,20 @@ cr.define('options', function() {
return output;
}
+ /**
+ * Returns whether the passed in |keyCode| is a keycode of media key. This is
+ * restricted to 'MediaNextTrack', 'MediaPrevTrack', 'MediaStop',
+ * 'MediaPlayPause' at the moment.
+ * @param {int} keyCode The keycode to consider.
+ * @return {boolean} Returns whether the keycode is media key.
+ */
+ function isMediaKey(keyCode) {
Finnur 2013/09/04 11:28:12 I'd like to make this function a bit more general,
zhchbin 2013/09/04 12:50:03 Done with using a enum: /** * Enum for wheth
+ return keyCode == keyMediaNextTrack ||
+ keyCode == keyMediaPrevTrack ||
+ keyCode == keyMediaStop ||
+ keyCode == keyMediaPlayPause;
+ }
+
ExtensionCommandList.prototype = {
__proto__: HTMLDivElement.prototype,
@@ -323,8 +353,18 @@ cr.define('options', function() {
event.preventDefault();
event.stopPropagation();
- if (!event.ctrlKey && !event.altKey && (!cr.isMac || !event.metaKey))
- return; // Ctrl or Alt is a must (or Cmd on Mac).
+ if (!event.ctrlKey && !event.altKey && (!cr.isMac || !event.metaKey) &&
+ !isMediaKey(event.keyCode)) {
+ // Ctrl or Alt is a must (or Cmd on Mac), except for Media Keys.
+ return;
+ }
+
+ // Modifiers can not be used in combination with the Media Keys.
+ if (isMediaKey(event.keyCode)) {
+ if (event.ctrlKey || event.altKey || (cr.isMac && event.metaKey) ||
+ event.shiftKey)
+ return;
+ }
Finnur 2013/09/04 11:28:12 I think this is a bit more readable: function has
zhchbin 2013/09/04 12:50:03 Done with still using a boolean for countShiftAsMo
var shortcutNode = this.capturingElement_;
var keystroke = keystrokeToString(event);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698