
* 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::Isolate* isolate,
    const base::ListValue& list) {
  v8::Local<v8::Value> array = mate::ConvertToV8(isolate, list);
  std::vector<v8::Local<v8::Value>> result;
  mate::ConvertFromV8(isolate, array, &result);
  return result;
}
base::StringPiece NetResourceProvider(int key) {
  if (key == IDR_DIR_HEADER_HTML) {
    base::StringPiece html_data =
        ui::ResourceBundle::GetSharedInstance().GetRawDataResource(
            IDR_DIR_HEADER_HTML);
    return html_data;
  }
  return base::StringPiece();
}
}  
AtomRenderViewObserver::AtomRenderViewObserver(
    content::RenderView* render_view,
    AtomRendererClient* renderer_client)
    : content::RenderViewObserver(render_view),
      document_created_(false) {
  
  net::NetModule::SetResourceProvider(NetResourceProvider);
}
AtomRenderViewObserver::~AtomRenderViewObserver() {