From 6e4d9508aa13c0666de7feeb875b9219de1b8cd8 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 5 Apr 2013 08:34:04 -0700 Subject: [PATCH] Close browser instead of sending shutdown message CEF now supports calling the beforeunload handler when closed so we no longer need to send a shutdown message on the native side. --- native/atom_cef_render_process_handler.h | 1 - native/atom_cef_render_process_handler.mm | 15 --------------- native/atom_window_controller.mm | 2 +- 3 files changed, 1 insertion(+), 17 deletions(-) diff --git a/native/atom_cef_render_process_handler.h b/native/atom_cef_render_process_handler.h index 96fe15a5c..9bcb2da60 100644 --- a/native/atom_cef_render_process_handler.h +++ b/native/atom_cef_render_process_handler.h @@ -18,7 +18,6 @@ class AtomCefRenderProcessHandler : public CefRenderProcessHandler { CefRefPtr message) OVERRIDE; void Reload(CefRefPtr browser); - void Shutdown(CefRefPtr browser); bool CallMessageReceivedHandler(CefRefPtr context, CefRefPtr message); void InjectExtensionsIntoV8Context(CefRefPtr context); diff --git a/native/atom_cef_render_process_handler.mm b/native/atom_cef_render_process_handler.mm index 47af29dae..afd2f4177 100644 --- a/native/atom_cef_render_process_handler.mm +++ b/native/atom_cef_render_process_handler.mm @@ -30,10 +30,6 @@ bool AtomCefRenderProcessHandler::OnProcessMessageReceived(CefRefPtr Reload(browser); return true; } - else if (name == "shutdown") { - Shutdown(browser); - return true; - } else { return CallMessageReceivedHandler(browser->GetMainFrame()->GetV8Context(), message); } @@ -54,17 +50,6 @@ void AtomCefRenderProcessHandler::Reload(CefRefPtr browser) { context->Exit(); } -void AtomCefRenderProcessHandler::Shutdown(CefRefPtr browser) { - CefRefPtr context = browser->GetMainFrame()->GetV8Context(); - CefRefPtr global = context->GetGlobal(); - - context->Enter(); - CefV8ValueList arguments; - CefRefPtr shutdownFunction = global->GetValue("shutdown"); - shutdownFunction->ExecuteFunction(global, arguments); - context->Exit(); -} - bool AtomCefRenderProcessHandler::CallMessageReceivedHandler(CefRefPtr context, CefRefPtr message) { context->Enter(); diff --git a/native/atom_window_controller.mm b/native/atom_window_controller.mm index 5650637ec..efb838b3e 100644 --- a/native/atom_window_controller.mm +++ b/native/atom_window_controller.mm @@ -246,7 +246,7 @@ - (BOOL)windowShouldClose:(NSNotification *)notification { if (_cefClient && _cefClient->GetBrowser()) { - _cefClient->GetBrowser()->SendProcessMessage(PID_RENDERER, CefProcessMessage::Create("shutdown")); + _cefClient->GetBrowser()->GetHost()->CloseBrowser(false); } if (_pidToKillOnClose) kill([_pidToKillOnClose intValue], SIGQUIT);