fix: disallow loading extensions in temp sessions (#22090)
* fix: disallow loading extensions in temp sessions * docs
This commit is contained in:
parent
c2cd588e70
commit
af631f8204
4 changed files with 25 additions and 8 deletions
|
@ -24,8 +24,13 @@ ifdescribe(process.electronBinding('features').isExtensionsEnabled())('chrome ex
|
|||
after(() => {
|
||||
server.close()
|
||||
})
|
||||
|
||||
afterEach(closeAllWindows)
|
||||
afterEach(() => {
|
||||
session.defaultSession.getAllExtensions().forEach((e: any) => {
|
||||
session.defaultSession.removeExtension(e.id)
|
||||
})
|
||||
})
|
||||
|
||||
it('loads an extension', async () => {
|
||||
// NB. we have to use a persist: session (i.e. non-OTR) because the
|
||||
// extension registry is redirected to the main session. so installing an
|
||||
|
@ -73,13 +78,18 @@ ifdescribe(process.electronBinding('features').isExtensionsEnabled())('chrome ex
|
|||
|
||||
it('confines an extension to the session it was loaded in', async () => {
|
||||
const customSession = session.fromPartition(`persist:${require('uuid').v4()}`)
|
||||
customSession.loadExtension(path.join(fixtures, 'extensions', 'red-bg'))
|
||||
await customSession.loadExtension(path.join(fixtures, 'extensions', 'red-bg'))
|
||||
const w = new BrowserWindow({ show: false }) // not in the session
|
||||
await w.loadURL(url)
|
||||
const bg = await w.webContents.executeJavaScript('document.documentElement.style.backgroundColor')
|
||||
expect(bg).to.equal('')
|
||||
})
|
||||
|
||||
it('loading an extension in a temporary session throws an error', async () => {
|
||||
const customSession = session.fromPartition(require('uuid').v4())
|
||||
await expect(customSession.loadExtension(path.join(fixtures, 'extensions', 'red-bg'))).to.eventually.be.rejectedWith('Extensions cannot be loaded in a temporary session')
|
||||
})
|
||||
|
||||
describe('chrome.runtime', () => {
|
||||
let content: any
|
||||
before(async () => {
|
||||
|
@ -239,12 +249,6 @@ ifdescribe(process.electronBinding('features').isExtensionsEnabled())('chrome ex
|
|||
})
|
||||
|
||||
describe('deprecation shims', () => {
|
||||
afterEach(() => {
|
||||
session.defaultSession.getAllExtensions().forEach((e: any) => {
|
||||
session.defaultSession.removeExtension(e.id)
|
||||
})
|
||||
})
|
||||
|
||||
it('loads an extension through BrowserWindow.addExtension', async () => {
|
||||
BrowserWindow.addExtension(path.join(fixtures, 'extensions', 'red-bg'))
|
||||
const w = new BrowserWindow({ show: false })
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue