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

Unified Diff: chrome/renderer/resources/extensions/input.ime_custom_bindings.js

Issue 10736024: Revert 146038 as it might have broken chromeos browser_tests - Make eventArgumentMassagers asynchro… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 5 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/renderer/resources/extensions/input.ime_custom_bindings.js
===================================================================
--- chrome/renderer/resources/extensions/input.ime_custom_bindings.js (revision 146077)
+++ chrome/renderer/resources/extensions/input.ime_custom_bindings.js (working copy)
@@ -8,16 +8,29 @@
var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
chromeHidden.registerCustomHook('input.ime', function() {
- chrome.input.ime.onKeyEvent.dispatchToListener = function(callback, args) {
- var engineID = args[0];
- var keyData = args[1];
-
- var result = false;
- try {
- result = chrome.Event.prototype.dispatchToListener(callback, args);
- } catch (e) {
- console.error('Error in event handler for onKeyEvent: ' + e.stack);
+ chrome.input.ime.onKeyEvent.dispatch = function(engineID, keyData) {
+ var args = Array.prototype.slice.call(arguments);
+ if (this.validate_) {
+ var validationErrors = this.validate_(args);
+ if (validationErrors) {
+ chrome.input.ime.eventHandled(requestId, false);
+ return validationErrors;
+ }
}
- chrome.input.ime.eventHandled(keyData.requestId, result);
+ if (this.listeners_.length > 1) {
+ console.error('Too many listeners for onKeyEvent: ' + e.stack);
+ chrome.input.ime.eventHandled(requestId, false);
+ return;
+ }
+ for (var i = 0; i < this.listeners_.length; i++) {
+ try {
+ var requestId = keyData.requestId;
+ var result = this.listeners_[i].callback.apply(null, args);
+ chrome.input.ime.eventHandled(requestId, result);
+ } catch (e) {
+ console.error('Error in event handler for onKeyEvent: ' + e.stack);
+ chrome.input.ime.eventHandled(requestId, false);
+ }
+ }
};
});

Powered by Google App Engine
This is Rietveld 408576698