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

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

Issue 2771823002: Implement updateViaCache flag and no-cache by default for main service worker scripts
Patch Set: fix IPC Created 3 years, 4 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_context_request_handler.cc
diff --git a/content/browser/service_worker/service_worker_context_request_handler.cc b/content/browser/service_worker/service_worker_context_request_handler.cc
index 4b3535aa5b9eaa18502b95b6ddf4e927b381a90a..b42ae219d75ecfd1feb5f604630d55126ecc14a1 100644
--- a/content/browser/service_worker/service_worker_context_request_handler.cc
+++ b/content/browser/service_worker/service_worker_context_request_handler.cc
@@ -21,6 +21,18 @@
namespace content {
+namespace {
+bool ShouldBypassCache(bool is_main_script,
+ blink::WebServiceWorkerUpdateViaCache cache_mode) {
+ if (is_main_script &&
+ cache_mode != blink::WebServiceWorkerUpdateViaCache::kAll)
+ return true;
+ if (cache_mode == blink::WebServiceWorkerUpdateViaCache::kNone)
+ return true;
+ return false;
+}
+} // namespace
+
ServiceWorkerContextRequestHandler::ServiceWorkerContextRequestHandler(
base::WeakPtr<ServiceWorkerContextCore> context,
base::WeakPtr<ServiceWorkerProviderHost> provider_host,
@@ -191,7 +203,9 @@ net::URLRequestJob* ServiceWorkerContextRequestHandler::MaybeCreateJobImpl(
int extra_load_flags = 0;
base::TimeDelta time_since_last_check =
base::Time::Now() - registration->last_update_check();
- if (time_since_last_check > kServiceWorkerScriptMaxCacheAge ||
+
+ if (ShouldBypassCache(is_main_script, registration->update_via_cache()) ||
+ time_since_last_check > kServiceWorkerScriptMaxCacheAge ||
version_->force_bypass_cache_for_scripts()) {
extra_load_flags = net::LOAD_BYPASS_CACHE;
}

Powered by Google App Engine
This is Rietveld 408576698