diff --git a/atom/app/atom_main_delegate.cc b/atom/app/atom_main_delegate.cc index 0507d5dafa..fdf76f3cb2 100644 --- a/atom/app/atom_main_delegate.cc +++ b/atom/app/atom_main_delegate.cc @@ -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); diff --git a/docs/api/app.md b/docs/api/app.md index fa9d16d0eb..3ac9ca211b 100644 --- a/docs/api/app.md +++ b/docs/api/app.md @@ -927,9 +927,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 diff --git a/spec/api-app-spec.js b/spec/api-app-spec.js index 1121521b6b..1df816807d 100644 --- a/spec/api-app-spec.js +++ b/spec/api-app-spec.js @@ -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() }) }) diff --git a/spec/fixtures/api/mixed-sandbox-app/main.js b/spec/fixtures/api/mixed-sandbox-app/main.js index a71c593f51..19b69e0189 100644 --- a/spec/fixtures/api/mixed-sandbox-app/main.js +++ b/spec/fixtures/api/mixed-sandbox-app/main.js @@ -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