diff options
author | michaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-30 16:43:15 +0000 |
---|---|---|
committer | michaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-30 16:43:15 +0000 |
commit | 5b0b6c7ce96f2c90d0b78ab47c8b68cc9fb2020a (patch) | |
tree | 5f2770780dc80ce708bf4eee16ec4fcc4ac7fbb6 /content/content_tests.gypi | |
parent | 2f32d7ffb61896cd37fafaa19ce63b6de5b5d313 (diff) | |
download | chromium_src-5b0b6c7ce96f2c90d0b78ab47c8b68cc9fb2020a.zip chromium_src-5b0b6c7ce96f2c90d0b78ab47c8b68cc9fb2020a.tar.gz chromium_src-5b0b6c7ce96f2c90d0b78ab47c8b68cc9fb2020a.tar.bz2 |
Appcache::OnCorruptionDetected handling. The general idea is to delete everything and start over (reinitialize) if we notice corruption on disk. The is some pre-existing code to perform the reinitialization function, but that was only used in a more narrow case where the disk cache could not have been open. With the changes in this CL, reinitialization can be triggered pretty much at any time.
* The AppCacheDatabase classes uses an SQLConnecton ErrorHandler to detect catastrophic errors (corruption).
* The AppCacheStorageImpl's DatabaseTask class checks for having seen corruption during a task and initiates a heavy handed operation to delete everything and start over.
* The AppCacheStorageImpl::InitTask also checks for the presence of a stale/undeletable DiskCache when there is no SQL database. If found, that also triggers reinitialization.
* The AppCacheService class does exponential backoff to avoid thrashing the disk on repeated reinit attempts.
* The AppCacheDiskCache class's Disable() method has been modified such that all file handles get released.
TBR=jam
BUG=318544
Review URL: https://codereview.chromium.org/137493003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247967 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/content_tests.gypi')
-rw-r--r-- | content/content_tests.gypi | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/content/content_tests.gypi b/content/content_tests.gypi index 86b70ea..8d84bc1 100644 --- a/content/content_tests.gypi +++ b/content/content_tests.gypi @@ -570,6 +570,7 @@ 'test/image_decoder_test.h', 'test/run_all_unittests.cc', '../webkit/browser/appcache/appcache_database_unittest.cc', + '../webkit/browser/appcache/appcache_disk_cache_unittest.cc', '../webkit/browser/appcache/appcache_group_unittest.cc', '../webkit/browser/appcache/appcache_host_unittest.cc', '../webkit/browser/appcache/appcache_quota_client_unittest.cc', |