
* 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/common/node_bindings.cc
DCHECK(!is_browser_ || BrowserThread::CurrentlyOn(BrowserThread::UI));
  
  message_loop_ = base::MessageLoop::current();
  
  UvRunOnce();
}
void NodeBindings::UvRunOnce() {
  DCHECK(!is_browser_ || BrowserThread::CurrentlyOn(BrowserThread::UI));
  node::Environment* env = uv_env();
  
  mate::Locker locker(env->isolate());
  v8::HandleScope handle_scope(env->isolate());
  
  v8::Context::Scope context_scope(env->context());
  
  v8::MicrotasksScope script_scope(env->isolate(),
                                   v8::MicrotasksScope::kRunMicrotasks);
  
  int r = uv_run(uv_loop_, UV_RUN_NOWAIT);
  if (r == 0)
    message_loop_->QuitWhenIdle();  
  
  uv_sem_post(&embed_sem_);
}
void NodeBindings::WakeupMainThread() {