
* 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
embed_closed_ = true;
  uv_sem_post(&embed_sem_);
  WakeupEmbedThread();
  
  uv_thread_join(&embed_thread_);
  
  uv_sem_destroy(&embed_sem_);
}
void NodeBindings::Initialize() {
  
  node::g_standalone_mode = is_browser_;
  node::g_upstream_node_mode = false;
#if defined(OS_LINUX)
  
  if (!is_browser_)
    AtomCommandLine::InitializeFromCommandLine();
#endif
  
  
  node::Init(nullptr, nullptr, nullptr, nullptr);
#if defined(OS_WIN)
  
  
  std::unique_ptr<base::Environment> env(base::Environment::Create());
  if (is_browser_ || env->HasVar("ELECTRON_DEFAULT_ERROR_MODE"))
    SetErrorMode(GetErrorMode() & ~SEM_NOGPFAULTERRORBOX);
#endif
}
node::Environment* NodeBindings::CreateEnvironment(