diff --git a/shell/browser/ui/devtools_manager_delegate.cc b/shell/browser/ui/devtools_manager_delegate.cc index c4113d37e38de..89711a7f61498 100644 --- a/shell/browser/ui/devtools_manager_delegate.cc +++ b/shell/browser/ui/devtools_manager_delegate.cc @@ -28,6 +28,7 @@ #include "net/socket/stream_socket.h" #include "net/socket/tcp_server_socket.h" #include "shell/browser/browser.h" +#include "shell/browser/electron_browser_context.h" #include "shell/common/electron_paths.h" #include "third_party/inspector_protocol/crdtp/dispatch.h" #include "ui/base/resource/resource_bundle.h" @@ -139,4 +140,8 @@ bool DevToolsManagerDelegate::HasBundledFrontendResources() { return true; } +content::BrowserContext* DevToolsManagerDelegate::GetDefaultBrowserContext() { + return ElectronBrowserContext::From("", false); +} + } // namespace electron diff --git a/shell/browser/ui/devtools_manager_delegate.h b/shell/browser/ui/devtools_manager_delegate.h index 1cfa232d35fbc..a315dec79b1de 100644 --- a/shell/browser/ui/devtools_manager_delegate.h +++ b/shell/browser/ui/devtools_manager_delegate.h @@ -10,6 +10,10 @@ #include "base/compiler_specific.h" #include "content/public/browser/devtools_manager_delegate.h" +namespace content { +class BrowserContext; +} + namespace electron { class DevToolsManagerDelegate : public content::DevToolsManagerDelegate { @@ -33,6 +37,7 @@ class DevToolsManagerDelegate : public content::DevToolsManagerDelegate { TargetType target_type) override; std::string GetDiscoveryPageHTML() override; bool HasBundledFrontendResources() override; + content::BrowserContext* GetDefaultBrowserContext() override; }; } // namespace electron diff --git a/spec/api-debugger-spec.ts b/spec/api-debugger-spec.ts index 558f64599ad04..2a8d1edca039b 100644 --- a/spec/api-debugger-spec.ts +++ b/spec/api-debugger-spec.ts @@ -181,6 +181,38 @@ describe('debugger module', () => { await loadingFinished; }); + it('can get and set cookies using the Storage API', async () => { + await w.webContents.loadURL('about:blank'); + w.webContents.debugger.attach('1.1'); + + await w.webContents.debugger.sendCommand('Storage.clearCookies', {}); + await w.webContents.debugger.sendCommand('Storage.setCookies', { + cookies: [ + { + name: 'cookieOne', + value: 'cookieValueOne', + url: 'https://cookieone.com' + }, + { + name: 'cookieTwo', + value: 'cookieValueTwo', + url: 'https://cookietwo.com' + } + ] + }); + + const { cookies } = await w.webContents.debugger.sendCommand('Storage.getCookies', {}); + expect(cookies).to.have.lengthOf(2); + + const cookieOne = cookies.find((cookie: any) => cookie.name === 'cookieOne'); + expect(cookieOne.domain).to.equal('cookieone.com'); + expect(cookieOne.value).to.equal('cookieValueOne'); + + const cookieTwo = cookies.find((cookie: any) => cookie.name === 'cookieTwo'); + expect(cookieTwo.domain).to.equal('cookietwo.com'); + expect(cookieTwo.value).to.equal('cookieValueTwo'); + }); + it('uses empty sessionId by default', async () => { w.webContents.loadURL('about:blank'); w.webContents.debugger.attach();