Index: chrome/browser/chromeos/gdata/gdata_cache.cc |
diff --git a/chrome/browser/chromeos/gdata/gdata_cache.cc b/chrome/browser/chromeos/gdata/gdata_cache.cc |
index 7558f7c0bcdbb1539d64d31b40e63c4d67c9d58e..0327317cf5be649ac0f3cf75aadd6c5566f23911 100644 |
--- a/chrome/browser/chromeos/gdata/gdata_cache.cc |
+++ b/chrome/browser/chromeos/gdata/gdata_cache.cc |
@@ -240,8 +240,8 @@ void CollectAnyFile(std::vector<std::string>* resource_ids, |
// Runs callback with pointers dereferenced. |
// Used to implement SetMountedStateOnUIThread. |
void RunSetMountedStateCallback(const SetMountedStateCallback& callback, |
- GDataFileError* error, |
- FilePath* cache_file_path) { |
+ const GDataFileError* error, |
+ const FilePath* cache_file_path) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
DCHECK(error); |
DCHECK(cache_file_path); |
@@ -683,6 +683,22 @@ void GDataCache::RemoveOnUIThread(const std::string& resource_id, |
"" /* md5 */)); |
} |
+void GDataCache::ClearAllOnUIThread(const SetMountedStateCallback& callback) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ GDataFileError* error = new GDataFileError(GDATA_FILE_OK); |
+ |
+ blocking_task_runner_->PostTaskAndReply( |
+ FROM_HERE, |
+ base::Bind(&GDataCache::ClearAll, |
+ base::Unretained(this), |
+ error), |
+ base::Bind(&RunSetMountedStateCallback, |
+ callback, |
+ base::Owned(error), |
+ &cache_root_path_)); |
+} |
+ |
void GDataCache::RequestInitializeOnUIThread() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
@@ -1436,6 +1452,13 @@ void GDataCache::Remove(const std::string& resource_id, |
*error = GDATA_FILE_OK; |
} |
+void GDataCache::ClearAll(GDataFileError* error) { |
+ DCHECK(error); |
+ file_util::Delete(cache_root_path_, true); |
+ Initialize(); |
+ *error = GDATA_FILE_OK; |
+} |
+ |
void GDataCache::OnPinned(GDataFileError* error, |
const std::string& resource_id, |
const std::string& md5, |