Bug 267868
Summary: | Check curl version for HTTP/3 support | ||
---|---|---|---|
Product: | WebKit | Reporter: | Don Olmstead <don.olmstead> |
Component: | CMake | Assignee: | Don Olmstead <don.olmstead> |
Status: | REOPENED | ||
Severity: | Normal | CC: | commit-queue, kenji.shukuwa, webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Bug Depends on: | 268138 | ||
Bug Blocks: |
Don Olmstead
Not experimental since 8.5.0
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Don Olmstead
Pull request: https://github.com/WebKit/WebKit/pull/23056
EWS
Committed 273520@main (561efe11068f): <https://commits.webkit.org/273520@main>
Reviewed commits have been landed. Closing PR #23056 and removing active labels.
WebKit Commit Bot
Re-opened since this is blocked by bug 268138
Radar WebKit Bug Importer
<rdar://problem/121868520>
Kenji Shukuwa
The reason why LayoutTests failed, as reported in bug 268138, was because the CURLE_RECV_ERROR(56) error was returned
when there was a certificate error . Before this patch , the CURLE_PEER_FAILED_VERIFICATION(60) error was returned
when there was a certificate error, and resources could be obtained after the server trust evaluation process. However,
because the CURLE_RECV_ERROR error was returned, this process was not performed, and resources could not be obtained.
The reason why CURLE_PEER_FAILED_VERIFICATION was returned was because CURLOPT_HTTP_VERSION was set to
CURL_HTTP_VERSION_3. Normally, the decision on whether to use HTTP/3 communication should be based on the alt-svc
settings, but when CURL_HTTP_VERSION_3 is set, the initial communication will be performed in HTTP/3 regardless of the
alt-svc settings. The curl uses ngtcp2 internally when performing HTTP/3 communication, but ngtcp2 functions continue
to be used even after falling down to HTTP/2 communication. In this case, an error occurs in the ngtcp2 function during
processing after detecting a certificate error, which causes the CURLE_RECV_ERROR error to be returned.
To follow the Alt-Svc settings, set CURLOPT_HTTP_VERSION to CURL_HTTP_VERSION_NONE. This will allow curl to
communicate with the appropriate HTTP version based on information from ALPN, alt-svc, etc.
Kenji Shukuwa
Pull request: https://github.com/WebKit/WebKit/pull/45817
Kenji Shukuwa
Don, could you please assign a reviewer?