From bc196c016b9e801fd4c8459f51a70a263a06a1b8 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 2 Feb 2016 23:47:19 +0800 Subject: [PATCH] Do process.emit('exit') in WillReleaseScriptContext --- atom/renderer/atom_renderer_client.cc | 3 +++ atom/renderer/lib/init.js | 5 ----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/atom/renderer/atom_renderer_client.cc b/atom/renderer/atom_renderer_client.cc index 00ac245..7ff87a5 100644 --- a/atom/renderer/atom_renderer_client.cc +++ b/atom/renderer/atom_renderer_client.cc @@ -9,6 +9,7 @@ #include "atom/common/api/api_messages.h" #include "atom/common/api/atom_bindings.h" +#include "atom/common/api/event_emitter_caller.h" #include "atom/common/node_bindings.h" #include "atom/common/node_includes.h" #include "atom/common/options_switches.h" @@ -174,6 +175,8 @@ void AtomRendererClient::DidCreateScriptContext( void AtomRendererClient::WillReleaseScriptContext( v8::Handle context) { + node::Environment* env = node::Environment::GetCurrent(context); + mate::EmitEvent(env->isolate(), env->process_object(), "exit"); } bool AtomRendererClient::ShouldFork(blink::WebLocalFrame* frame, diff --git a/atom/renderer/lib/init.js b/atom/renderer/lib/init.js index 18be7b0..340a1ef 100644 --- a/atom/renderer/lib/init.js +++ b/atom/renderer/lib/init.js @@ -106,11 +106,6 @@ if (nodeIntegration === 'true' || nodeIntegration === 'all' || nodeIntegration = return false; } }; - - // Emit the 'exit' event when page is unloading. - window.addEventListener('unload', function() { - return process.emit('exit'); - }); } else { // Delete Node's symbols after the Environment has been loaded. process.once('loaded', function() { -- 2.7.4