diff --git a/benchmark/benchmark-helper.coffee b/benchmark/benchmark-helper.coffee index 9ccb4dfb2..f06dc97d2 100644 --- a/benchmark/benchmark-helper.coffee +++ b/benchmark/benchmark-helper.coffee @@ -23,7 +23,7 @@ keymap.bindKeys '*', 'meta-w': 'close' 'alt-meta-i': 'show-console' $(document).on 'close', -> window.close() -$(document).on 'show-console', -> $native.showDevTools() +$(document).on 'show-console', -> atom.toggleDevTools() defaultCount = 100 window.pbenchmark = (args...) -> window.benchmark(args..., profile: true) @@ -42,7 +42,7 @@ window.benchmark = (args...) -> [fn, options] = args { profile, focused } = (options ? {}) - $native.showDevTools() if profile + atom.showDevTools() if profile method = if focused then fit else it method description, -> total = measure -> diff --git a/native/atom_cef_client.cpp b/native/atom_cef_client.cpp index 650616423..b5b90af5a 100644 --- a/native/atom_cef_client.cpp +++ b/native/atom_cef_client.cpp @@ -35,6 +35,9 @@ bool AtomCefClient::OnProcessMessageReceived(CefRefPtr browser, else if (name == "toggleDevTools") { ToggleDevTools(browser); } + else if (name == "showDevTools") { + ShowDevTools(browser); + } else if (name == "confirm") { std::string message = argumentList->GetString(1).ToString(); std::string detailedMessage = argumentList->GetString(2).ToString(); diff --git a/native/atom_cef_client.h b/native/atom_cef_client.h index 0d3e821b3..3fabf3e74 100644 --- a/native/atom_cef_client.h +++ b/native/atom_cef_client.h @@ -99,12 +99,13 @@ class AtomCefClient : public CefClient, void Open(std::string path); void Open(); void NewWindow(); + void ToggleDevTools(CefRefPtr browser); + void ShowDevTools(CefRefPtr browser); void Confirm(int replyId, std::string message, std::string detailedMessage, std::vector buttonLabels, CefRefPtr browser); - void ToggleDevTools(CefRefPtr browser); void ShowSaveDialog(int replyId, CefRefPtr browser); CefRefPtr CreateReplyDescriptor(int replyId, int callbackIndex); diff --git a/native/atom_cef_client_mac.mm b/native/atom_cef_client_mac.mm index 728ab0c6a..704e2cbf2 100644 --- a/native/atom_cef_client_mac.mm +++ b/native/atom_cef_client_mac.mm @@ -52,6 +52,11 @@ void AtomCefClient::ToggleDevTools(CefRefPtr browser) { [windowController toggleDevTools]; } +void AtomCefClient::ShowDevTools(CefRefPtr browser) { + AtomWindowController *windowController = [[browser->GetHost()->GetWindowHandle() window] windowController]; + [windowController showDevTools]; +} + void AtomCefClient::ShowSaveDialog(int replyId, CefRefPtr browser) { CefRefPtr replyMessage = CefProcessMessage::Create("reply"); CefRefPtr replyArguments = replyMessage->GetArgumentList(); diff --git a/native/atom_window_controller.h b/native/atom_window_controller.h index 921ed27c1..10391ad79 100644 --- a/native/atom_window_controller.h +++ b/native/atom_window_controller.h @@ -26,5 +26,6 @@ class AtomCefClient; - (id)initBenchmarks; - (void)toggleDevTools; +- (void)showDevTools; @end diff --git a/native/atom_window_controller.mm b/native/atom_window_controller.mm index c068b3848..d2689f58f 100644 --- a/native/atom_window_controller.mm +++ b/native/atom_window_controller.mm @@ -80,6 +80,8 @@ } - (void)showDevTools { + if (_devToolsView) return; + if (_cefClient && _cefClient->GetBrowser()) { _devToolsView = [[NSView alloc] initWithFrame:_splitView.bounds]; [_splitView addSubview:_devToolsView]; diff --git a/spec/spec-helper.coffee b/spec/spec-helper.coffee index acddcb475..223722b55 100644 --- a/spec/spec-helper.coffee +++ b/spec/spec-helper.coffee @@ -11,7 +11,7 @@ TextMateBundle = require 'text-mate-bundle' TextMateTheme = require 'text-mate-theme' fs = require 'fs' require 'window' -$native.showDevTools() +atom.showDevTools() requireStylesheet "jasmine.css" TextMateBundle.loadAll() diff --git a/src/app/atom.coffee b/src/app/atom.coffee index ebfb2b0d9..771c37009 100644 --- a/src/app/atom.coffee +++ b/src/app/atom.coffee @@ -8,7 +8,7 @@ originalSendMessageToBrowserProcess = atom.sendMessageToBrowserProcess atom.pendingBrowserProcessCallbacks = {} -atom.sendMessageToBrowserProcess = (name, data, callbacks) -> +atom.sendMessageToBrowserProcess = (name, data=[], callbacks) -> messageId = messageIdCounter++ data.unshift(messageId) callbacks = [callbacks] if typeof callbacks is 'function' @@ -37,8 +37,11 @@ atom.confirm = (message, detailedMessage, buttonLabelsAndCallbacks...) -> atom.showSaveDialog = (callback) -> @sendMessageToBrowserProcess('showSaveDialog', [], callback) -atom.toggleDevTools = (args...)-> - @sendMessageToBrowserProcess('toggleDevTools', args) +atom.toggleDevTools = -> + @sendMessageToBrowserProcess('toggleDevTools') + +atom.showDevTools = -> + @sendMessageToBrowserProcess('showDevTools') atom.getRootViewStateForPath = (path) -> if json = localStorage[path] diff --git a/static/index.html b/static/index.html index 02b3f6914..04c516b91 100644 --- a/static/index.html +++ b/static/index.html @@ -15,7 +15,7 @@ if (bootstrapScript) require(bootstrapScript); } catch (error) { - //$native.showDevTools(); + atom.showDevTools(); console.error(error.stack || error); } }