[wpt-sync] Sync PR 24965 - Add connection-pool tests
Categories
(Core :: DOM: Networking, task, P4)
Tracking
()
Tracking | Status | |
---|---|---|
firefox83 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 24965 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/24965
Details from upstream follow.
Matt Menke <mmenke@chromium.org> wrote:
Add connection-pool tests
This adds a couple tests for the changes landed in https://github.com/whatwg/fetch/pull/1063. It opens up windows at different sites and makes sure they don't share connections. It checks fetch requests, JS resource requests, main frame requests, iframe requests, CORS requests, and dedicated worker requests. It works by providing the port a request came over to the Python server, and having it track which requests used which port.
There are a bunch of cases this doesn't currently test:
- Requests from opaque origins (planning on investigating in a followup).
- Requests from top-level about:blank pages (which inherit origin from their parent). Probably add a test when I test opaque origins, since they need similar logic.
- H2/H3 (planning on investigating in a followup).
- Nested dedicated workers (Is it worth a test for these? In Chrome they're different enough that we had a bug that only affected these, at least).
- Reporting requests (spec in too much flux - Chrome's implementation makes this a really easy tracking vector if not double-keyed, but looks like there will be big changes, anyways)
- Websockets (matters mostly in the case of H2/QUIC and reporting)
- Push requests.
- OSCP/ACA requests (likely not testable)
- Preconnects (likely not testable)
- All other types of workers, as it's unclear what they should be doing.
- Sure I'm leaving some things out.
The tests also don't make sure that connections are ever shared when they should be. They also don't check connection-adjacent caches (DNS, alt service, proxy resolution, reporting, CORS cache, etc).
I've verified all tests pass in Chrome with connection partitioning on (--enable-features=PartitionConnectionsByNetworkIsolationKey), but haven't checked other browsers, nor have I exhaustively made sure that if there's a bug in a single request type the tests fail (e.g., worker source fetches are incorrectly pooled together).
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
Assignee | ||
Comment 2•4 years ago
|
||
CI Results
Ran 12 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 1 tests and 9 subtests
Status Summary
Firefox
PASS : 7
FAIL : 1
TIMEOUT: 2
Chrome
FAIL : 8
TIMEOUT: 2
Safari
FAIL : 8
TIMEOUT: 2
Links
Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base
Details
New Tests That Don't Pass
/fetch/connection-pool/network-partition-key.html: TIMEOUT (Chrome: TIMEOUT, Safari: TIMEOUT)
CSP sandbox: FAIL (Chrome: FAIL, Safari: FAIL)
about:blank from opaque origin iframe: TIMEOUT (Chrome: TIMEOUT, Safari: TIMEOUT)
Comment 4•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/1eaa68ff573a
https://hg.mozilla.org/mozilla-central/rev/ede9cd47ccf4
Description
•