|
@@ -240,6 +240,23 @@ const attachGuest = function (event, elementInstanceId, guestInstanceId, params)
|
|
|
webPreferences.disablePopups = true
|
|
|
}
|
|
|
|
|
|
+ // Security options that guest will always inherit from embedder
|
|
|
+ const inheritedWebPreferences = new Map([
|
|
|
+ ['contextIsolation', true],
|
|
|
+ ['javascript', false],
|
|
|
+ ['nativeWindowOpen', true],
|
|
|
+ ['nodeIntegration', false],
|
|
|
+ ['sandbox', true]
|
|
|
+ ])
|
|
|
+
|
|
|
+ // Inherit certain option values from embedder
|
|
|
+ const lastWebPreferences = embedder.getLastWebPreferences()
|
|
|
+ for (const [name, value] of inheritedWebPreferences) {
|
|
|
+ if (lastWebPreferences[name] === value) {
|
|
|
+ webPreferences[name] = value
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
embedder.emit('will-attach-webview', event, webPreferences, params)
|
|
|
if (event.defaultPrevented) {
|
|
|
if (guest.viewInstanceId == null) guest.viewInstanceId = params.instanceId
|