Merge pull request #5915 from electron/remove-result-collection

Remove unused results collection
This commit is contained in:
Cheng Zhao 2016-06-08 00:58:16 +00:00 committed by GitHub
commit d2331bc2c0

View file

@ -4,9 +4,9 @@ const ipcMain = require('electron').ipcMain
const webContents = require('electron').webContents
// Doesn't exist in early initialization.
var webViewManager = null
let webViewManager = null
var supportedWebViewEvents = [
const supportedWebViewEvents = [
'load-commit',
'did-finish-load',
'did-fail-load',
@ -40,29 +40,29 @@ var supportedWebViewEvents = [
'update-target-url'
]
var nextInstanceId = 0
var guestInstances = {}
var embedderElementsMap = {}
var reverseEmbedderElementsMap = {}
let nextInstanceId = 0
const guestInstances = {}
const embedderElementsMap = {}
const reverseEmbedderElementsMap = {}
// Moves the last element of array to the first one.
var moveLastToFirst = function (list) {
const moveLastToFirst = function (list) {
return list.unshift(list.pop())
}
// Generate guestInstanceId.
var getNextInstanceId = function () {
const getNextInstanceId = function () {
return ++nextInstanceId
}
// Create a new guest instance.
var createGuest = function (embedder, params) {
var destroy, destroyEvents, event, fn, guest, i, id, j, len, len1, listeners
const createGuest = function (embedder, params) {
if (webViewManager == null) {
webViewManager = process.atomBinding('web_view_manager')
}
id = getNextInstanceId(embedder)
guest = webContents.create({
const id = getNextInstanceId(embedder)
const guest = webContents.create({
isGuest: true,
partition: params.partition,
embedder: embedder
@ -73,37 +73,32 @@ var createGuest = function (embedder, params) {
}
// Destroy guest when the embedder is gone or navigated.
destroyEvents = ['will-destroy', 'crashed', 'did-navigate']
destroy = function () {
const destroyEvents = ['will-destroy', 'crashed', 'did-navigate']
const destroy = function () {
if (guestInstances[id] != null) {
return destroyGuest(embedder, id)
destroyGuest(embedder, id)
}
}
for (i = 0, len = destroyEvents.length; i < len; i++) {
event = destroyEvents[i]
for (const event of destroyEvents) {
embedder.once(event, destroy)
// Users might also listen to the crashed event, so We must ensure the guest
// Users might also listen to the crashed event, so we must ensure the guest
// is destroyed before users' listener gets called. It is done by moving our
// listener to the first one in queue.
listeners = embedder._events[event]
const listeners = embedder._events[event]
if (Array.isArray(listeners)) {
moveLastToFirst(listeners)
}
}
guest.once('destroyed', function () {
var j, len1, results
results = []
for (j = 0, len1 = destroyEvents.length; j < len1; j++) {
event = destroyEvents[j]
results.push(embedder.removeListener(event, destroy))
for (const event of destroyEvents) {
embedder.removeListener(event, destroy)
}
return results
})
// Init guest web view after attached.
guest.once('did-attach', function () {
var opts
let opts
params = this.attachParams
delete this.attachParams
this.viewInstanceId = params.instanceId
@ -136,13 +131,12 @@ var createGuest = function (embedder, params) {
})
// Dispatch events to embedder.
fn = function (event) {
return guest.on(event, function (_, ...args) {
const fn = function (event) {
guest.on(event, function (_, ...args) {
embedder.send.apply(embedder, ['ELECTRON_GUEST_VIEW_INTERNAL_DISPATCH_EVENT-' + guest.viewInstanceId, event].concat(args))
})
}
for (j = 0, len1 = supportedWebViewEvents.length; j < len1; j++) {
event = supportedWebViewEvents[j]
for (const event of supportedWebViewEvents) {
fn(event)
}
@ -155,12 +149,13 @@ var createGuest = function (embedder, params) {
guest.on('size-changed', function (_, ...args) {
embedder.send.apply(embedder, ['ELECTRON_GUEST_VIEW_INTERNAL_SIZE_CHANGED-' + guest.viewInstanceId].concat(args))
})
return id
}
// Attach the guest to an element of embedder.
var attachGuest = function (embedder, elementInstanceId, guestInstanceId, params) {
var guest, key, oldGuestInstanceId, ref1, webPreferences
const attachGuest = function (embedder, elementInstanceId, guestInstanceId, params) {
let guest, key, oldGuestInstanceId, ref1, webPreferences
guest = guestInstances[guestInstanceId].guest
// Destroy the old guest when attaching.
@ -195,12 +190,12 @@ var attachGuest = function (embedder, elementInstanceId, guestInstanceId, params
}
// Destroy an existing guest instance.
var destroyGuest = function (embedder, id) {
var key
const destroyGuest = function (embedder, id) {
webViewManager.removeGuest(embedder, id)
guestInstances[id].guest.destroy()
delete guestInstances[id]
key = reverseEmbedderElementsMap[id]
const key = reverseEmbedderElementsMap[id]
if (key != null) {
delete reverseEmbedderElementsMap[id]
return delete embedderElementsMap[key]
@ -220,18 +215,18 @@ ipcMain.on('ELECTRON_GUEST_VIEW_MANAGER_DESTROY_GUEST', function (event, id) {
})
ipcMain.on('ELECTRON_GUEST_VIEW_MANAGER_SET_SIZE', function (event, id, params) {
var ref1
return (ref1 = guestInstances[id]) != null ? ref1.guest.setSize(params) : void 0
const guestInstance = guestInstances[id]
return guestInstance != null ? guestInstance.guest.setSize(params) : void 0
})
// Returns WebContents from its guest id.
exports.getGuest = function (id) {
var ref1
return (ref1 = guestInstances[id]) != null ? ref1.guest : void 0
const guestInstance = guestInstances[id]
return guestInstance != null ? guestInstance.guest : void 0
}
// Returns the embedder of the guest.
exports.getEmbedder = function (id) {
var ref1
return (ref1 = guestInstances[id]) != null ? ref1.embedder : void 0
const guestInstance = guestInstances[id]
return guestInstance != null ? guestInstance.embedder : void 0
}