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>
This commit is contained in:
arthmis 2025-01-12 09:37:25 -05:00 committed by GitHub
parent 0c0ffefb48
commit 90c5685d61
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 234 additions and 154 deletions

View file

@ -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;
},
};