Implement GuestViewInternal.createGuest and destroyGuest
This commit is contained in:
parent
d34cff2eef
commit
a22a5c67bd
8 changed files with 124 additions and 16 deletions
26
atom/browser/lib/guest-view-manager.coffee
Normal file
26
atom/browser/lib/guest-view-manager.coffee
Normal 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
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue