
* Electron version: 1.4.6
* Operating system: macOS Sierra

### Expected behavior

Callbacks executed from `ipcRenderer.on` or `setImmediate` will be recorded in devtool timeline

### Actual behavior

Callbacks on `ipcRenderer.on` or `setImmediate` not recorded
(Callbacks on `setTimeout` are recorded normally)

### How to reproduce

This is a simple example that do some heavy task in `ipcRenderer.on` callback:
https://github.com/seanchas116/electron-testings/tree/master/timeline-ipc
atom/renderer/atom_render_view_observer.cc
v8::Local<v8::Context> context,
                  v8::Local<v8::Object>* ipc) {
  v8::Local<v8::String> key = mate::StringToV8(isolate, "ipc");
  v8::Local<v8::Private> privateKey = v8::Private::ForApi(isolate, key);
  v8::Local<v8::Object> global_object = context->Global();
  v8::Local<v8::Value> value;
  if (!global_object->GetPrivate(context, privateKey).ToLocal(&value))
    return false;
  if (value.IsEmpty() || !value->IsObject())
    return false;
  *ipc = value->ToObject();
  return true;
}
std::vector<v8::Local<v8::Value>> ListValueToVector(