Switch to a Promise-based version of DevTools interaction

This commit is contained in:
Antonio Scandurra 2015-11-24 12:21:16 +01:00
parent 9655d8184e
commit 9e931b15c3
2 changed files with 24 additions and 4 deletions

View File

@ -66,10 +66,26 @@ class ApplicationDelegate
ipc.send("call-window-method", "setFullScreen", fullScreen)
openWindowDevTools: ->
ipc.send("call-window-method", "openDevTools")
if remote.getCurrentWindow().isDevToolsOpened()
Promise.resolve()
else
new Promise (resolve) ->
remote.getCurrentWindow().once("devtools-opened", -> resolve())
ipc.send("call-window-method", "openDevTools")
closeWindowDevTools: ->
unless remote.getCurrentWindow().isDevToolsOpened()
Promise.resolve()
else
new Promise (resolve) ->
remote.getCurrentWindow().once("devtools-closed", -> resolve())
ipc.send("call-window-method", "closeDevTools")
toggleWindowDevTools: ->
ipc.send("call-window-method", "toggleDevTools")
if remote.getCurrentWindow().isDevToolsOpened()
@closeWindowDevTools()
else
@openWindowDevTools()
executeJavaScriptInWindowDevTools: (code) ->
ipc.send("call-window-method", "executeJavaScriptInDevTools", code)

View File

@ -670,8 +670,7 @@ class AtomEnvironment extends Model
@emitter.emit 'will-throw-error', eventObject
if openDevTools
@openDevTools()
@executeJavaScriptInDevTools('DevToolsAPI.showConsole()')
@openDevTools().then => @executeJavaScriptInDevTools('DevToolsAPI.showConsole()')
@emitter.emit 'did-throw-error', {message, url, line, column, originalError}
@ -721,10 +720,15 @@ class AtomEnvironment extends Model
###
# Extended: Open the dev tools for the current window.
#
# Returns a {Promise} that resolves when the DevTools have been opened.
openDevTools: ->
@applicationDelegate.openWindowDevTools()
# Extended: Toggle the visibility of the dev tools for the current window.
#
# Returns a {Promise} that resolves when the DevTools have been opened or
# closed.
toggleDevTools: ->
@applicationDelegate.toggleWindowDevTools()