From: Cheng Zhao Date: Sat, 30 Jan 2016 04:58:21 +0000 (+0800) Subject: Check whether sender is destroyed before calling sender.send X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3f68b2f22780e830296602dc9feaac88aed80e8d;p=platform%2Fframework%2Fweb%2Fcrosswalk-tizen.git Check whether sender is destroyed before calling sender.send Fix #4279. --- diff --git a/atom/browser/lib/rpc-server.js b/atom/browser/lib/rpc-server.js index b3e6ddc..2f2b739 100644 --- a/atom/browser/lib/rpc-server.js +++ b/atom/browser/lib/rpc-server.js @@ -162,12 +162,12 @@ var unwrapArgs = function(sender, args) { }); let callIntoRenderer = function(...args) { - if (rendererReleased) + if (rendererReleased || sender.isDestroyed()) throw new Error(`Attempting to call a function in a renderer window that has been closed or released. Function provided here: ${meta.location}.`); sender.send('ATOM_RENDERER_CALLBACK', meta.id, valueToMeta(sender, args)); }; v8Util.setDestructor(callIntoRenderer, function() { - if (!rendererReleased) + if (!rendererReleased && !sender.isDestroyed()) sender.send('ATOM_RENDERER_RELEASE_CALLBACK', meta.id); }); sender.callbacks.set(meta.id, callIntoRenderer);