Make it easier to use remote

This commit is contained in:
Cheng Zhao 2015-11-13 21:52:27 +08:00
parent e76a7f7b7d
commit 9bf0a8647e

View file

@ -134,6 +134,19 @@ ipcRenderer.on 'ATOM_RENDERER_CALLBACK', (event, id, args) ->
ipcRenderer.on 'ATOM_RENDERER_RELEASE_CALLBACK', (event, id) ->
callbacksRegistry.remove id
# List all built-in modules in browser process.
# NB(zcbenz): We should probably send an sync message to browser process to get
# them, but that would slow down the startup speed.
browserModules =
['app', 'autoUpdater', 'BrowserWindow', 'contentTracing', 'dialog',
'globalShortcut', 'ipcMain', 'Menu', 'MenuItem', 'powerMonitor',
'powerSaveBlocker', 'protocol', 'Tray', 'clipboard', 'crashReporter',
'nativeImage', 'screen', 'shell']
# And add a helper receiver for each one.
for name in browserModules
do (name) ->
Object.defineProperty exports, name, get: -> exports.getBuiltin name
# Get remote module.
# (Just like node's require, the modules are cached permanently, note that this
# is safe leak since the object is not expected to get freed in browser)