In old days sending sync message to browser process requires pumping
message loop in the renderer process, but now in Chrome 47 it is not
true anymore. And even when we do it, the Send method may fail
sometimes, so this change seems to be required for the Chrome 47
upgrade.
IPC::SyncMessage* message = new AtomViewHostMsg_Message_Sync(
render_view->GetRoutingID(), channel, arguments, &json);
- // Enable the UI thread in browser to receive messages.
- message->EnableMessagePumping();
bool success = render_view->Send(message);
if (!success)
# Created by init.coffee.
ipcRenderer = v8Util.getHiddenValue global, 'ipc'
-# Delay the callback to next tick in case the browser is still in the middle
-# of sending a message while the callback sends a sync message to browser,
-# which can fail sometimes.
-ipcRenderer.emit = (args...) ->
- setTimeout (-> EventEmitter::emit.call ipcRenderer, args...), 0
-
ipcRenderer.send = (args...) ->
binding.send 'ipc-message', [args...]