feat: Add option to conditionally disable site instance patches (#18396)

* chore: allow conditional disable of the site instance override patches at runtime

* feat: add app.allowRendererProcessReuse property to allow runtime disable of site instance overrides

spec: add tests for the new allowRendererProcessReuse property

feat: add console warnings / errors for loading non context-aware native modules
  * Only error if the patch is disabled
  * Warn all the time, this will ship in Electron 7
This commit is contained in:
Samuel Attard 2019-05-31 15:47:18 -07:00 committed by GitHub
parent 26155c8a00
commit 87ae9324ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 221 additions and 89 deletions

View file

@ -1332,6 +1332,26 @@ describe('default behavior', () => {
expect(app.userAgentFallback).to.equal(initialValue)
})
})
describe('app.allowRendererProcessReuse', () => {
it('should default to false', () => {
expect(app.allowRendererProcessReuse).to.equal(false)
})
it('should cause renderer processes to get new PIDs when false', async () => {
const output = await runTestApp('site-instance-overrides', 'false')
expect(output[0]).to.be.a('number').that.is.greaterThan(0)
expect(output[1]).to.be.a('number').that.is.greaterThan(0)
expect(output[0]).to.not.equal(output[1])
})
it('should cause renderer processes to keep the same PID when true', async () => {
const output = await runTestApp('site-instance-overrides', 'true')
expect(output[0]).to.be.a('number').that.is.greaterThan(0)
expect(output[1]).to.be.a('number').that.is.greaterThan(0)
expect(output[0]).to.equal(output[1])
})
})
})
async function runTestApp (name: string, ...args: any[]) {