- Electron version: 1.4.0
- Operating system: OS X 10.10.5

I've been using the following code to send Tab key events to a webview in my project:

``` js
const webContents = webView.getWebContents();
const keyEvent = {
  type: 'keyDown',
  keyCode: 'Tab'
};

webContents.sendInputEvent(keyEvent);
```

I have had no issues with this until the recent update to 1.4.0.

The last version the above code works in OS X is **1.3.7**. I've tried this with the latest versions of Electron (1.4.1 & 1.4.2) with the same results.

Am I doing something wrong here? Is this a known issue?

atom/common/native_mate_converters/blink_converter.cc
mate::Dictionary dict;
  if (!ConvertFromV8(isolate, val, &dict))
    return false;
  if (!ConvertFromV8(isolate, val, static_cast<blink::WebInputEvent*>(out)))
    return false;
  std::string str;
  bool shifted = false;
  if (dict.Get("keyCode", &str))
    out->windowsKeyCode = atom::KeyboardCodeFromStr(str, &shifted);
  else
    return false;
  if (shifted)
    out->modifiers |= blink::WebInputEvent::ShiftKey;
  out->setKeyIdentifierFromWindowsKeyCode();
  if ((out->type == blink::WebInputEvent::Char ||
       out->type == blink::WebInputEvent::RawKeyDown)) {
    
    
    size_t text_length_cap = blink::WebKeyboardEvent::textLengthCap;
    base::string16 text16 = base::UTF8ToUTF16(str);
    memset(out->text, 0, text_length_cap);
    memset(out->unmodifiedText, 0, text_length_cap);
    for (size_t i = 0; i < std::min(text_length_cap, text16.size()); ++i) {
      out->text[i] = text16[i];
      out->unmodifiedText[i] = text16[i];
    }
  }
  return true;
}
bool Converter<content::NativeWebKeyboardEvent>::FromV8(