factor out parse-features-string.js
This commit is contained in:
parent
e7962c7ba2
commit
f35536bdc5
3 changed files with 35 additions and 29 deletions
|
@ -2,6 +2,7 @@
|
|||
|
||||
const ipcMain = require('electron').ipcMain
|
||||
const webContents = require('electron').webContents
|
||||
const parseFeaturesString = require('../common/parse-features-string')
|
||||
|
||||
// Doesn't exist in early initialization.
|
||||
let webViewManager = null
|
||||
|
@ -187,27 +188,13 @@ const attachGuest = function (embedder, elementInstanceId, guestInstanceId, para
|
|||
// parse the 'webpreferences' attribute string, if set
|
||||
// this uses the same parsing rules as window.open uses for its features
|
||||
if (typeof params.webpreferences === 'string') {
|
||||
// split the attribute's value by ','
|
||||
let i, len
|
||||
let webpreferencesTokens = params.webpreferences.split(/,\s*/)
|
||||
for (i = 0, len = webpreferencesTokens.length; i < len; i++) {
|
||||
// expected form is either a name by itself (true boolean flag)
|
||||
// or a key/value, in the form of 'name=value'
|
||||
// split the tokens by '='
|
||||
let pref = webpreferencesTokens[i]
|
||||
let prefTokens = pref.split(/\s*=/)
|
||||
let name = prefTokens[0]
|
||||
let value = prefTokens[1]
|
||||
if (!name) continue
|
||||
|
||||
// interpret the value as a boolean, if possible
|
||||
value = (value === 'yes' || value === '1') ? true : (value === 'no' || value === '0') ? false : value
|
||||
parseFeaturesString(params.webpreferences, function (key, value) {
|
||||
if (value === undefined) {
|
||||
// no value was specified, default it to true
|
||||
value = true
|
||||
}
|
||||
webPreferences[name] = value
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (params.preload) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue