fix: Storage.{get|set|clear}Cookies
via CDP not working (#41740)
* fix: Storage.{get|set|clear}Cookies via CDP not working Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> * chore: simplify BrowserContext plumbing Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
parent
b5c9945692
commit
7031c930fd
3 changed files with 42 additions and 0 deletions
|
@ -28,6 +28,7 @@
|
||||||
#include "net/socket/stream_socket.h"
|
#include "net/socket/stream_socket.h"
|
||||||
#include "net/socket/tcp_server_socket.h"
|
#include "net/socket/tcp_server_socket.h"
|
||||||
#include "shell/browser/browser.h"
|
#include "shell/browser/browser.h"
|
||||||
|
#include "shell/browser/electron_browser_context.h"
|
||||||
#include "shell/common/electron_paths.h"
|
#include "shell/common/electron_paths.h"
|
||||||
#include "third_party/inspector_protocol/crdtp/dispatch.h"
|
#include "third_party/inspector_protocol/crdtp/dispatch.h"
|
||||||
#include "ui/base/resource/resource_bundle.h"
|
#include "ui/base/resource/resource_bundle.h"
|
||||||
|
@ -139,4 +140,8 @@ bool DevToolsManagerDelegate::HasBundledFrontendResources() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
content::BrowserContext* DevToolsManagerDelegate::GetDefaultBrowserContext() {
|
||||||
|
return ElectronBrowserContext::From("", false);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace electron
|
} // namespace electron
|
||||||
|
|
|
@ -10,6 +10,10 @@
|
||||||
#include "base/compiler_specific.h"
|
#include "base/compiler_specific.h"
|
||||||
#include "content/public/browser/devtools_manager_delegate.h"
|
#include "content/public/browser/devtools_manager_delegate.h"
|
||||||
|
|
||||||
|
namespace content {
|
||||||
|
class BrowserContext;
|
||||||
|
}
|
||||||
|
|
||||||
namespace electron {
|
namespace electron {
|
||||||
|
|
||||||
class DevToolsManagerDelegate : public content::DevToolsManagerDelegate {
|
class DevToolsManagerDelegate : public content::DevToolsManagerDelegate {
|
||||||
|
@ -33,6 +37,7 @@ class DevToolsManagerDelegate : public content::DevToolsManagerDelegate {
|
||||||
TargetType target_type) override;
|
TargetType target_type) override;
|
||||||
std::string GetDiscoveryPageHTML() override;
|
std::string GetDiscoveryPageHTML() override;
|
||||||
bool HasBundledFrontendResources() override;
|
bool HasBundledFrontendResources() override;
|
||||||
|
content::BrowserContext* GetDefaultBrowserContext() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace electron
|
} // namespace electron
|
||||||
|
|
|
@ -177,6 +177,38 @@ describe('debugger module', () => {
|
||||||
await loadingFinished;
|
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 () => {
|
it('uses empty sessionId by default', async () => {
|
||||||
w.webContents.loadURL('about:blank');
|
w.webContents.loadURL('about:blank');
|
||||||
w.webContents.debugger.attach();
|
w.webContents.debugger.attach();
|
||||||
|
|
Loading…
Reference in a new issue