int HttpStreamFactory::JobController::DoCreateJobs() {
…
…
…
main_job_ = job_factory_->CreateMainJob(...);
if (alternative_service_info_.protocol() != kProtoUnknown) {
…
…
…
alternative_job_ = job_factory_->CreateAltSvcJob(...);
// blocks the MAIN job and only start the ALT job
main_job_is_blocked_ = true;
alternative_job_->Start(request_->stream_type());
}
else{
// when there is NO ALT job available
main_job_->Start(request_->stream_type());
}
return OK;
}
In addition, I commented out all the functions that can mark an ALT SVC as broken, so that whenever it finds an ALT SVC, it keeps on running it. I was expecting to see little to no fallback, however that does not turn out to be the case. I tried again by resetting the main job instead of blocking it, but the result was the same. So, can anyone please explain the reason behind the browser falling back to TCP, and suggest a possible way to avoid it? Does it have something to do with the QUIC implementation (QUIC folder), as I'm currently looking into the JobController?
Thank you,
Naval Kumar Shukla
CSE Undergrad'23 | IIITD