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

Unified Diff: content/browser/appcache/appcache_group.h

Issue 879393002: Expire appcaches that fail to update for "too long". (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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/appcache/appcache_group.h
diff --git a/content/browser/appcache/appcache_group.h b/content/browser/appcache/appcache_group.h
index 1a2df75203a932102375a788aefa95bfa0fa0085..e75540ca4751cccdf352df16984e38e37111ce98 100644
--- a/content/browser/appcache/appcache_group.h
+++ b/content/browser/appcache/appcache_group.h
@@ -38,10 +38,10 @@ class CONTENT_EXPORT AppCacheGroup
public:
class CONTENT_EXPORT UpdateObserver {
- public:
- // Called just after an appcache update has completed.
- virtual void OnUpdateComplete(AppCacheGroup* group) = 0;
- virtual ~UpdateObserver() {}
+ public:
+ // Called just after an appcache update has completed.
+ virtual void OnUpdateComplete(AppCacheGroup* group) = 0;
+ virtual ~UpdateObserver() {}
};
enum UpdateAppCacheStatus {
@@ -60,13 +60,24 @@ class CONTENT_EXPORT AppCacheGroup
int64 group_id() const { return group_id_; }
const GURL& manifest_url() const { return manifest_url_; }
- const base::Time& creation_time() const { return creation_time_; }
- void set_creation_time(const base::Time& time) { creation_time_ = time; }
+ base::Time creation_time() const { return creation_time_; }
+ void set_creation_time(base::Time time) { creation_time_ = time; }
bool is_obsolete() const { return is_obsolete_; }
void set_obsolete(bool value) { is_obsolete_ = value; }
-
bool is_being_deleted() const { return is_being_deleted_; }
void set_being_deleted(bool value) { is_being_deleted_ = value; }
+ base::Time last_full_update_check_time() const {
+ return last_full_update_check_time_;
+ }
+ void set_last_full_update_check_time(base::Time time) {
+ last_full_update_check_time_ = time;
+ }
+ base::Time first_evictable_error_time() const {
+ return first_evictable_error_time_;
+ }
+ void set_first_evictable_error_time(base::Time time) {
+ first_evictable_error_time_ = time;
+ }
AppCache* newest_complete_cache() const { return newest_complete_cache_; }
@@ -135,6 +146,15 @@ class CONTENT_EXPORT AppCacheGroup
bool is_being_deleted_;
std::vector<int64> newly_deletable_response_ids_;
+ // Most update checks respect the cache control headers of the manifest
+ // resource, but we bust the http cache for a "full" update check after 24
+ // hours since the last full check was successfully performed.
+ base::Time last_full_update_check_time_;
+
+ // Groups that fail to update for a sufficiently long time are evicted. This
+ // value is reset after a successful update or update check.
+ base::Time first_evictable_error_time_;
+
// Old complete app caches.
Caches old_caches_;

Powered by Google App Engine
This is Rietveld 408576698