Merge pull request #5430 from deepak1556/ipc_renderer_patch

ipcRenderer: fix crash with multiple listeners to sync message
This commit is contained in:
Cheng Zhao 2016-05-07 16:32:54 +09:00
commit b05fa2ed5b
2 changed files with 19 additions and 1 deletions

View file

@ -45,7 +45,10 @@ bool Event::SendReply(const base::string16& json) {
return false;
AtomViewHostMsg_Message_Sync::WriteReplyParams(message_, json);
return sender_->Send(message_);
bool success = sender_->Send(message_);
message_ = NULL;
sender_ = NULL;
return success;
}
// static

View file

@ -200,6 +200,21 @@ describe('ipc module', function () {
})
w.loadURL('file://' + path.join(fixtures, 'api', 'send-sync-message.html'))
})
it('does not crash when reply is sent by multiple listeners', function (done) {
var w = new BrowserWindow({
show: false
})
ipcMain.on('send-sync-message', function (event) {
event.returnValue = null
})
ipcMain.on('send-sync-message', function (event) {
event.returnValue = null
w.destroy()
done()
})
w.loadURL('file://' + path.join(fixtures, 'api', 'send-sync-message.html'))
})
})
describe('remote listeners', function () {