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/renderer/devtools | |
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/renderer/devtools')
0 files changed, 0 insertions, 0 deletions