diff options
author | arthmis <artmis9@protonmail.com> | 2025-01-12 09:37:25 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-12 14:37:25 +0000 |
commit | 90c5685d61946d489ec8ab54d84980298c12ee09 (patch) | |
tree | 01b1274ba9092b1cd47f9cc208e241067771f8f0 | |
parent | 0c0ffefb480546714e08d6641617a907e84e3a63 (diff) | |
download | servo-90c5685d61946d489ec8ab54d84980298c12ee09.tar.gz servo-90c5685d61946d489ec8ab54d84980298c12ee09.zip |
add minimal implementation of FetchParams (#34833)
* add minimal implementation of fetchParams and fetch controller for cancellation support
fix something
removing fetch params from http network or cache fetch due to implementation difficult
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* run formatter
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* fix incorrect spec implementation and add comments with related step number and description
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* fix double borrow issue
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* remove unused code from FetchParams
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* add workaround for double mutable borrow error
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* remove unnecessary comments, move import and format
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* fix comments that state spec instructions
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* update comment
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* refactor tests
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* refactor tests
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
---------
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
Co-authored-by: lazypassion <25536767+lazypassion@users.noreply.github.com>
-rw-r--r-- | components/net/fetch/fetch_params.rs | 18 | ||||
-rw-r--r-- | components/net/fetch/methods.rs | 63 | ||||
-rw-r--r-- | components/net/http_loader.rs | 45 | ||||
-rw-r--r-- | components/net/lib.rs | 1 | ||||
-rw-r--r-- | components/net/resource_thread.rs | 9 | ||||
-rw-r--r-- | components/net/tests/data_loader.rs | 4 | ||||
-rw-r--r-- | components/net/tests/fetch.rs | 110 | ||||
-rw-r--r-- | components/net/tests/http_loader.rs | 132 | ||||
-rw-r--r-- | components/net/tests/main.rs | 6 |
9 files changed, 234 insertions, 154 deletions
diff --git a/components/net/fetch/fetch_params.rs b/components/net/fetch/fetch_params.rs new file mode 100644 index 00000000000..b92d89a1624 --- /dev/null +++ b/components/net/fetch/fetch_params.rs @@ -0,0 +1,18 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +use net_traits::request::Request; + +/// <https://fetch.spec.whatwg.org/#fetch-params> +#[derive(Clone)] +pub struct FetchParams { + /// <https://fetch.spec.whatwg.org/#concept-request> + pub request: Request, +} + +impl FetchParams { + pub fn new(request: Request) -> FetchParams { + FetchParams { request } + } +} diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs index 71a6be2d5de..76b4da0ed31 100644 --- a/components/net/fetch/methods.rs +++ b/components/net/fetch/methods.rs @@ -37,6 +37,7 @@ use servo_arc::Arc as ServoArc; use servo_url::ServoUrl; use tokio::sync::mpsc::{UnboundedReceiver as TokioReceiver, UnboundedSender as TokioSender}; +use super::fetch_params::FetchParams; use crate::fetch::cors_cache::CorsCache; use crate::fetch::headers::determine_nosniff; use crate::filemanager_thread::FileManager; @@ -81,7 +82,7 @@ impl CancellationListener { pub type DoneChannel = Option<(TokioSender<Data>, TokioReceiver<Data>)>; /// [Fetch](https://fetch.spec.whatwg.org#concept-fetch) -pub async fn fetch(request: &mut Request, target: Target<'_>, context: &FetchContext) { +pub async fn fetch(request: Request, target: Target<'_>, context: &FetchContext) { // Steps 7,4 of https://w3c.github.io/resource-timing/#processing-model // rev order okay since spec says they're equal - https://w3c.github.io/resource-timing/#dfn-starttime { @@ -92,15 +93,19 @@ pub async fn fetch(request: &mut Request, target: Target<'_>, context: &FetchCon fetch_with_cors_cache(request, &mut CorsCache::default(), target, context).await; } -/// Continuation of fetch from step 9. +/// Continuation of fetch from step 8. /// /// <https://fetch.spec.whatwg.org#concept-fetch> pub async fn fetch_with_cors_cache( - request: &mut Request, + request: Request, cache: &mut CorsCache, target: Target<'_>, context: &FetchContext, ) { + // Step 8: Let fetchParams be a new fetch params whose request is request + let mut fetch_params = FetchParams::new(request); + let request = &mut fetch_params.request; + // Step 9: If request’s window is "client", then set request’s window to request’s client, if // request’s client’s global object is a Window object; otherwise "no-window". if request.window == Window::Client { @@ -153,7 +158,7 @@ pub async fn fetch_with_cors_cache( } // Step 17: Run main fetch given fetchParams. - main_fetch(request, cache, false, target, &mut None, context).await; + main_fetch(&mut fetch_params, cache, false, target, &mut None, context).await; // Step 18: Return fetchParams’s controller. // TODO: We don't implement fetchParams as defined in the spec @@ -190,14 +195,17 @@ pub fn should_request_be_blocked_by_csp( /// [Main fetch](https://fetch.spec.whatwg.org/#concept-main-fetch) pub async fn main_fetch( - request: &mut Request, + fetch_params: &mut FetchParams, cache: &mut CorsCache, recursive_flag: bool, target: Target<'_>, done_chan: &mut DoneChannel, context: &FetchContext, ) -> Response { - // Step 1. + // Step 1: Let request be fetchParam's request. + let request = &mut fetch_params.request; + + // Step 2: Let response be null. let mut response = None; // Servo internal: return a crash error when a crash error page is needed @@ -207,7 +215,8 @@ pub async fn main_fetch( ))); } - // Step 2. + // Step 3: If request’s local-URLs-only flag is set and request’s + // current URL is not local, then set response to a network error. if request.local_urls_only && !matches!( request.current_url().scheme(), @@ -314,7 +323,7 @@ pub async fn main_fetch( request.response_tainting = ResponseTainting::Basic; // Substep 2. Return the result of running scheme fetch given fetchParams. - scheme_fetch(request, cache, target, done_chan, context).await + scheme_fetch(fetch_params, cache, target, done_chan, context).await } else if request.mode == RequestMode::SameOrigin { Response::network_error(NetworkError::Internal("Cross-origin response".into())) } else if request.mode == RequestMode::NoCors { @@ -328,7 +337,7 @@ pub async fn main_fetch( request.response_tainting = ResponseTainting::Opaque; // Substep 3. Return the result of running scheme fetch given fetchParams. - scheme_fetch(request, cache, target, done_chan, context).await + scheme_fetch(fetch_params, cache, target, done_chan, context).await } } else if !matches!(current_scheme, "http" | "https") { Response::network_error(NetworkError::Internal("Non-http scheme".into())) @@ -343,7 +352,14 @@ pub async fn main_fetch( request.response_tainting = ResponseTainting::CorsTainting; // Substep 2. let response = http_fetch( - request, cache, true, true, false, target, done_chan, context, + fetch_params, + cache, + true, + true, + false, + target, + done_chan, + context, ) .await; // Substep 3. @@ -357,7 +373,14 @@ pub async fn main_fetch( request.response_tainting = ResponseTainting::CorsTainting; // Substep 2. http_fetch( - request, cache, true, false, false, target, done_chan, context, + fetch_params, + cache, + true, + false, + false, + target, + done_chan, + context, ) .await } @@ -369,6 +392,9 @@ pub async fn main_fetch( return response; } + // reborrow request to avoid double mutable borrow + let request = &mut fetch_params.request; + // Step 14. let mut response = if !response.is_network_error() && response.internal_response.is_none() { // Substep 1. @@ -664,12 +690,16 @@ fn handle_allowcert_request(request: &mut Request, context: &FetchContext) -> io /// [Scheme fetch](https://fetch.spec.whatwg.org#scheme-fetch) async fn scheme_fetch( - request: &mut Request, + fetch_params: &mut FetchParams, cache: &mut CorsCache, target: Target<'_>, done_chan: &mut DoneChannel, context: &FetchContext, ) -> Response { + // Step 1: If fetchParams is canceled, then return the appropriate network error for fetchParams. + + // Step 2: Let request be fetchParams’s request. + let request = &mut fetch_params.request; let url = request.current_url(); let scheme = url.scheme(); @@ -685,7 +715,14 @@ async fn scheme_fetch( "http" | "https" => { http_fetch( - request, cache, false, false, false, target, done_chan, context, + fetch_params, + cache, + false, + false, + false, + target, + done_chan, + context, ) .await }, diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index 73f2da34cd4..d6c4e80a609 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -72,6 +72,7 @@ use crate::cookie::ServoCookie; use crate::cookie_storage::CookieStorage; use crate::decoder::Decoder; use crate::fetch::cors_cache::CorsCache; +use crate::fetch::fetch_params::FetchParams; use crate::fetch::headers::{SecFetchDest, SecFetchMode, SecFetchSite, SecFetchUser}; use crate::fetch::methods::{main_fetch, Data, DoneChannel, FetchContext, Target}; use crate::hsts::HstsList; @@ -706,7 +707,7 @@ async fn obtain_response( #[async_recursion] #[allow(clippy::too_many_arguments)] pub async fn http_fetch( - request: &mut Request, + fetch_params: &mut FetchParams, cache: &mut CorsCache, cors_flag: bool, cors_preflight_flag: bool, @@ -717,11 +718,12 @@ pub async fn http_fetch( ) -> Response { // This is a new async fetch, reset the channel we are waiting on *done_chan = None; - // Step 1 - let mut response: Option<Response> = None; + // Step 1 Let request be fetchParams’s request. + let request = &mut fetch_params.request; // Step 2 - // nothing to do, since actual_response is a function on response + // Let response and internalResponse be null. + let mut response: Option<Response> = None; // Step 3 if request.service_workers_mode == ServiceWorkersMode::All { @@ -755,12 +757,12 @@ pub async fn http_fetch( if response.is_none() { // Substep 1 if cors_preflight_flag { - let method_cache_match = cache.match_method(&*request, request.method.clone()); + let method_cache_match = cache.match_method(request, request.method.clone()); let method_mismatch = !method_cache_match && (!is_cors_safelisted_method(&request.method) || request.use_cors_preflight); let header_mismatch = request.headers.iter().any(|(name, value)| { - !cache.match_header(&*request, name) && + !cache.match_header(request, name) && !is_cors_safelisted_request_header(&name, &value) }); @@ -856,7 +858,13 @@ pub async fn http_fetch( // set back to default response.return_internal = true; http_redirect_fetch( - request, cache, response, cors_flag, target, done_chan, context, + fetch_params, + cache, + response, + cors_flag, + target, + done_chan, + context, ) .await }, @@ -870,7 +878,7 @@ pub async fn http_fetch( .lock() .unwrap() .set_attribute(ResourceAttribute::RedirectCount( - request.redirect_count as u16, + fetch_params.request.redirect_count as u16, )); response.resource_timing = Arc::clone(&context.timing); @@ -903,7 +911,7 @@ impl Drop for RedirectEndTimer { /// [HTTP redirect fetch](https://fetch.spec.whatwg.org#http-redirect-fetch) #[async_recursion] pub async fn http_redirect_fetch( - request: &mut Request, + fetch_params: &mut FetchParams, cache: &mut CorsCache, response: Response, cors_flag: bool, @@ -913,7 +921,9 @@ pub async fn http_redirect_fetch( ) -> Response { let mut redirect_end_timer = RedirectEndTimer(Some(context.timing.clone())); - // Step 1 + // Step 1: Let request be fetchParams’s request. + let request = &mut fetch_params.request; + assert!(response.return_internal); let location_url = response.actual_response().location_url.clone(); @@ -1064,8 +1074,15 @@ pub async fn http_redirect_fetch( let recursive_flag = request.redirect_mode != RedirectMode::Manual; // Step 22: Return the result of running main fetch given fetchParams and recursive. - let fetch_response = - main_fetch(request, cache, recursive_flag, target, done_chan, context).await; + let fetch_response = main_fetch( + fetch_params, + cache, + recursive_flag, + target, + done_chan, + context, + ) + .await; // TODO: timing allow check context @@ -2122,8 +2139,10 @@ async fn cors_preflight_fetch( } // Step 6 + let mut fetch_params = FetchParams::new(preflight); let response = - http_network_or_cache_fetch(&mut preflight, false, false, &mut None, context).await; + http_network_or_cache_fetch(&mut fetch_params.request, false, false, &mut None, context) + .await; // Step 7 if cors_check(request, &response).is_ok() && response.status.code().is_success() { // Substep 1 diff --git a/components/net/lib.rs b/components/net/lib.rs index ccbb7e0d43a..123ec93cd24 100644 --- a/components/net/lib.rs +++ b/components/net/lib.rs @@ -26,6 +26,7 @@ mod websocket_loader; /// An implementation of the [Fetch specification](https://fetch.spec.whatwg.org/) pub mod fetch { pub mod cors_cache; + pub mod fetch_params; pub mod headers; pub mod methods; } diff --git a/components/net/resource_thread.rs b/components/net/resource_thread.rs index 38a5112ec70..2001faccd22 100644 --- a/components/net/resource_thread.rs +++ b/components/net/resource_thread.rs @@ -47,6 +47,7 @@ use crate::connector::{ use crate::cookie::ServoCookie; use crate::cookie_storage::CookieStorage; use crate::fetch::cors_cache::CorsCache; +use crate::fetch::fetch_params::FetchParams; use crate::fetch::methods::{fetch, CancellationListener, FetchContext}; use crate::filemanager_thread::FileManager; use crate::hsts::HstsList; @@ -751,7 +752,7 @@ impl CoreResourceManager { _ => ResourceTimingType::Resource, }; - let mut request = request_builder.build(); + let request = request_builder.build(); let url = request.current_url(); // In the case of a valid blob URL, acquiring a token granting access to a file, @@ -794,8 +795,10 @@ impl CoreResourceManager { match res_init_ { Some(res_init) => { let response = Response::from_init(res_init, timing_type); + + let mut fetch_params = FetchParams::new(request); http_redirect_fetch( - &mut request, + &mut fetch_params, &mut CorsCache::default(), response, true, @@ -806,7 +809,7 @@ impl CoreResourceManager { .await; }, None => { - fetch(&mut request, &mut sender, &context).await; + fetch(request, &mut sender, &context).await; }, }; diff --git a/components/net/tests/data_loader.rs b/components/net/tests/data_loader.rs index 034e75bbd82..25c50ba011d 100644 --- a/components/net/tests/data_loader.rs +++ b/components/net/tests/data_loader.rs @@ -24,12 +24,12 @@ fn assert_parse( use net_traits::request::RequestBuilder; let url = ServoUrl::parse(url).unwrap(); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .pipeline_id(None) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); match data { Some(data) => { diff --git a/components/net/tests/fetch.rs b/components/net/tests/fetch.rs index 30460a55d38..fba84589455 100644 --- a/components/net/tests/fetch.rs +++ b/components/net/tests/fetch.rs @@ -63,10 +63,10 @@ fn test_fetch_response_is_not_network_error() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .build(); - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); let _ = server.close(); if fetch_response.is_network_error() { @@ -77,10 +77,10 @@ fn test_fetch_response_is_not_network_error() { #[test] fn test_fetch_on_bad_port_is_network_error() { let url = ServoUrl::parse("http://www.example.org:6667").unwrap(); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .build(); - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); assert!(fetch_response.is_network_error()); let fetch_error = fetch_response.get_network_error().unwrap(); assert_eq!( @@ -99,10 +99,10 @@ fn test_fetch_response_body_matches_const_message() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .build(); - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); let _ = server.close(); assert!(!fetch_response.is_network_error()); @@ -119,11 +119,11 @@ fn test_fetch_response_body_matches_const_message() { #[test] fn test_fetch_aboutblank() { let url = ServoUrl::parse("about:blank").unwrap(); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .build(); - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); // We should see an opaque-filtered response. assert_eq!(fetch_response.response_type, ResponseType::Opaque); assert!(!fetch_response.is_network_error()); @@ -184,7 +184,7 @@ fn test_fetch_blob() { ); let url = ServoUrl::parse(&format!("blob:{}{}", origin.as_str(), id.simple())).unwrap(); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(origin.origin()) .build(); @@ -196,7 +196,7 @@ fn test_fetch_blob() { expected: bytes.to_vec(), }; - crate::HANDLE.block_on(methods::fetch(&mut request, &mut target, &context)); + crate::HANDLE.block_on(methods::fetch(request, &mut target, &context)); let fetch_response = receiver.recv().unwrap(); assert!(!fetch_response.is_network_error()); @@ -226,14 +226,14 @@ fn test_file() { .unwrap(); let url = ServoUrl::from_file_path(path.clone()).unwrap(); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .build(); let pool = CoreResourceThreadPool::new(1, "CoreResourceTestPool".to_string()); let pool_handle = Arc::new(pool); let mut context = new_fetch_context(None, None, Some(Arc::downgrade(&pool_handle))); - let fetch_response = fetch_with_context(&mut request, &mut context); + let fetch_response = fetch_with_context(request, &mut context); // We should see an opaque-filtered response. assert_eq!(fetch_response.response_type, ResponseType::Opaque); @@ -269,20 +269,20 @@ fn test_file() { #[test] fn test_fetch_ftp() { let url = ServoUrl::parse("ftp://not-supported").unwrap(); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .build(); - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); assert!(fetch_response.is_network_error()); } #[test] fn test_fetch_bogus_scheme() { let url = ServoUrl::parse("bogus://whatever").unwrap(); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .build(); - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); assert!(fetch_response.is_network_error()); } @@ -332,7 +332,7 @@ fn test_cors_preflight_fetch() { request.referrer_policy = ReferrerPolicy::Origin; request.use_cors_preflight = true; request.mode = RequestMode::CorsMode; - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); let _ = server.close(); assert!(!fetch_response.is_network_error()); @@ -384,11 +384,13 @@ fn test_cors_preflight_cache_fetch() { let mut request = RequestBuilder::new(url, Referrer::NoReferrer).build(); request.use_cors_preflight = true; request.mode = RequestMode::CorsMode; - let mut wrapped_request0 = request.clone(); - let mut wrapped_request1 = request; + let wrapped_request0 = request.clone(); + let wrapped_request1 = request.clone(); + let wrapped_request2 = request.clone(); + let wrapped_request3 = request; - let fetch_response0 = fetch_with_cors_cache(&mut wrapped_request0, &mut cache); - let fetch_response1 = fetch_with_cors_cache(&mut wrapped_request1, &mut cache); + let fetch_response0 = fetch_with_cors_cache(wrapped_request0, &mut cache); + let fetch_response1 = fetch_with_cors_cache(wrapped_request1, &mut cache); let _ = server.close(); assert!(!fetch_response0.is_network_error() && !fetch_response1.is_network_error()); @@ -397,8 +399,8 @@ fn test_cors_preflight_cache_fetch() { assert_eq!(1, counter.load(Ordering::SeqCst)); // The entry exists in the CORS-preflight cache - assert_eq!(true, cache.match_method(&wrapped_request0, Method::GET)); - assert_eq!(true, cache.match_method(&wrapped_request1, Method::GET)); + assert_eq!(true, cache.match_method(&wrapped_request2, Method::GET)); + assert_eq!(true, cache.match_method(&wrapped_request3, Method::GET)); match *fetch_response0.body.lock().unwrap() { ResponseBody::Done(ref body) => assert_eq!(&**body, ACK), @@ -448,7 +450,7 @@ fn test_cors_preflight_fetch_network_error() { request.method = Method::from_bytes(b"CHICKEN").unwrap(); request.use_cors_preflight = true; request.mode = RequestMode::CorsMode; - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); let _ = server.close(); assert!(fetch_response.is_network_error()); @@ -473,10 +475,10 @@ fn test_fetch_response_is_basic_filtered() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .build(); - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); let _ = server.close(); assert!(!fetch_response.is_network_error()); @@ -540,7 +542,7 @@ fn test_fetch_response_is_cors_filtered() { // an origin mis-match will stop it from defaulting to a basic filtered response let mut request = RequestBuilder::new(url, Referrer::NoReferrer).build(); request.mode = RequestMode::CorsMode; - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); let _ = server.close(); assert!(!fetch_response.is_network_error()); @@ -572,8 +574,8 @@ fn test_fetch_response_is_opaque_filtered() { let (server, url) = make_server(handler); // an origin mis-match will fall through to an Opaque filtered response - let mut request = RequestBuilder::new(url, Referrer::NoReferrer).build(); - let fetch_response = fetch(&mut request, None); + let request = RequestBuilder::new(url, Referrer::NoReferrer).build(); + let fetch_response = fetch(request, None); let _ = server.close(); assert!(!fetch_response.is_network_error()); @@ -624,7 +626,7 @@ fn test_fetch_response_is_opaque_redirect_filtered() { .origin(url.origin()) .build(); request.redirect_mode = RedirectMode::Manual; - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); let _ = server.close(); assert!(!fetch_response.is_network_error()); @@ -663,7 +665,7 @@ fn test_fetch_with_local_urls_only() { // Set the flag. request.local_urls_only = true; - fetch(&mut request, None) + fetch(request, None) }; let local_url = ServoUrl::parse("about:blank").unwrap(); @@ -726,7 +728,7 @@ fn test_fetch_with_hsts() { .build(); // Set the flag. request.local_urls_only = false; - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); server.close(); assert_eq!( response.internal_response.unwrap().url().unwrap().scheme(), @@ -772,7 +774,7 @@ fn test_load_adds_host_to_hsts_list_when_url_is_https() { context.state.override_manager.add_override(certificate); } - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -780,7 +782,7 @@ fn test_load_adds_host_to_hsts_list_when_url_is_https() { .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); let _ = server.close(); @@ -825,7 +827,7 @@ fn test_fetch_self_signed() { protocols: Arc::new(ProtocolRegistry::default()), }; - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -833,7 +835,7 @@ fn test_fetch_self_signed() { .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); assert!(matches!( response.get_network_error(), @@ -846,7 +848,7 @@ fn test_fetch_self_signed() { context.state.override_manager.add_override(certificate); } - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -854,7 +856,7 @@ fn test_fetch_self_signed() { .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); assert!(response.status.code().is_success()); @@ -881,7 +883,7 @@ fn test_fetch_with_sri_network_error() { // Set the flag. request.local_urls_only = false; - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server.close(); assert!(response.is_network_error()); @@ -907,7 +909,7 @@ fn test_fetch_with_sri_sucess() { // Set the flag. request.local_urls_only = false; - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server.close(); assert_eq!(response_is_done(&response), true); @@ -939,11 +941,11 @@ fn test_fetch_blocked_nosniff() { let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .destination(destination) .build(); - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); let _ = server.close(); assert_eq!(fetch_response.is_network_error(), should_error); @@ -986,10 +988,10 @@ fn setup_server_and_fetch(message: &'static [u8], redirect_cap: u32) -> Response let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .build(); - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); let _ = server.close(); fetch_response } @@ -1076,12 +1078,12 @@ fn test_fetch_redirect_updates_method_runner( let (server, url) = crate::make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .method(method) .build(); - let _ = fetch(&mut request, None); + let _ = fetch(request, None); let _ = server.close(); } @@ -1161,10 +1163,10 @@ fn test_fetch_async_returns_complete_response() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .build(); - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); let _ = server.close(); assert_eq!(response_is_done(&fetch_response), true); @@ -1181,8 +1183,8 @@ fn test_opaque_filtered_fetch_async_returns_complete_response() { let (server, url) = make_server(handler); // an origin mis-match will fall through to an Opaque filtered response - let mut request = RequestBuilder::new(url, Referrer::NoReferrer).build(); - let fetch_response = fetch(&mut request, None); + let request = RequestBuilder::new(url, Referrer::NoReferrer).build(); + let fetch_response = fetch(request, None); let _ = server.close(); @@ -1215,12 +1217,12 @@ fn test_opaque_redirect_filtered_fetch_async_returns_complete_response() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .redirect_mode(RedirectMode::Manual) .build(); - let fetch_response = fetch(&mut request, None); + let fetch_response = fetch(request, None); let _ = server.close(); @@ -1240,7 +1242,7 @@ fn test_fetch_with_devtools() { let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .origin(url.origin()) .redirect_mode(RedirectMode::Manual) .pipeline_id(Some(TEST_PIPELINE_ID)) @@ -1248,7 +1250,7 @@ fn test_fetch_with_devtools() { let (devtools_chan, devtools_port) = unbounded(); - let _ = fetch(&mut request, Some(devtools_chan)); + let _ = fetch(request, Some(devtools_chan)); let _ = server.close(); // notification received from devtools diff --git a/components/net/tests/http_loader.rs b/components/net/tests/http_loader.rs index 499776f934a..17178f820aa 100644 --- a/components/net/tests/http_loader.rs +++ b/components/net/tests/http_loader.rs @@ -175,14 +175,14 @@ fn test_check_default_headers_loaded_in_every_request() { *expected_headers.lock().unwrap() = Some(headers.clone()); // Testing for method.GET - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .destination(Destination::Document) .origin(url.clone().origin()) .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = dbg!(fetch(&mut request, None)); + let response = dbg!(fetch(request, None)); assert!(response .internal_response .unwrap() @@ -201,14 +201,14 @@ fn test_check_default_headers_loaded_in_every_request() { HeaderValue::from_str(&url_str[..url_str.len() - 1]).unwrap(), ); *expected_headers.lock().unwrap() = Some(post_headers); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::POST) .destination(Destination::Document) .origin(url.clone().origin()) .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); assert!(response .internal_response .unwrap() @@ -231,7 +231,7 @@ fn test_load_when_request_is_not_get_or_head_and_there_is_no_body_content_length }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::POST) .body(None) .destination(Destination::Document) @@ -239,7 +239,7 @@ fn test_load_when_request_is_not_get_or_head_and_there_is_no_body_content_length .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); assert!(response .internal_response .unwrap() @@ -264,7 +264,7 @@ fn test_request_and_response_data_with_network_messages() { let mut request_headers = HeaderMap::new(); request_headers.typed_insert(Host::from("bar.foo".parse::<Authority>().unwrap())); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .headers(request_headers) .body(None) @@ -274,7 +274,7 @@ fn test_request_and_response_data_with_network_messages() { .build(); let (devtools_chan, devtools_port) = unbounded(); - let response = fetch(&mut request, Some(devtools_chan)); + let response = fetch(request, Some(devtools_chan)); assert!(response .internal_response .unwrap() @@ -377,7 +377,7 @@ fn test_request_and_response_message_from_devtool_without_pipeline_id() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .destination(Destination::Document) .origin(mock_origin()) @@ -385,7 +385,7 @@ fn test_request_and_response_message_from_devtool_without_pipeline_id() { .build(); let (devtools_chan, devtools_port) = unbounded(); - let response = fetch(&mut request, Some(devtools_chan)); + let response = fetch(request, Some(devtools_chan)); assert!(response.actual_response().status.code().is_success()); let _ = server.close(); @@ -417,14 +417,14 @@ fn test_redirected_request_to_devtools() { }; let (pre_server, pre_url) = make_server(pre_handler); - let mut request = RequestBuilder::new(pre_url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(pre_url.clone(), Referrer::NoReferrer) .method(Method::POST) .destination(Destination::Document) .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); let (devtools_chan, devtools_port) = unbounded(); - fetch(&mut request, Some(devtools_chan)); + fetch(request, Some(devtools_chan)); let _ = pre_server.close(); let _ = post_server.close(); @@ -470,14 +470,14 @@ fn test_load_when_redirecting_from_a_post_should_rewrite_next_request_as_get() { }; let (pre_server, pre_url) = make_server(pre_handler); - let mut request = RequestBuilder::new(pre_url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(pre_url.clone(), Referrer::NoReferrer) .method(Method::POST) .destination(Destination::Document) .origin(mock_origin()) .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = pre_server.close(); let _ = post_server.close(); @@ -502,7 +502,7 @@ fn test_load_should_decode_the_response_as_deflate_when_response_headers_have_co }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -510,7 +510,7 @@ fn test_load_should_decode_the_response_as_deflate_when_response_headers_have_co .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server.close(); @@ -537,7 +537,7 @@ fn test_load_should_decode_the_response_as_gzip_when_response_headers_have_conte }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -545,7 +545,7 @@ fn test_load_should_decode_the_response_as_gzip_when_response_headers_have_conte .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server.close(); @@ -584,7 +584,7 @@ fn test_load_doesnt_send_request_body_on_any_redirect() { let content = b"Body on POST!"; let request_body = create_request_body_with_content(content.to_vec()); - let mut request = RequestBuilder::new(pre_url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(pre_url.clone(), Referrer::NoReferrer) .body(Some(request_body)) .method(Method::POST) .destination(Destination::Document) @@ -592,7 +592,7 @@ fn test_load_doesnt_send_request_body_on_any_redirect() { .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = pre_server.close(); let _ = post_server.close(); @@ -614,7 +614,7 @@ fn test_load_doesnt_add_host_to_hsts_list_when_url_is_http_even_if_hsts_headers_ }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -623,7 +623,7 @@ fn test_load_doesnt_add_host_to_hsts_list_when_url_is_http_even_if_hsts_headers_ .build(); let mut context = new_fetch_context(None, None, None); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); let _ = server.close(); @@ -661,7 +661,7 @@ fn test_load_sets_cookies_in_the_resource_manager_when_it_get_set_cookie_header_ assert_cookie_for_domain(&context.state.cookie_jar, url.as_str(), None); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -670,7 +670,7 @@ fn test_load_sets_cookies_in_the_resource_manager_when_it_get_set_cookie_header_ .credentials_mode(CredentialsMode::Include) .build(); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); let _ = server.close(); @@ -714,7 +714,7 @@ fn test_load_sets_requests_cookies_header_for_url_by_getting_cookies_from_the_re cookie_jar.push(cookie, &url, CookieSource::HTTP); } - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -723,7 +723,7 @@ fn test_load_sets_requests_cookies_header_for_url_by_getting_cookies_from_the_re .credentials_mode(CredentialsMode::Include) .build(); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); let _ = server.close(); @@ -761,7 +761,7 @@ fn test_load_sends_cookie_if_nonhttp() { cookie_jar.push(cookie, &url, CookieSource::HTTP); } - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -770,7 +770,7 @@ fn test_load_sends_cookie_if_nonhttp() { .credentials_mode(CredentialsMode::Include) .build(); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); let _ = server.close(); @@ -800,7 +800,7 @@ fn test_cookie_set_with_httponly_should_not_be_available_using_getcookiesforurl( assert_cookie_for_domain(&context.state.cookie_jar, url.as_str(), None); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -809,7 +809,7 @@ fn test_cookie_set_with_httponly_should_not_be_available_using_getcookiesforurl( .credentials_mode(CredentialsMode::Include) .build(); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); let _ = server.close(); @@ -849,7 +849,7 @@ fn test_when_cookie_received_marked_secure_is_ignored_for_http() { assert_cookie_for_domain(&context.state.cookie_jar, url.as_str(), None); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -858,7 +858,7 @@ fn test_when_cookie_received_marked_secure_is_ignored_for_http() { .credentials_mode(CredentialsMode::Include) .build(); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); let _ = server.close(); @@ -884,7 +884,7 @@ fn test_load_sets_content_length_to_length_of_request_body() { let request_body = create_request_body_with_content(content.to_vec()); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::POST) .body(Some(request_body)) .destination(Destination::Document) @@ -892,7 +892,7 @@ fn test_load_sets_content_length_to_length_of_request_body() { .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server.close(); @@ -924,7 +924,7 @@ fn test_load_uses_explicit_accept_from_headers_in_load_data() { let mut accept_headers = HeaderMap::new(); accept_headers.insert(header::ACCEPT, HeaderValue::from_static("text/html")); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .headers(accept_headers) .destination(Destination::Document) @@ -932,7 +932,7 @@ fn test_load_uses_explicit_accept_from_headers_in_load_data() { .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server.close(); @@ -962,14 +962,14 @@ fn test_load_sets_default_accept_to_html_xhtml_xml_and_then_anything_else() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .destination(Destination::Document) .origin(mock_origin()) .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server.close(); @@ -1001,7 +1001,7 @@ fn test_load_uses_explicit_accept_encoding_from_load_data_headers() { let mut accept_encoding_headers = HeaderMap::new(); accept_encoding_headers.insert(header::ACCEPT_ENCODING, HeaderValue::from_static("chunked")); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .headers(accept_encoding_headers) .destination(Destination::Document) @@ -1009,7 +1009,7 @@ fn test_load_uses_explicit_accept_encoding_from_load_data_headers() { .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server.close(); @@ -1039,14 +1039,14 @@ fn test_load_sets_default_accept_encoding_to_gzip_and_deflate() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .destination(Destination::Document) .origin(mock_origin()) .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server.close(); @@ -1095,14 +1095,14 @@ fn test_load_errors_when_there_a_redirect_loop() { *url_b_for_a.lock().unwrap() = Some(url_b.clone()); - let mut request = RequestBuilder::new(url_a.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url_a.clone(), Referrer::NoReferrer) .method(Method::GET) .destination(Destination::Document) .origin(mock_origin()) .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server_a.close(); let _ = server_b.close(); @@ -1155,14 +1155,14 @@ fn test_load_succeeds_with_a_redirect_loop() { *url_b_for_a.lock().unwrap() = Some(url_b.clone()); - let mut request = RequestBuilder::new(url_a.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url_a.clone(), Referrer::NoReferrer) .method(Method::GET) .destination(Destination::Document) .origin(mock_origin()) .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server_a.close(); let _ = server_b.close(); @@ -1198,14 +1198,14 @@ fn test_load_follows_a_redirect() { }; let (pre_server, pre_url) = make_server(pre_handler); - let mut request = RequestBuilder::new(pre_url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(pre_url.clone(), Referrer::NoReferrer) .method(Method::GET) .destination(Destination::Document) .origin(mock_origin()) .pipeline_id(Some(TEST_PIPELINE_ID)) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = pre_server.close(); let _ = post_server.close(); @@ -1283,7 +1283,7 @@ fn test_redirect_from_x_to_y_provides_y_cookies_from_y() { cookie_jar.push(cookie_y, &url_y, CookieSource::HTTP); } - let mut request = RequestBuilder::new(url_x.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url_x.clone(), Referrer::NoReferrer) .method(Method::GET) .destination(Destination::Document) .origin(mock_origin()) @@ -1291,7 +1291,7 @@ fn test_redirect_from_x_to_y_provides_y_cookies_from_y() { .credentials_mode(CredentialsMode::Include) .build(); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); let _ = server.close(); @@ -1334,7 +1334,7 @@ fn test_redirect_from_x_to_x_provides_x_with_cookie_from_first_response() { let url = url.join("/initial/").unwrap(); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .destination(Destination::Document) .origin(mock_origin()) @@ -1342,7 +1342,7 @@ fn test_redirect_from_x_to_x_provides_x_with_cookie_from_first_response() { .credentials_mode(CredentialsMode::Include) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server.close(); @@ -1367,7 +1367,7 @@ fn test_if_auth_creds_not_in_url_but_in_cache_it_sets_it() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -1391,7 +1391,7 @@ fn test_if_auth_creds_not_in_url_but_in_cache_it_sets_it() { .entries .insert(url.origin().clone().ascii_serialization(), auth_entry); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); let _ = server.close(); @@ -1412,7 +1412,7 @@ fn test_auth_ui_needs_www_auth() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -1421,7 +1421,7 @@ fn test_auth_ui_needs_www_auth() { .credentials_mode(CredentialsMode::Include) .build(); - let response = fetch(&mut request, None); + let response = fetch(request, None); let _ = server.close(); @@ -1479,7 +1479,7 @@ fn test_fetch_compressed_response_update_count() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -1511,7 +1511,7 @@ fn test_fetch_compressed_response_update_count() { }; let response_update_count = crate::HANDLE.block_on(async move { methods::fetch( - &mut request, + request, &mut target, &mut new_fetch_context(None, None, None), ) @@ -1565,7 +1565,7 @@ fn test_user_credentials_prompt_when_proxy_authentication_is_required() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -1583,7 +1583,7 @@ fn test_user_credentials_prompt_when_proxy_authentication_is_required() { let mut context = new_fetch_context(None, Some(embedder_proxy), None); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); let _ = server.close(); @@ -1613,7 +1613,7 @@ fn test_prompt_credentials_when_client_receives_unauthorized_response() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -1630,7 +1630,7 @@ fn test_prompt_credentials_when_client_receives_unauthorized_response() { ); let mut context = new_fetch_context(None, Some(embedder_proxy), None); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); server.close(); @@ -1660,7 +1660,7 @@ fn test_prompt_credentials_user_cancels_dialog_input() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -1673,7 +1673,7 @@ fn test_prompt_credentials_user_cancels_dialog_input() { let _ = receive_credential_prompt_msgs(embedder_receiver, None, None); let mut context = new_fetch_context(None, Some(embedder_proxy), None); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); server.close(); @@ -1703,7 +1703,7 @@ fn test_prompt_credentials_user_input_incorrect_credentials() { }; let (server, url) = make_server(handler); - let mut request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) + let request = RequestBuilder::new(url.clone(), Referrer::NoReferrer) .method(Method::GET) .body(None) .destination(Destination::Document) @@ -1720,7 +1720,7 @@ fn test_prompt_credentials_user_input_incorrect_credentials() { ); let mut context = new_fetch_context(None, Some(embedder_proxy), None); - let response = fetch_with_context(&mut request, &mut context); + let response = fetch_with_context(request, &mut context); server.close(); diff --git a/components/net/tests/main.rs b/components/net/tests/main.rs index e8c576682fe..12440e3cc47 100644 --- a/components/net/tests/main.rs +++ b/components/net/tests/main.rs @@ -201,11 +201,11 @@ impl FetchTaskTarget for FetchResponseCollector { } } -fn fetch(request: &mut Request, dc: Option<Sender<DevtoolsControlMsg>>) -> Response { +fn fetch(request: Request, dc: Option<Sender<DevtoolsControlMsg>>) -> Response { fetch_with_context(request, &mut new_fetch_context(dc, None, None)) } -fn fetch_with_context(request: &mut Request, mut context: &mut FetchContext) -> Response { +fn fetch_with_context(request: Request, mut context: &mut FetchContext) -> Response { let (sender, receiver) = tokio::sync::oneshot::channel(); let mut target = FetchResponseCollector { sender: Some(sender), @@ -216,7 +216,7 @@ fn fetch_with_context(request: &mut Request, mut context: &mut FetchContext) -> }) } -fn fetch_with_cors_cache(request: &mut Request, cache: &mut CorsCache) -> Response { +fn fetch_with_cors_cache(request: Request, cache: &mut CorsCache) -> Response { let (sender, receiver) = tokio::sync::oneshot::channel(); let mut target = FetchResponseCollector { sender: Some(sender), |