зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #10869 - DRY out `StreamedResponse::from_http_response` (from frewsxcv:dry); r=jdm
Source-Repo: https://github.com/servo/servo Source-Revision: 88020e9151d3cdb6a2e01b62ac0c093b8f693123
This commit is contained in:
Родитель
92bb89e398
Коммит
56bef9c48f
|
@ -512,26 +512,28 @@ impl<R: HttpResponse> StreamedResponse<R> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn from_http_response(response: R, m: Metadata) -> Result<StreamedResponse<R>, LoadError> {
|
fn from_http_response(response: R, m: Metadata) -> Result<StreamedResponse<R>, LoadError> {
|
||||||
match response.content_encoding() {
|
let decoder = match response.content_encoding() {
|
||||||
Some(Encoding::Gzip) => {
|
Some(Encoding::Gzip) => {
|
||||||
let result = GzDecoder::new(response);
|
let result = GzDecoder::new(response);
|
||||||
match result {
|
match result {
|
||||||
Ok(response_decoding) => Ok(StreamedResponse::new(m, Decoder::Gzip(response_decoding))),
|
Ok(response_decoding) => Decoder::Gzip(response_decoding),
|
||||||
Err(err) => Err(LoadError::new(m.final_url, LoadErrorType::Decoding { reason: err.to_string() })),
|
Err(err) => {
|
||||||
|
return Err(
|
||||||
|
LoadError::new(m.final_url, LoadErrorType::Decoding { reason: err.to_string() }))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some(Encoding::Deflate) => {
|
Some(Encoding::Deflate) => {
|
||||||
let response_decoding = DeflateDecoder::new(response);
|
Decoder::Deflate(DeflateDecoder::new(response))
|
||||||
Ok(StreamedResponse::new(m, Decoder::Deflate(response_decoding)))
|
|
||||||
}
|
}
|
||||||
Some(Encoding::EncodingExt(ref ext)) if ext == "br" => {
|
Some(Encoding::EncodingExt(ref ext)) if ext == "br" => {
|
||||||
let response_decoding = Decompressor::new(response);
|
Decoder::Brotli(Decompressor::new(response))
|
||||||
Ok(StreamedResponse::new(m, Decoder::Brotli(response_decoding)))
|
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
Ok(StreamedResponse::new(m, Decoder::Plain(response)))
|
Decoder::Plain(response)
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
Ok(StreamedResponse::new(m, decoder))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче