Fix devtools open in mixed sandbox mode
This commit is contained in:
parent
30df0f3306
commit
9a3b78d9fe
4 changed files with 24 additions and 7 deletions
|
@ -154,7 +154,9 @@ content::ContentBrowserClient* AtomMainDelegate::CreateContentBrowserClient() {
|
|||
content::ContentRendererClient*
|
||||
AtomMainDelegate::CreateContentRendererClient() {
|
||||
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
switches::kEnableSandbox)) {
|
||||
switches::kEnableSandbox) ||
|
||||
!base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
::switches::kNoSandbox)) {
|
||||
renderer_client_.reset(new AtomSandboxedRendererClient);
|
||||
} else {
|
||||
renderer_client_.reset(new AtomRendererClient);
|
||||
|
|
|
@ -919,9 +919,6 @@ Enables mixed sandbox mode on the app.
|
|||
|
||||
This method can only be called before app is ready.
|
||||
|
||||
**Note:** The devtools will no longer open after mixed sandbox mode has been
|
||||
enabled (i.e `openDevTools` becomes a no-op).
|
||||
|
||||
### `app.dock.bounce([type])` _macOS_
|
||||
|
||||
* `type` String (optional) - Can be `critical` or `informational`. The default is
|
||||
|
|
|
@ -567,7 +567,7 @@ describe('app module', function () {
|
|||
})
|
||||
})
|
||||
|
||||
describe('mixed sandbox option', function () {
|
||||
describe.only('mixed sandbox option', function () {
|
||||
// FIXME Get these specs running on Linux
|
||||
if (process.platform === 'linux') return
|
||||
|
||||
|
@ -641,6 +641,9 @@ describe('app module', function () {
|
|||
assert.equal(argv.noSandbox.includes('--enable-sandbox'), false)
|
||||
assert.equal(argv.noSandbox.includes('--no-sandbox'), true)
|
||||
|
||||
assert.equal(argv.noSandboxDevtools, true)
|
||||
assert.equal(argv.sandboxDevtools, true)
|
||||
|
||||
done()
|
||||
})
|
||||
})
|
||||
|
|
19
spec/fixtures/api/mixed-sandbox-app/main.js
vendored
19
spec/fixtures/api/mixed-sandbox-app/main.js
vendored
|
@ -34,13 +34,16 @@ app.once('ready', () => {
|
|||
|
||||
const argv = {
|
||||
sandbox: null,
|
||||
noSandbox: null
|
||||
noSandbox: null,
|
||||
sandboxDevtools: null,
|
||||
noSandboxDevtools: null
|
||||
}
|
||||
|
||||
let connected = false
|
||||
|
||||
function finish () {
|
||||
if (connected && argv.sandbox != null && argv.noSandbox != null) {
|
||||
if (connected && argv.sandbox != null && argv.noSandbox != null
|
||||
&& argv.noSandboxDevtools != null && argv.sandboxDevtools != null) {
|
||||
client.once('end', () => {
|
||||
app.exit(0)
|
||||
})
|
||||
|
@ -54,6 +57,18 @@ app.once('ready', () => {
|
|||
finish()
|
||||
})
|
||||
|
||||
noSandboxWindow.webContents.once('devtools-opened', () => {
|
||||
argv.noSandboxDevtools = true
|
||||
finish()
|
||||
})
|
||||
noSandboxWindow.webContents.openDevTools()
|
||||
|
||||
sandboxWindow.webContents.once('devtools-opened', () => {
|
||||
argv.sandboxDevtools = true
|
||||
finish()
|
||||
})
|
||||
sandboxWindow.webContents.openDevTools()
|
||||
|
||||
ipcMain.on('argv', (event, value) => {
|
||||
if (event.sender === sandboxWindow.webContents) {
|
||||
argv.sandbox = value
|
||||
|
|
Loading…
Reference in a new issue