| Index: content/browser/service_worker/service_worker_controllee_request_handler.cc
|
| diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.cc b/content/browser/service_worker/service_worker_controllee_request_handler.cc
|
| index 69492d564e47f5e081362adaf8dd6de418c8eccd..07b4f10817ab0b56cf053aa16973a989d56b1fb8 100644
|
| --- a/content/browser/service_worker/service_worker_controllee_request_handler.cc
|
| +++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc
|
| @@ -159,6 +159,45 @@ net::URLRequestJob* ServiceWorkerControlleeRequestHandler::MaybeCreateJob(
|
| return job.release();
|
| }
|
|
|
| +void ServiceWorkerControlleeRequestHandler::MaybeCreateLoaderFactory(
|
| + const ResourceRequest& resource_request,
|
| + ResourceContext* resource_context,
|
| + base::OnceCallback<void(mojom::URLLoaderFactory*)> factory_callback) {
|
| + DCHECK(is_main_resource_load_);
|
| + ClearJob();
|
| +
|
| + // TODO(kinuko): Keep ServiceWorkerResponseInfo somewhere around
|
| + // and reset the data every time we restart.
|
| +
|
| + if (!context_ || !provider_host_) {
|
| + // We can't do anything other than to fall back to network.
|
| + std::move(factory_callback).Run(nullptr);
|
| + return;
|
| + }
|
| +
|
| + // In fallback cases we basically 'forward' the request, so we should
|
| + // never see use_network_ gets true.
|
| + DCHECK(!use_network_);
|
| +
|
| + url_job_ =
|
| + base::MakeUnique<ServiceWorkerURLJobWrapper>(std::move(factory_callback));
|
| +
|
| + resource_context_ = resource_context;
|
| +
|
| + PrepareForMainResource(resource_request.url,
|
| + resource_request.first_party_for_cookies);
|
| +
|
| + if (url_job_->ShouldFallbackToNetwork()) {
|
| + // We're falling back to the next URLLoaderRequestHandler, forward
|
| + // the request and clear job now.
|
| + url_job_->FallbackToNetwork();
|
| + ClearJob();
|
| + return;
|
| + }
|
| +
|
| + // We will asynchronously continue on DidLookupRegistrationForMainResource.
|
| +}
|
| +
|
| void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
|
| const GURL& url,
|
| const GURL& first_party_for_cookies) {
|
|
|