aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2020-01-29 20:35:47 -0500
committerGitHub <noreply@github.com>2020-01-29 20:35:47 -0500
commitb939b3806f698443e94cd33b8a3dac17a0fe62bb (patch)
treeda9e03349397132b876fe9f0e74bad1e59d7f08b
parent912a09c476c95de44d8f4c653c42d35567eba24c (diff)
parentfc13bd8b2f8f7b06aea928e3e5ab56a4b3a2584a (diff)
downloadservo-b939b3806f698443e94cd33b8a3dac17a0fe62bb.tar.gz
servo-b939b3806f698443e94cd33b8a3dac17a0fe62bb.zip
Auto merge of #25634 - pshaughn:cjkcookies, r=jdm
Accept UTF8 cookie header values <!-- Please describe your changes on the following line: --> HeaderValue::to_str only works on ASCII; cookies can be utf8 too, so we decode accordingly. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #25608 - [ ] There are tests for these changes in http_loader; I don't know whether websocket cookies have tests. <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
-rw-r--r--components/net/http_loader.rs2
-rw-r--r--components/net/websocket_loader.rs2
-rw-r--r--tests/wpt/metadata/cookies/http-state/charset-tests.html.ini13
3 files changed, 2 insertions, 15 deletions
diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs
index 0d0d7c46368..a8ba978df54 100644
--- a/components/net/http_loader.rs
+++ b/components/net/http_loader.rs
@@ -272,7 +272,7 @@ fn set_cookies_from_headers(
cookie_jar: &RwLock<CookieStorage>,
) {
for cookie in headers.get_all(header::SET_COOKIE) {
- if let Ok(cookie_str) = cookie.to_str() {
+ if let Ok(cookie_str) = std::str::from_utf8(cookie.as_bytes()) {
set_cookie_for_url(&cookie_jar, &url, &cookie_str);
}
}
diff --git a/components/net/websocket_loader.rs b/components/net/websocket_loader.rs
index 93bb031dca8..fb24e6566a4 100644
--- a/components/net/websocket_loader.rs
+++ b/components/net/websocket_loader.rs
@@ -92,7 +92,7 @@ impl<'a> Handler for Client<'a> {
let mut jar = self.http_state.cookie_jar.write().unwrap();
// TODO(eijebong): Replace thise once typed headers settled on a cookie impl
for cookie in headers.get_all(header::SET_COOKIE) {
- if let Ok(s) = cookie.to_str() {
+ if let Ok(s) = std::str::from_utf8(cookie.as_bytes()) {
if let Some(cookie) =
Cookie::from_cookie_string(s.into(), self.resource_url, CookieSource::HTTP)
{
diff --git a/tests/wpt/metadata/cookies/http-state/charset-tests.html.ini b/tests/wpt/metadata/cookies/http-state/charset-tests.html.ini
deleted file mode 100644
index 8b6f0fa25e4..00000000000
--- a/tests/wpt/metadata/cookies/http-state/charset-tests.html.ini
+++ /dev/null
@@ -1,13 +0,0 @@
-[charset-tests.html]
- [charset0002 - charset0002]
- expected: FAIL
-
- [charset0003 - charset0003]
- expected: FAIL
-
- [charset0004 - charset0004]
- expected: FAIL
-
- [charset0001 - charset0001]
- expected: FAIL
-