Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1047)

Unified Diff: content/browser/service_worker/service_worker_url_request_job.cc

Issue 1867293004: Set service worker response info data for foreign fetch intercepted fetches. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ff-check-origin
Patch Set: address comment Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_url_request_job.cc
diff --git a/content/browser/service_worker/service_worker_url_request_job.cc b/content/browser/service_worker/service_worker_url_request_job.cc
index 9dbd4bea1b4159e7f264621e62b2260242ecffcc..e4934903c70ccaca6e0fc6fe8e3ac03bab9e7072 100644
--- a/content/browser/service_worker/service_worker_url_request_job.cc
+++ b/content/browser/service_worker/service_worker_url_request_job.cc
@@ -24,6 +24,7 @@
#include "content/browser/resource_context_impl.h"
#include "content/browser/service_worker/service_worker_fetch_dispatcher.h"
#include "content/browser/service_worker/service_worker_provider_host.h"
+#include "content/browser/service_worker/service_worker_response_info.h"
#include "content/browser/streams/stream.h"
#include "content/browser/streams/stream_context.h"
#include "content/browser/streams/stream_registry.h"
@@ -613,7 +614,10 @@ void ServiceWorkerURLRequestJob::DidDispatchFetchEvent(
request_mode_ == FETCH_REQUEST_MODE_CORS_WITH_FORCED_PREFLIGHT) &&
!request()->initiator().IsSameOriginWith(
url::Origin(request()->url()))) {
- fall_back_required_ = true;
+ // TODO(mek): http://crbug.com/604084 Figure out what to do about CORS
+ // preflight and fallbacks for foreign fetch events.
+ fall_back_required_ =
+ fetch_type_ != ServiceWorkerFetchType::FOREIGN_FETCH;
RecordResult(ServiceWorkerMetrics::REQUEST_JOB_FALLBACK_FOR_CORS);
CreateResponseHeader(
400, "Service Worker Fallback Required", ServiceWorkerHeaderMap());
@@ -824,28 +828,32 @@ void ServiceWorkerURLRequestJob::NotifyStartError(
}
void ServiceWorkerURLRequestJob::NotifyRestartRequired() {
- delegate_->OnPrepareToRestart(worker_start_time_, worker_ready_time_);
+ ServiceWorkerResponseInfo::ForRequest(request_, true)
+ ->OnPrepareToRestart(worker_start_time_, worker_ready_time_);
+ delegate_->OnPrepareToRestart();
URLRequestJob::NotifyRestartRequired();
}
void ServiceWorkerURLRequestJob::OnStartCompleted() const {
if (response_type_ != FORWARD_TO_SERVICE_WORKER) {
- delegate_->OnStartCompleted(
- false /* was_fetched_via_service_worker */,
- false /* was_fallback_required */,
- GURL() /* original_url_via_service_worker */,
- blink::WebServiceWorkerResponseTypeDefault,
- base::TimeTicks() /* service_worker_start_time */,
- base::TimeTicks() /* service_worker_ready_time */,
- false /* respons_is_in_cache_storage */,
- std::string() /* response_cache_storage_cache_name */);
+ ServiceWorkerResponseInfo::ForRequest(request_, true)
+ ->OnStartCompleted(
+ false /* was_fetched_via_service_worker */,
+ false /* was_fallback_required */,
+ GURL() /* original_url_via_service_worker */,
+ blink::WebServiceWorkerResponseTypeDefault,
+ base::TimeTicks() /* service_worker_start_time */,
+ base::TimeTicks() /* service_worker_ready_time */,
+ false /* respons_is_in_cache_storage */,
+ std::string() /* response_cache_storage_cache_name */);
return;
}
- delegate_->OnStartCompleted(true /* was_fetched_via_service_worker */,
- fall_back_required_, response_url_,
- service_worker_response_type_, worker_start_time_,
- worker_ready_time_, response_is_in_cache_storage_,
- response_cache_storage_cache_name_);
+ ServiceWorkerResponseInfo::ForRequest(request_, true)
+ ->OnStartCompleted(true /* was_fetched_via_service_worker */,
+ fall_back_required_, response_url_,
+ service_worker_response_type_, worker_start_time_,
+ worker_ready_time_, response_is_in_cache_storage_,
+ response_cache_storage_cache_name_);
}
bool ServiceWorkerURLRequestJob::IsMainResourceLoad() const {

Powered by Google App Engine
This is Rietveld 408576698