| Index: Source/devtools/front_end/ExtensionServer.js
|
| diff --git a/Source/devtools/front_end/ExtensionServer.js b/Source/devtools/front_end/ExtensionServer.js
|
| index de286159b2d51a12050f80b838bdf1afc68dda18..7f3601b0e8c3812a7143e3a38627cfef1ce0291f 100644
|
| --- a/Source/devtools/front_end/ExtensionServer.js
|
| +++ b/Source/devtools/front_end/ExtensionServer.js
|
| @@ -618,20 +618,37 @@ WebInspector.ExtensionServer.prototype = {
|
| _onForwardKeyboardEvent: function(message)
|
| {
|
| const Esc = "U+001B";
|
| + message.entries.forEach(handleEventEntry);
|
|
|
| - if (!message.ctrlKey && !message.altKey && !message.metaKey && !/^F\d+$/.test(message.keyIdentifier) && message.keyIdentifier !== Esc)
|
| - return;
|
| - // Fool around closure compiler -- it has its own notion of both KeyboardEvent constructor
|
| - // and initKeyboardEvent methods and overriding these in externs.js does not have effect.
|
| - var event = new window.KeyboardEvent(message.eventType, {
|
| - keyIdentifier: message.keyIdentifier,
|
| - location: message.location,
|
| - ctrlKey: message.ctrlKey,
|
| - altKey: message.altKey,
|
| - shiftKey: message.shiftKey,
|
| - metaKey: message.metaKey
|
| - });
|
| - document.dispatchEvent(event);
|
| + function handleEventEntry(entry)
|
| + {
|
| + if (!entry.ctrlKey && !entry.altKey && !entry.metaKey && !/^F\d+$/.test(entry.keyIdentifier) && entry.keyIdentifier !== Esc)
|
| + return;
|
| + // Fool around closure compiler -- it has its own notion of both KeyboardEvent constructor
|
| + // and initKeyboardEvent methods and overriding these in externs.js does not have effect.
|
| + var event = new window.KeyboardEvent(entry.eventType, {
|
| + keyIdentifier: entry.keyIdentifier,
|
| + location: entry.location,
|
| + ctrlKey: entry.ctrlKey,
|
| + altKey: entry.altKey,
|
| + shiftKey: entry.shiftKey,
|
| + metaKey: entry.metaKey
|
| + });
|
| + event.__keyCode = keyCodeForEntry(entry);
|
| + document.dispatchEvent(event);
|
| + }
|
| +
|
| + function keyCodeForEntry(entry)
|
| + {
|
| + var keyCode = entry.keyCode;
|
| + if (!keyCode) {
|
| + // This is required only for synthetic events (e.g. dispatched in tests).
|
| + var match = entry.keyIdentifier.match(/^U\+([\dA-Fa-f]+)$/);
|
| + if (match)
|
| + keyCode = parseInt(match[1], 16);
|
| + }
|
| + return keyCode || 0;
|
| + }
|
| },
|
|
|
| _dispatchCallback: function(requestId, port, result)
|
|
|