frontend-utils: Don't use tokio task budgeting for reqwest

This commit is contained in:
Nathan Adams 2024-04-15 22:22:00 +02:00
parent c10d8b97b0
commit eea6578b02
2 changed files with 15 additions and 12 deletions

View File

@ -26,6 +26,7 @@ async-net = "2.0.0"
futures-lite = "2.3.0" futures-lite = "2.3.0"
webbrowser = "0.8.14" webbrowser = "0.8.14"
reqwest = { version = "0.12.3", default-features = false, features = ["rustls-tls", "cookies", "charset", "http2", "macos-system-configuration"] } reqwest = { version = "0.12.3", default-features = false, features = ["rustls-tls", "cookies", "charset", "http2", "macos-system-configuration"] }
tokio = { workspace = true }
[dev-dependencies] [dev-dependencies]
tempfile = "3" tempfile = "3"

View File

@ -25,6 +25,7 @@ use std::path::Path;
use std::rc::Rc; use std::rc::Rc;
use std::sync::{Arc, Mutex}; use std::sync::{Arc, Mutex};
use std::time::Duration; use std::time::Duration;
use tokio::task;
use tracing::warn; use tracing::warn;
use url::{ParseError, Url}; use url::{ParseError, Url};
@ -237,17 +238,19 @@ impl<F: FutureSpawner, I: NavigatorInterface> NavigatorBackend for ExternalNavig
request_builder = request_builder.body(body_data); request_builder = request_builder.body(body_data);
let response = request_builder.send().await.map_err(|e| { let response = task::unconstrained(request_builder.send())
let inner = if e.is_connect() { .await
Error::InvalidDomain(processed_url.to_string()) .map_err(|e| {
} else { let inner = if e.is_connect() {
Error::FetchError(e.to_string()) Error::InvalidDomain(processed_url.to_string())
}; } else {
ErrorResponse { Error::FetchError(e.to_string())
url: processed_url.to_string(), };
error: inner, ErrorResponse {
} url: processed_url.to_string(),
})?; error: inner,
}
})?;
let url = response.url().to_string(); let url = response.url().to_string();
@ -464,7 +467,6 @@ mod tests {
use ruffle_core::socket::SocketAction::{Close, Connect, Data}; use ruffle_core::socket::SocketAction::{Close, Connect, Data};
use std::net::SocketAddr; use std::net::SocketAddr;
use std::str::FromStr; use std::str::FromStr;
use tokio::task;
use super::*; use super::*;