Implement GuestViewInternal.createGuest and destroyGuest

This commit is contained in:
Cheng Zhao 2014-10-23 17:54:52 +08:00
parent d34cff2eef
commit a22a5c67bd
8 changed files with 124 additions and 16 deletions

View file

@ -0,0 +1,26 @@
ipc = require 'ipc'
webContents = require 'web-contents'
nextInstanceId = 0
guestInstances = {}
# Generate guestInstanceId.
getNextInstanceId = (webContents) ->
++nextInstanceId
# Create a new guest instance.
createGuest = (embedder, params) ->
id = getNextInstanceId embedder
guestInstances[id] = webContents.create isGuest: true, guestInstanceId: id
id
# Destroy an existing guest instance.
destroyGuest = (id) ->
guestInstances[id].destroy()
delete guestInstances[id]
ipc.on 'ATOM_SHELL_GUEST_VIEW_MANAGER_CREATE_GUEST', (event, type, params, requestId) ->
event.sender.send "ATOM_SHELL_RESPONSE_#{requestId}", createGuest(event.sender)
ipc.on 'ATOM_SHELL_GUEST_VIEW_MANAGER_DESTROY_GUEST', (event, guestInstanceId) ->
destroyGuest guestInstanceId

View file

@ -61,6 +61,9 @@ setImmediate ->
# Load the RPC server.
require './rpc-server.js'
# Load the guest view manager.
require './guest-view-manager.js'
# Now we try to load app's package.json.
packageJson = null