Index: Source/devtools/front_end/ExtensionAPI.js |
diff --git a/Source/devtools/front_end/ExtensionAPI.js b/Source/devtools/front_end/ExtensionAPI.js |
index c1dbe125cf6dbaed2e10d6dc982177efe3f40e3b..3a239627ad776657451060fd28df00a6dba0ec8e 100644 |
--- a/Source/devtools/front_end/ExtensionAPI.js |
+++ b/Source/devtools/front_end/ExtensionAPI.js |
@@ -845,22 +845,38 @@ function TimelineImpl() |
this.onEventRecorded = new EventSink(events.TimelineEventRecorded); |
} |
+var keyboardEventRequestQueue = []; |
+var forwardTimer = null; |
+ |
function forwardKeyboardEvent(event) |
{ |
const Esc = "U+001B"; |
// We only care about global hotkeys, not about random text |
if (!event.ctrlKey && !event.altKey && !event.metaKey && !/^F\d+$/.test(event.keyIdentifier) && event.keyIdentifier !== Esc) |
return; |
- var request = { |
- command: commands.ForwardKeyboardEvent, |
+ var requestPayload = { |
eventType: event.type, |
ctrlKey: event.ctrlKey, |
altKey: event.altKey, |
metaKey: event.metaKey, |
keyIdentifier: event.keyIdentifier, |
- location: event.location |
+ location: event.location, |
+ keyCode: event.keyCode |
+ }; |
+ keyboardEventRequestQueue.push(requestPayload); |
+ if (!forwardTimer) |
+ forwardTimer = setTimeout(forwardEventQueue, 0); |
+} |
+ |
+function forwardEventQueue() |
+{ |
+ forwardTimer = null; |
+ var request = { |
+ command: commands.ForwardKeyboardEvent, |
+ entries: keyboardEventRequestQueue |
}; |
extensionServer.sendRequest(request); |
+ keyboardEventRequestQueue = []; |
} |
document.addEventListener("keydown", forwardKeyboardEvent, false); |