Bug 290801
Summary: | REGRESSION(292525@main): navigation in second ephemeral session stalls | ||
---|---|---|---|
Product: | WebKit | Reporter: | Yury Semikhatsky <yurys> |
Component: | Page Loading | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | beidson, cdumez, dpino, max, sihui_liu, webkit-bug-importer, webkit |
Priority: | P2 | Keywords: | InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | All | ||
OS: | macOS 15 |
Yury Semikhatsky
Steps:
- create an ephemeral data store with id session1
- add some cookies via HTTPCookieStore::setCookies to the data store
- create ephemeral data store with id session2
- create a page that uses session2 data store
- try to navigate the page to a site => navigation stalls
After https://commits.webkit.org/292525@main the navigation of the page stalls waiting for the cookie version to be 1, while it stays 0.
The problem seems to be that `NetworkProcessProxy::m_cookiesVersion` is maintained per worker process proxy in the UI process, while in the network process it is per session and inside `NetworkDataTaskCocoa::resume()` the following condition evaluates to false as `m_requiredCookiesVersion == 1`, while `storageSession->cookiesVersion() == 0`:
`if (storageSession && storageSession->cookiesVersion() < m_requiredCookiesVersion) {`
I don't have a WebKit unit test for this, but it's easily reproducible with this Playwright test https://github.com/microsoft/playwright/blob/6c22b8425f97d836f10564b1a16f4251b5313940/tests/library/browsercontext-add-cookies.spec.ts#L161-L180 which started failing after the recent WebKit roll that included https://commits.webkit.org/292525@main.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/148360698>
Sihui Liu
*** This bug has been marked as a duplicate of bug 290802 ***