drive: Remove MD5 argument from FileCache::MarkDirty

BUG=248424
TEST=unit_tests

Review URL: https://chromiumcodereview.appspot.com/18948004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213379 0039d316-1c4b-4281-b951-d872f2087c98
parent a7fd537c
...@@ -390,7 +390,6 @@ void FileCache::MarkAsUnmountedOnUIThread( ...@@ -390,7 +390,6 @@ void FileCache::MarkAsUnmountedOnUIThread(
} }
void FileCache::MarkDirtyOnUIThread(const std::string& resource_id, void FileCache::MarkDirtyOnUIThread(const std::string& resource_id,
const std::string& md5,
const FileOperationCallback& callback) { const FileOperationCallback& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
...@@ -398,28 +397,20 @@ void FileCache::MarkDirtyOnUIThread(const std::string& resource_id, ...@@ -398,28 +397,20 @@ void FileCache::MarkDirtyOnUIThread(const std::string& resource_id,
base::PostTaskAndReplyWithResult( base::PostTaskAndReplyWithResult(
blocking_task_runner_.get(), blocking_task_runner_.get(),
FROM_HERE, FROM_HERE,
base::Bind( base::Bind(&FileCache::MarkDirty, base::Unretained(this), resource_id),
&FileCache::MarkDirty, base::Unretained(this), resource_id, md5),
callback); callback);
} }
FileError FileCache::MarkDirty(const std::string& resource_id, FileError FileCache::MarkDirty(const std::string& resource_id) {
const std::string& md5) {
AssertOnSequencedWorkerPool(); AssertOnSequencedWorkerPool();
// If file has already been marked dirty in previous instance of chrome, we
// would have lost the md5 info during cache initialization, because the file
// would have been renamed to .local extension.
// So, search for entry in cache without comparing md5.
// Marking a file dirty means its entry and actual file blob must exist in // Marking a file dirty means its entry and actual file blob must exist in
// cache. // cache.
FileCacheEntry cache_entry; FileCacheEntry cache_entry;
if (!GetCacheEntry(resource_id, md5, &cache_entry) || if (!storage_->GetCacheEntry(resource_id, &cache_entry) ||
!cache_entry.is_present()) { !cache_entry.is_present()) {
LOG(WARNING) << "Can't mark dirty a file that wasn't cached: res_id=" LOG(WARNING) << "Can't mark dirty a file that wasn't cached: "
<< resource_id << resource_id;
<< ", md5=" << md5;
return FILE_ERROR_NOT_FOUND; return FILE_ERROR_NOT_FOUND;
} }
......
...@@ -200,12 +200,10 @@ class FileCache { ...@@ -200,12 +200,10 @@ class FileCache {
// |callback| must not be null. // |callback| must not be null.
// Must be called on the UI thread. // Must be called on the UI thread.
void MarkDirtyOnUIThread(const std::string& resource_id, void MarkDirtyOnUIThread(const std::string& resource_id,
const std::string& md5,
const FileOperationCallback& callback); const FileOperationCallback& callback);
// Marks the specified entry dirty. // Marks the specified entry dirty.
FileError MarkDirty(const std::string& resource_id, FileError MarkDirty(const std::string& resource_id);
const std::string& md5);
// Clears dirty state of the specified entry. // Clears dirty state of the specified entry.
FileError ClearDirty(const std::string& resource_id, FileError ClearDirty(const std::string& resource_id,
......
...@@ -200,7 +200,6 @@ class FileCacheTestOnUIThread : public testing::Test { ...@@ -200,7 +200,6 @@ class FileCacheTestOnUIThread : public testing::Test {
} }
void TestMarkDirty(const std::string& resource_id, void TestMarkDirty(const std::string& resource_id,
const std::string& md5,
FileError expected_error, FileError expected_error,
int expected_cache_state) { int expected_cache_state) {
expected_error_ = expected_error; expected_error_ = expected_error;
...@@ -208,17 +207,17 @@ class FileCacheTestOnUIThread : public testing::Test { ...@@ -208,17 +207,17 @@ class FileCacheTestOnUIThread : public testing::Test {
FileError error = FILE_ERROR_OK; FileError error = FILE_ERROR_OK;
cache_->MarkDirtyOnUIThread( cache_->MarkDirtyOnUIThread(
resource_id, md5, resource_id,
google_apis::test_util::CreateCopyResultCallback(&error)); google_apis::test_util::CreateCopyResultCallback(&error));
test_util::RunBlockingPoolTask(); test_util::RunBlockingPoolTask();
VerifyCacheFileState(error, resource_id, md5); VerifyCacheFileState(error, resource_id, std::string());
// Verify filename. // Verify filename.
if (error == FILE_ERROR_OK) { if (error == FILE_ERROR_OK) {
base::FilePath cache_file_path; base::FilePath cache_file_path;
cache_->GetFileOnUIThread( cache_->GetFileOnUIThread(
resource_id, md5, resource_id, std::string(),
google_apis::test_util::CreateCopyResultCallback( google_apis::test_util::CreateCopyResultCallback(
&error, &cache_file_path)); &error, &cache_file_path));
test_util::RunBlockingPoolTask(); test_util::RunBlockingPoolTask();
...@@ -554,7 +553,7 @@ TEST_F(FileCacheTestOnUIThread, DirtyCacheSimple) { ...@@ -554,7 +553,7 @@ TEST_F(FileCacheTestOnUIThread, DirtyCacheSimple) {
FILE_ERROR_OK, TEST_CACHE_STATE_PRESENT); FILE_ERROR_OK, TEST_CACHE_STATE_PRESENT);
// Mark the file dirty. // Mark the file dirty.
TestMarkDirty(resource_id, md5, FILE_ERROR_OK, TestMarkDirty(resource_id, FILE_ERROR_OK,
TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_DIRTY); TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_DIRTY);
// Clear dirty state of the file. // Clear dirty state of the file.
...@@ -572,7 +571,7 @@ TEST_F(FileCacheTestOnUIThread, DirtyCachePinned) { ...@@ -572,7 +571,7 @@ TEST_F(FileCacheTestOnUIThread, DirtyCachePinned) {
TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_PINNED); TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_PINNED);
// Mark the file dirty. // Mark the file dirty.
TestMarkDirty(resource_id, md5, FILE_ERROR_OK, TestMarkDirty(resource_id, FILE_ERROR_OK,
TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_PRESENT |
TEST_CACHE_STATE_DIRTY | TEST_CACHE_STATE_DIRTY |
TEST_CACHE_STATE_PINNED); TEST_CACHE_STATE_PINNED);
...@@ -589,7 +588,7 @@ TEST_F(FileCacheTestOnUIThread, PinAndUnpinDirtyCache) { ...@@ -589,7 +588,7 @@ TEST_F(FileCacheTestOnUIThread, PinAndUnpinDirtyCache) {
// First store a file to cache and mark it as dirty. // First store a file to cache and mark it as dirty.
TestStoreToCache(resource_id, md5, dummy_file_path_, TestStoreToCache(resource_id, md5, dummy_file_path_,
FILE_ERROR_OK, TEST_CACHE_STATE_PRESENT); FILE_ERROR_OK, TEST_CACHE_STATE_PRESENT);
TestMarkDirty(resource_id, md5, FILE_ERROR_OK, TestMarkDirty(resource_id, FILE_ERROR_OK,
TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_DIRTY); TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_DIRTY);
// Verifies dirty file exists. // Verifies dirty file exists.
...@@ -628,11 +627,11 @@ TEST_F(FileCacheTestOnUIThread, DirtyCacheRepetitive) { ...@@ -628,11 +627,11 @@ TEST_F(FileCacheTestOnUIThread, DirtyCacheRepetitive) {
FILE_ERROR_OK, TEST_CACHE_STATE_PRESENT); FILE_ERROR_OK, TEST_CACHE_STATE_PRESENT);
// Mark the file dirty. // Mark the file dirty.
TestMarkDirty(resource_id, md5, FILE_ERROR_OK, TestMarkDirty(resource_id, FILE_ERROR_OK,
TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_DIRTY); TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_DIRTY);
// Again, mark the file dirty. Nothing should change. // Again, mark the file dirty. Nothing should change.
TestMarkDirty(resource_id, md5, FILE_ERROR_OK, TestMarkDirty(resource_id, FILE_ERROR_OK,
TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_DIRTY); TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_DIRTY);
// Clear dirty state of the file. // Clear dirty state of the file.
...@@ -648,7 +647,7 @@ TEST_F(FileCacheTestOnUIThread, DirtyCacheInvalid) { ...@@ -648,7 +647,7 @@ TEST_F(FileCacheTestOnUIThread, DirtyCacheInvalid) {
std::string md5("abcdef0123456789"); std::string md5("abcdef0123456789");
// Mark a non-existent file dirty. // Mark a non-existent file dirty.
TestMarkDirty(resource_id, md5, FILE_ERROR_NOT_FOUND, TEST_CACHE_STATE_NONE); TestMarkDirty(resource_id, FILE_ERROR_NOT_FOUND, TEST_CACHE_STATE_NONE);
// Clear dirty state of a non-existent file. // Clear dirty state of a non-existent file.
TestClearDirty(resource_id, md5, FILE_ERROR_NOT_FOUND, TEST_CACHE_STATE_NONE); TestClearDirty(resource_id, md5, FILE_ERROR_NOT_FOUND, TEST_CACHE_STATE_NONE);
...@@ -663,7 +662,7 @@ TEST_F(FileCacheTestOnUIThread, DirtyCacheInvalid) { ...@@ -663,7 +662,7 @@ TEST_F(FileCacheTestOnUIThread, DirtyCacheInvalid) {
// Mark an existing file dirty, then store a new file to the same resource id // Mark an existing file dirty, then store a new file to the same resource id
// but different md5, which should fail. // but different md5, which should fail.
TestMarkDirty(resource_id, md5, FILE_ERROR_OK, TestMarkDirty(resource_id, FILE_ERROR_OK,
TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_DIRTY); TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_DIRTY);
md5 = "new_md5"; md5 = "new_md5";
TestStoreToCache(resource_id, md5, dummy_file_path_, TestStoreToCache(resource_id, md5, dummy_file_path_,
...@@ -680,7 +679,7 @@ TEST_F(FileCacheTestOnUIThread, RemoveFromDirtyCache) { ...@@ -680,7 +679,7 @@ TEST_F(FileCacheTestOnUIThread, RemoveFromDirtyCache) {
FILE_ERROR_OK, TEST_CACHE_STATE_PRESENT); FILE_ERROR_OK, TEST_CACHE_STATE_PRESENT);
TestPin(resource_id, FILE_ERROR_OK, TestPin(resource_id, FILE_ERROR_OK,
TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_PINNED); TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_PINNED);
TestMarkDirty(resource_id, md5, FILE_ERROR_OK, TestMarkDirty(resource_id, FILE_ERROR_OK,
TEST_CACHE_STATE_PRESENT | TEST_CACHE_STATE_PRESENT |
TEST_CACHE_STATE_PINNED | TEST_CACHE_STATE_PINNED |
TEST_CACHE_STATE_DIRTY); TEST_CACHE_STATE_DIRTY);
......
...@@ -46,7 +46,7 @@ FileError StoreAndMarkDirty(internal::FileCache* cache, ...@@ -46,7 +46,7 @@ FileError StoreAndMarkDirty(internal::FileCache* cache,
internal::FileCache::FILE_OPERATION_COPY); internal::FileCache::FILE_OPERATION_COPY);
if (error != FILE_ERROR_OK) if (error != FILE_ERROR_OK)
return error; return error;
return cache->MarkDirty(resource_id, md5); return cache->MarkDirty(resource_id);
} }
} // namespace } // namespace
......
...@@ -414,7 +414,6 @@ TEST_F(DownloadOperationTest, EnsureFileDownloadedByPath_DirtyCache) { ...@@ -414,7 +414,6 @@ TEST_F(DownloadOperationTest, EnsureFileDownloadedByPath_DirtyCache) {
EXPECT_EQ(FILE_ERROR_OK, error); EXPECT_EQ(FILE_ERROR_OK, error);
cache()->MarkDirtyOnUIThread( cache()->MarkDirtyOnUIThread(
src_entry.resource_id(), src_entry.resource_id(),
src_entry.file_specific_info().md5(),
google_apis::test_util::CreateCopyResultCallback(&error)); google_apis::test_util::CreateCopyResultCallback(&error));
test_util::RunBlockingPoolTask(); test_util::RunBlockingPoolTask();
EXPECT_EQ(FILE_ERROR_OK, error); EXPECT_EQ(FILE_ERROR_OK, error);
......
...@@ -28,7 +28,7 @@ FileError UpdateFileLocalState(internal::FileCache* cache, ...@@ -28,7 +28,7 @@ FileError UpdateFileLocalState(internal::FileCache* cache,
const std::string& resource_id, const std::string& resource_id,
const std::string& md5, const std::string& md5,
base::FilePath* local_file_path) { base::FilePath* local_file_path) {
FileError error = cache->MarkDirty(resource_id, md5); FileError error = cache->MarkDirty(resource_id);
if (error != FILE_ERROR_OK) if (error != FILE_ERROR_OK)
return error; return error;
......
...@@ -48,12 +48,11 @@ class ScopedPlatformFileCloser { ...@@ -48,12 +48,11 @@ class ScopedPlatformFileCloser {
// then marks the resource is dirty on |cache|. // then marks the resource is dirty on |cache|.
FileError TruncateOnBlockingPool(internal::FileCache* cache, FileError TruncateOnBlockingPool(internal::FileCache* cache,
const std::string& resource_id, const std::string& resource_id,
const std::string& md5,
const base::FilePath& local_cache_path, const base::FilePath& local_cache_path,
int64 length) { int64 length) {
DCHECK(cache); DCHECK(cache);
FileError error = cache->MarkDirty(resource_id, md5); FileError error = cache->MarkDirty(resource_id);
if (error != FILE_ERROR_OK) if (error != FILE_ERROR_OK)
return error; return error;
...@@ -149,7 +148,7 @@ void TruncateOperation::TruncateAfterEnsureFileDownloadedByPath( ...@@ -149,7 +148,7 @@ void TruncateOperation::TruncateAfterEnsureFileDownloadedByPath(
FROM_HERE, FROM_HERE,
base::Bind(&TruncateOnBlockingPool, base::Bind(&TruncateOnBlockingPool,
base::Unretained(cache_), base::Unretained(cache_),
entry->resource_id(), entry->file_specific_info().md5(), entry->resource_id(),
local_file_path, length), local_file_path, length),
base::Bind( base::Bind(
&TruncateOperation::TruncateAfterTruncateOnBlockingPool, &TruncateOperation::TruncateAfterTruncateOnBlockingPool,
......
...@@ -57,7 +57,7 @@ TEST_F(UpdateOperationTest, UpdateFileByResourceId_PersistentFile) { ...@@ -57,7 +57,7 @@ TEST_F(UpdateOperationTest, UpdateFileByResourceId_PersistentFile) {
// Add the dirty bit. // Add the dirty bit.
error = FILE_ERROR_FAILED; error = FILE_ERROR_FAILED;
cache()->MarkDirtyOnUIThread( cache()->MarkDirtyOnUIThread(
kResourceId, kMd5, kResourceId,
google_apis::test_util::CreateCopyResultCallback(&error)); google_apis::test_util::CreateCopyResultCallback(&error));
test_util::RunBlockingPoolTask(); test_util::RunBlockingPoolTask();
EXPECT_EQ(FILE_ERROR_OK, error); EXPECT_EQ(FILE_ERROR_OK, error);
...@@ -132,7 +132,7 @@ TEST_F(UpdateOperationTest, UpdateFileByResourceId_Md5) { ...@@ -132,7 +132,7 @@ TEST_F(UpdateOperationTest, UpdateFileByResourceId_Md5) {
// Add the dirty bit. // Add the dirty bit.
error = FILE_ERROR_FAILED; error = FILE_ERROR_FAILED;
cache()->MarkDirtyOnUIThread( cache()->MarkDirtyOnUIThread(
kResourceId, kMd5, kResourceId,
google_apis::test_util::CreateCopyResultCallback(&error)); google_apis::test_util::CreateCopyResultCallback(&error));
test_util::RunBlockingPoolTask(); test_util::RunBlockingPoolTask();
EXPECT_EQ(FILE_ERROR_OK, error); EXPECT_EQ(FILE_ERROR_OK, error);
...@@ -178,7 +178,7 @@ TEST_F(UpdateOperationTest, UpdateFileByResourceId_Md5) { ...@@ -178,7 +178,7 @@ TEST_F(UpdateOperationTest, UpdateFileByResourceId_Md5) {
// Again mark the cache file dirty. // Again mark the cache file dirty.
error = FILE_ERROR_FAILED; error = FILE_ERROR_FAILED;
cache()->MarkDirtyOnUIThread( cache()->MarkDirtyOnUIThread(
kResourceId, server_entry->file_md5(), kResourceId,
google_apis::test_util::CreateCopyResultCallback(&error)); google_apis::test_util::CreateCopyResultCallback(&error));
test_util::RunBlockingPoolTask(); test_util::RunBlockingPoolTask();
EXPECT_EQ(FILE_ERROR_OK, error); EXPECT_EQ(FILE_ERROR_OK, error);
......
...@@ -94,7 +94,7 @@ TEST_F(RemoveStaleCacheFilesTest, DirtyCacheFiles) { ...@@ -94,7 +94,7 @@ TEST_F(RemoveStaleCacheFilesTest, DirtyCacheFiles) {
EXPECT_EQ(FILE_ERROR_OK, EXPECT_EQ(FILE_ERROR_OK,
cache_->Store(resource_id_1, md5_1, dummy_file, cache_->Store(resource_id_1, md5_1, dummy_file,
FileCache::FILE_OPERATION_COPY)); FileCache::FILE_OPERATION_COPY));
EXPECT_EQ(FILE_ERROR_OK, cache_->MarkDirty(resource_id_1, md5_1)); EXPECT_EQ(FILE_ERROR_OK, cache_->MarkDirty(resource_id_1));
// Dirty and mismatching-MD5 entry. // Dirty and mismatching-MD5 entry.
std::string resource_id_2("file:2"); std::string resource_id_2("file:2");
...@@ -103,7 +103,7 @@ TEST_F(RemoveStaleCacheFilesTest, DirtyCacheFiles) { ...@@ -103,7 +103,7 @@ TEST_F(RemoveStaleCacheFilesTest, DirtyCacheFiles) {
EXPECT_EQ(FILE_ERROR_OK, EXPECT_EQ(FILE_ERROR_OK,
cache_->Store(resource_id_2, md5_2_cache, dummy_file, cache_->Store(resource_id_2, md5_2_cache, dummy_file,
FileCache::FILE_OPERATION_COPY)); FileCache::FILE_OPERATION_COPY));
EXPECT_EQ(FILE_ERROR_OK, cache_->MarkDirty(resource_id_2, md5_2_cache)); EXPECT_EQ(FILE_ERROR_OK, cache_->MarkDirty(resource_id_2));
ResourceEntry entry; ResourceEntry entry;
entry.set_resource_id(resource_id_2); entry.set_resource_id(resource_id_2);
......
...@@ -178,8 +178,7 @@ class SyncClientTest : public testing::Test { ...@@ -178,8 +178,7 @@ class SyncClientTest : public testing::Test {
cache_->Store(resource_ids_["dirty"], md5_dirty, cache_->Store(resource_ids_["dirty"], md5_dirty,
temp_file, FileCache::FILE_OPERATION_COPY)); temp_file, FileCache::FILE_OPERATION_COPY));
EXPECT_EQ(FILE_ERROR_OK, cache_->Pin(resource_ids_["dirty"])); EXPECT_EQ(FILE_ERROR_OK, cache_->Pin(resource_ids_["dirty"]));
EXPECT_EQ(FILE_ERROR_OK, EXPECT_EQ(FILE_ERROR_OK, cache_->MarkDirty(resource_ids_["dirty"]));
cache_->MarkDirty(resource_ids_["dirty"], md5_dirty));
// Load data from the service to the metadata. // Load data from the service to the metadata.
FileError error = FILE_ERROR_FAILED; FileError error = FILE_ERROR_FAILED;
......
...@@ -158,7 +158,6 @@ bool PrepareTestCacheResources( ...@@ -158,7 +158,6 @@ bool PrepareTestCacheResources(
FileError error = FILE_ERROR_OK; FileError error = FILE_ERROR_OK;
cache->MarkDirtyOnUIThread( cache->MarkDirtyOnUIThread(
resources[i].resource_id, resources[i].resource_id,
resources[i].md5,
google_apis::test_util::CreateCopyResultCallback(&error)); google_apis::test_util::CreateCopyResultCallback(&error));
test_util::RunBlockingPoolTask(); test_util::RunBlockingPoolTask();
if (error != FILE_ERROR_OK) if (error != FILE_ERROR_OK)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment