Merge pull request #3833 from atom/no-renderer-pump
Don't pump message loop when sending sync msg
This commit is contained in:
commit
b7cbc49c01
3 changed files with 4 additions and 12 deletions
|
@ -54,8 +54,6 @@ base::string16 SendSync(mate::Arguments* args,
|
||||||
|
|
||||||
IPC::SyncMessage* message = new AtomViewHostMsg_Message_Sync(
|
IPC::SyncMessage* message = new AtomViewHostMsg_Message_Sync(
|
||||||
render_view->GetRoutingID(), channel, arguments, &json);
|
render_view->GetRoutingID(), channel, arguments, &json);
|
||||||
// Enable the UI thread in browser to receive messages.
|
|
||||||
message->EnableMessagePumping();
|
|
||||||
bool success = render_view->Send(message);
|
bool success = render_view->Send(message);
|
||||||
|
|
||||||
if (!success)
|
if (!success)
|
||||||
|
|
|
@ -6,12 +6,6 @@ v8Util = process.atomBinding 'v8_util'
|
||||||
# Created by init.coffee.
|
# Created by init.coffee.
|
||||||
ipcRenderer = v8Util.getHiddenValue global, 'ipc'
|
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...) ->
|
ipcRenderer.send = (args...) ->
|
||||||
binding.send 'ipc-message', [args...]
|
binding.send 'ipc-message', [args...]
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,9 @@ convertToMenuTemplate = (items) ->
|
||||||
label: item.label
|
label: item.label
|
||||||
enabled: item.enabled
|
enabled: item.enabled
|
||||||
if item.id?
|
if item.id?
|
||||||
transformed.click = -> DevToolsAPI.contextMenuItemSelected item.id
|
transformed.click = ->
|
||||||
|
DevToolsAPI.contextMenuItemSelected item.id
|
||||||
|
DevToolsAPI.contextMenuCleared()
|
||||||
template.push transformed
|
template.push transformed
|
||||||
template
|
template
|
||||||
|
|
||||||
|
@ -37,9 +39,7 @@ createMenu = (x, y, items, document) ->
|
||||||
|
|
||||||
menu = Menu.buildFromTemplate convertToMenuTemplate(items)
|
menu = Menu.buildFromTemplate convertToMenuTemplate(items)
|
||||||
# The menu is expected to show asynchronously.
|
# The menu is expected to show asynchronously.
|
||||||
setImmediate ->
|
setTimeout -> menu.popup remote.getCurrentWindow()
|
||||||
menu.popup remote.getCurrentWindow()
|
|
||||||
DevToolsAPI.contextMenuCleared()
|
|
||||||
|
|
||||||
showFileChooserDialog = (callback) ->
|
showFileChooserDialog = (callback) ->
|
||||||
{remote} = require 'electron'
|
{remote} = require 'electron'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue