| Index: content/browser/devtools/protocol/input_handler.cc
 | 
| diff --git a/content/browser/devtools/protocol/input_handler.cc b/content/browser/devtools/protocol/input_handler.cc
 | 
| index 55a3c74346905f73131870d0f69a22a4c6d2f874..610b71cd3390c4d0cf403ba2afe5e3f1ae713c3b 100644
 | 
| --- a/content/browser/devtools/protocol/input_handler.cc
 | 
| +++ b/content/browser/devtools/protocol/input_handler.cc
 | 
| @@ -177,6 +177,17 @@ Response InputHandler::DispatchKeyEvent(
 | 
|    if (!SetKeyboardEventText(event.unmodifiedText, unmodified_text))
 | 
|      return Response::InvalidParams("Invalid 'unmodifiedText' parameter");
 | 
|  
 | 
| +  if (windows_virtual_key_code)
 | 
| +    event.windowsKeyCode = *windows_virtual_key_code;
 | 
| +  if (native_virtual_key_code)
 | 
| +    event.nativeKeyCode = *native_virtual_key_code;
 | 
| +  if (auto_repeat && *auto_repeat)
 | 
| +    event.modifiers |= blink::WebInputEvent::IsAutoRepeat;
 | 
| +  if (is_keypad && *is_keypad)
 | 
| +    event.modifiers |= blink::WebInputEvent::IsKeyPad;
 | 
| +  if (is_system_key)
 | 
| +    event.isSystemKey = *is_system_key;
 | 
| +
 | 
|    if (key_identifier) {
 | 
|      if (key_identifier->size() >
 | 
|          blink::WebKeyboardEvent::keyIdentifierLengthCap) {
 | 
| @@ -184,6 +195,8 @@ Response InputHandler::DispatchKeyEvent(
 | 
|      }
 | 
|      for (size_t i = 0; i < key_identifier->size(); ++i)
 | 
|        event.keyIdentifier[i] = (*key_identifier)[i];
 | 
| +  } else if (event.type != blink::WebInputEvent::Char) {
 | 
| +    event.setKeyIdentifierFromWindowsKeyCode();
 | 
|    }
 | 
|  
 | 
|    if (code) {
 | 
| @@ -191,17 +204,6 @@ Response InputHandler::DispatchKeyEvent(
 | 
|          ui::KeycodeConverter::CodeStringToDomCode(code->c_str()));
 | 
|    }
 | 
|  
 | 
| -  if (windows_virtual_key_code)
 | 
| -    event.windowsKeyCode = *windows_virtual_key_code;
 | 
| -  if (native_virtual_key_code)
 | 
| -    event.nativeKeyCode = *native_virtual_key_code;
 | 
| -  if (auto_repeat && *auto_repeat)
 | 
| -    event.modifiers |= blink::WebInputEvent::IsAutoRepeat;
 | 
| -  if (is_keypad && *is_keypad)
 | 
| -    event.modifiers |= blink::WebInputEvent::IsKeyPad;
 | 
| -  if (is_system_key)
 | 
| -    event.isSystemKey = *is_system_key;
 | 
| -
 | 
|    if (!host_)
 | 
|      return Response::ServerError("Could not connect to view");
 | 
|  
 | 
| 
 |