Added fetch_start functionality in http_fetch

Added spec link for webidl.
Added fetch_start functionality to PRT .
Changed the fetch_start location
This commit is contained in:
Adit Jain 2019-01-17 12:02:18 +05:30 committed by aditj
parent 3ca82471c8
commit 77c9285780
6 changed files with 27 additions and 20 deletions

View file

@ -23,6 +23,7 @@ use net_traits::filemanager_thread::RelativePos;
use net_traits::request::{CredentialsMode, Destination, Referrer, Request, RequestMode};
use net_traits::request::{Origin, ResponseTainting, Window};
use net_traits::response::{Response, ResponseBody, ResponseType};
use net_traits::ResourceAttribute;
use net_traits::{FetchTaskTarget, NetworkError, ReferrerPolicy, ResourceFetchTiming};
use servo_url::ServoUrl;
use std::borrow::Cow;
@ -88,6 +89,12 @@ pub type DoneChannel = Option<(Sender<Data>, Receiver<Data>)>;
/// [Fetch](https://fetch.spec.whatwg.org#concept-fetch)
pub fn fetch(request: &mut Request, target: Target, context: &FetchContext) {
// Step 7 of https://w3c.github.io/resource-timing/#processing-model
context
.timing
.lock()
.unwrap()
.set_attribute(ResourceAttribute::FetchStart);
fetch_with_cors_cache(request, &mut CorsCache::new(), target, context);
}

View file

@ -560,8 +560,6 @@ pub fn http_fetch(
request.service_workers_mode = ServiceWorkersMode::None;
}
// Substep 3
// TODO(#21258) maybe set fetch_start (if this is the last resource)
// Generally, we use a persistent connection, so we will also set other PerformanceResourceTiming
// attributes to this as well (domain_lookup_start, domain_lookup_end, connect_start, connect_end,
// secure_connection_start)
@ -695,6 +693,13 @@ pub fn http_redirect_fetch(
Some(Ok(url)) => url,
};
// Step 1 of https://w3c.github.io/resource-timing/#dom-performanceresourcetiming-fetchstart
context
.timing
.lock()
.unwrap()
.set_attribute(ResourceAttribute::FetchStart);
// Step 5
if request.redirect_count >= 20 {
return Response::network_error(NetworkError::Internal("Too many redirects".into()));