Don't add too much listeners in BrowserWindowProxy

This commit is contained in:
Cheng Zhao 2015-12-04 11:02:55 +08:00
parent 504d3d3088
commit 2c6d232254
2 changed files with 3 additions and 4 deletions

View file

@ -44,7 +44,7 @@ createGuest = (embedder, url, frameName, options) ->
guest.removeListener 'closed', closedByUser guest.removeListener 'closed', closedByUser
guest.destroy() guest.destroy()
closedByUser = -> closedByUser = ->
embedder.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_CLOSED', guestId embedder.send "ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_CLOSED_#{guestId}"
embedder.removeListener 'render-view-deleted', closedByEmbedder embedder.removeListener 'render-view-deleted', closedByEmbedder
embedder.once 'render-view-deleted', closedByEmbedder embedder.once 'render-view-deleted', closedByEmbedder
guest.once 'closed', closedByUser guest.once 'closed', closedByUser

View file

@ -10,9 +10,8 @@ resolveURL = (url) ->
class BrowserWindowProxy class BrowserWindowProxy
constructor: (@guestId) -> constructor: (@guestId) ->
@closed = false @closed = false
ipcRenderer.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_CLOSED', (event, guestId) => ipcRenderer.once "ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_CLOSED_#{@guestId}", =>
if guestId is @guestId @closed = true
@closed = true
close: -> close: ->
ipcRenderer.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_CLOSE', @guestId ipcRenderer.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_CLOSE', @guestId