diff options
author | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-10 09:30:16 +0000 |
---|---|---|
committer | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-10 09:30:16 +0000 |
commit | 2ea14ae5fa9757d6ecf5ab958f0611519750572d (patch) | |
tree | 50768b4850d79057bb872173f76ba1aaea620977 /webkit/fileapi/syncable | |
parent | a0df90e0bed64fb1f7766329b83d1f5c8c802c2e (diff) | |
download | chromium_src-2ea14ae5fa9757d6ecf5ab958f0611519750572d.zip chromium_src-2ea14ae5fa9757d6ecf5ab958f0611519750572d.tar.gz chromium_src-2ea14ae5fa9757d6ecf5ab958f0611519750572d.tar.bz2 |
PrepareForRemoteSync should also return file size (in addition to file type)
- Change LocalFileSyncInfo struct to have SyncFileMetadata and move its
definition to sync_file_metadata.h
- Change PrepareForSync to return file metadata
BUG=160210
TEST=content_unittests:LocalFileSyncContextTest.*
TEST=unit_tests:LocalFileSyncServiceTest.*
Review URL: https://chromiumcodereview.appspot.com/11360166
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167075 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi/syncable')
-rw-r--r-- | webkit/fileapi/syncable/file_change.cc | 5 | ||||
-rw-r--r-- | webkit/fileapi/syncable/file_change.h | 11 | ||||
-rw-r--r-- | webkit/fileapi/syncable/local_file_sync_context.cc | 6 | ||||
-rw-r--r-- | webkit/fileapi/syncable/local_file_sync_context.h | 2 | ||||
-rw-r--r-- | webkit/fileapi/syncable/local_file_sync_context_unittest.cc | 51 | ||||
-rw-r--r-- | webkit/fileapi/syncable/sync_file_metadata.cc | 3 | ||||
-rw-r--r-- | webkit/fileapi/syncable/sync_file_metadata.h | 12 |
7 files changed, 47 insertions, 43 deletions
diff --git a/webkit/fileapi/syncable/file_change.cc b/webkit/fileapi/syncable/file_change.cc index 0e8b5c4..53e6570 100644 --- a/webkit/fileapi/syncable/file_change.cc +++ b/webkit/fileapi/syncable/file_change.cc @@ -87,9 +87,4 @@ std::string FileChangeList::DebugString() const { return ss.str(); } -LocalFileSyncInfo::LocalFileSyncInfo() - : file_type(SYNC_FILE_TYPE_UNKNOWN) {} - -LocalFileSyncInfo::~LocalFileSyncInfo() {} - } // namespace fileapi diff --git a/webkit/fileapi/syncable/file_change.h b/webkit/fileapi/syncable/file_change.h index f434a07..88e26a4 100644 --- a/webkit/fileapi/syncable/file_change.h +++ b/webkit/fileapi/syncable/file_change.h @@ -71,17 +71,6 @@ class WEBKIT_STORAGE_EXPORT FileChangeList { List list_; }; -// Move this to sync_file_metadata.h. -struct WEBKIT_STORAGE_EXPORT LocalFileSyncInfo { - LocalFileSyncInfo(); - ~LocalFileSyncInfo(); - - FileSystemURL url; - FilePath local_file_path; - SyncFileType file_type; // TODO: replace this with SyncFileMetadata. - FileChangeList changes; -}; - } // namespace fileapi #endif // WEBKIT_FILEAPI_SYNCABLE_FILE_CHANGE_H_ diff --git a/webkit/fileapi/syncable/local_file_sync_context.cc b/webkit/fileapi/syncable/local_file_sync_context.cc index 4e148ff..c5de58f 100644 --- a/webkit/fileapi/syncable/local_file_sync_context.cc +++ b/webkit/fileapi/syncable/local_file_sync_context.cc @@ -18,6 +18,7 @@ #include "webkit/fileapi/syncable/file_change.h" #include "webkit/fileapi/syncable/local_file_change_tracker.h" #include "webkit/fileapi/syncable/local_origin_change_observer.h" +#include "webkit/fileapi/syncable/sync_file_metadata.h" #include "webkit/fileapi/syncable/syncable_file_operation_runner.h" #include "webkit/fileapi/syncable/syncable_file_system_util.h" @@ -486,8 +487,9 @@ void LocalFileSyncContext::DidGetWritingStatusForSync( LocalFileSyncInfo sync_file_info; sync_file_info.url = url; sync_file_info.local_file_path = platform_path; - sync_file_info.file_type = file_type; - // TODO: fill file size. + sync_file_info.metadata.file_type = file_type; + sync_file_info.metadata.size = file_info.size; + sync_file_info.metadata.last_modified = file_info.last_modified; sync_file_info.changes = changes; ui_task_runner_->PostTask(FROM_HERE, diff --git a/webkit/fileapi/syncable/local_file_sync_context.h b/webkit/fileapi/syncable/local_file_sync_context.h index e945012..76912de 100644 --- a/webkit/fileapi/syncable/local_file_sync_context.h +++ b/webkit/fileapi/syncable/local_file_sync_context.h @@ -20,7 +20,6 @@ #include "base/observer_list.h" #include "base/timer.h" #include "googleurl/src/gurl.h" -#include "webkit/fileapi/syncable/file_change.h" #include "webkit/fileapi/syncable/local_file_sync_status.h" #include "webkit/fileapi/syncable/sync_callbacks.h" #include "webkit/fileapi/syncable/sync_status_code.h" @@ -35,6 +34,7 @@ namespace fileapi { class FileChange; class FileSystemContext; class LocalFileChangeTracker; +struct LocalFileSyncInfo; class LocalOriginChangeObserver; class SyncableFileOperationRunner; diff --git a/webkit/fileapi/syncable/local_file_sync_context_unittest.cc b/webkit/fileapi/syncable/local_file_sync_context_unittest.cc index 5f99449..58be431 100644 --- a/webkit/fileapi/syncable/local_file_sync_context_unittest.cc +++ b/webkit/fileapi/syncable/local_file_sync_context_unittest.cc @@ -22,6 +22,7 @@ #include "webkit/fileapi/syncable/canned_syncable_file_system.h" #include "webkit/fileapi/syncable/file_change.h" #include "webkit/fileapi/syncable/local_file_change_tracker.h" +#include "webkit/fileapi/syncable/sync_file_metadata.h" #include "webkit/fileapi/syncable/sync_status_code.h" #include "webkit/fileapi/syncable/syncable_file_system_util.h" @@ -72,7 +73,7 @@ class LocalFileSyncContextTest : public testing::Test { void StartPrepareForSync(FileSystemContext* file_system_context, const FileSystemURL& url, - SyncFileType* file_type, + SyncFileMetadata* metadata, FileChangeList* changes) { ASSERT_TRUE(changes != NULL); ASSERT_FALSE(has_inflight_prepare_for_sync_); @@ -82,36 +83,36 @@ class LocalFileSyncContextTest : public testing::Test { file_system_context, url, base::Bind(&LocalFileSyncContextTest::DidPrepareForSync, - base::Unretained(this), file_type, changes)); + base::Unretained(this), metadata, changes)); } SyncStatusCode PrepareForSync(FileSystemContext* file_system_context, const FileSystemURL& url, - SyncFileType* file_type, + SyncFileMetadata* metadata, FileChangeList* changes) { - StartPrepareForSync(file_system_context, url, file_type, changes); + StartPrepareForSync(file_system_context, url, metadata, changes); MessageLoop::current()->Run(); return status_; } base::Closure GetPrepareForSyncClosure(FileSystemContext* file_system_context, const FileSystemURL& url, - SyncFileType* file_type, + SyncFileMetadata* metadata, FileChangeList* changes) { return base::Bind(&LocalFileSyncContextTest::StartPrepareForSync, base::Unretained(this), base::Unretained(file_system_context), - url, file_type, changes); + url, metadata, changes); } - void DidPrepareForSync(SyncFileType* file_type_out, + void DidPrepareForSync(SyncFileMetadata* metadata_out, FileChangeList* changes_out, SyncStatusCode status, const LocalFileSyncInfo& sync_file_info) { ASSERT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); has_inflight_prepare_for_sync_ = false; status_ = status; - *file_type_out = sync_file_info.file_type; + *metadata_out = sync_file_info.metadata; *changes_out = sync_file_info.changes; MessageLoop::current()->Quit(); } @@ -120,16 +121,16 @@ class LocalFileSyncContextTest : public testing::Test { const FileChange& change, const FilePath& local_path, const FileSystemURL& url, - const SyncFileType expected_file_type) { + SyncFileType expected_file_type) { SCOPED_TRACE(testing::Message() << "ApplyChange for " << url.DebugString()); // First we should call PrepareForSync to disable writing. - SyncFileType file_type; + SyncFileMetadata metadata; FileChangeList changes; EXPECT_EQ(SYNC_STATUS_OK, - PrepareForSync(file_system_context, url, &file_type, &changes)); - EXPECT_EQ(expected_file_type, file_type); + PrepareForSync(file_system_context, url, &metadata, &changes)); + EXPECT_EQ(expected_file_type, metadata.file_type); status_ = SYNC_STATUS_UNKNOWN; sync_context_->ApplyRemoteChange( @@ -299,22 +300,24 @@ TEST_F(LocalFileSyncContextTest, MultipleFileSystemContexts) { ASSERT_EQ(1U, urls.size()); EXPECT_TRUE(ContainsKey(urls, kURL2)); - SyncFileType file_type; + SyncFileMetadata metadata; FileChangeList changes; EXPECT_EQ(SYNC_STATUS_OK, PrepareForSync(file_system1.file_system_context(), - kURL1, &file_type, &changes)); + kURL1, &metadata, &changes)); EXPECT_EQ(1U, changes.size()); EXPECT_TRUE(changes.list().back().IsFile()); EXPECT_TRUE(changes.list().back().IsAddOrUpdate()); - EXPECT_EQ(SYNC_FILE_TYPE_FILE, file_type); + EXPECT_EQ(SYNC_FILE_TYPE_FILE, metadata.file_type); + EXPECT_EQ(0, metadata.size); changes.clear(); EXPECT_EQ(SYNC_STATUS_OK, PrepareForSync(file_system2.file_system_context(), - kURL2, &file_type, &changes)); + kURL2, &metadata, &changes)); EXPECT_EQ(1U, changes.size()); EXPECT_FALSE(changes.list().back().IsFile()); EXPECT_TRUE(changes.list().back().IsAddOrUpdate()); - EXPECT_EQ(SYNC_FILE_TYPE_DIRECTORY, file_type); + EXPECT_EQ(SYNC_FILE_TYPE_DIRECTORY, metadata.file_type); + EXPECT_EQ(0, metadata.size); sync_context_->ShutdownOnUIThread(); sync_context_ = NULL; @@ -342,21 +345,22 @@ TEST_F(LocalFileSyncContextTest, PrepareSyncWhileWriting) { StartModifyFileOnIOThread(&file_system, kURL1); // Until the operation finishes PrepareForSync should return BUSY error. - SyncFileType file_type; + SyncFileMetadata metadata; + metadata.file_type = SYNC_FILE_TYPE_UNKNOWN; FileChangeList changes; EXPECT_EQ(SYNC_STATUS_FILE_BUSY, PrepareForSync(file_system.file_system_context(), - kURL1, &file_type, &changes)); - EXPECT_EQ(SYNC_FILE_TYPE_FILE, file_type); + kURL1, &metadata, &changes)); + EXPECT_EQ(SYNC_FILE_TYPE_FILE, metadata.file_type); // Register PrepareForSync method to be invoked when kURL1 becomes // syncable. (Actually this may be done after all operations are done // on IO thread in this test.) - file_type = SYNC_FILE_TYPE_UNKNOWN; + metadata.file_type = SYNC_FILE_TYPE_UNKNOWN; changes.clear(); sync_context_->RegisterURLForWaitingSync( kURL1, GetPrepareForSyncClosure(file_system.file_system_context(), - kURL1, &file_type, &changes)); + kURL1, &metadata, &changes)); // Wait for the completion. EXPECT_EQ(base::PLATFORM_FILE_OK, WaitUntilModifyFileIsDone()); @@ -371,7 +375,8 @@ TEST_F(LocalFileSyncContextTest, PrepareSyncWhileWriting) { EXPECT_EQ(1U, changes.size()); EXPECT_TRUE(changes.list().back().IsFile()); EXPECT_TRUE(changes.list().back().IsAddOrUpdate()); - EXPECT_EQ(SYNC_FILE_TYPE_FILE, file_type); + EXPECT_EQ(SYNC_FILE_TYPE_FILE, metadata.file_type); + EXPECT_EQ(1, metadata.size); sync_context_->ShutdownOnUIThread(); sync_context_ = NULL; diff --git a/webkit/fileapi/syncable/sync_file_metadata.cc b/webkit/fileapi/syncable/sync_file_metadata.cc index 5f87319..6138ee7 100644 --- a/webkit/fileapi/syncable/sync_file_metadata.cc +++ b/webkit/fileapi/syncable/sync_file_metadata.cc @@ -16,4 +16,7 @@ SyncFileMetadata::~SyncFileMetadata() {} ConflictFileInfo::ConflictFileInfo() {} ConflictFileInfo::~ConflictFileInfo() {} +LocalFileSyncInfo::LocalFileSyncInfo() {} +LocalFileSyncInfo::~LocalFileSyncInfo() {} + } // namespace fileapi diff --git a/webkit/fileapi/syncable/sync_file_metadata.h b/webkit/fileapi/syncable/sync_file_metadata.h index 93a9766..8e269d1 100644 --- a/webkit/fileapi/syncable/sync_file_metadata.h +++ b/webkit/fileapi/syncable/sync_file_metadata.h @@ -8,7 +8,7 @@ #include "base/basictypes.h" #include "base/time.h" #include "webkit/fileapi/file_system_url.h" -#include "webkit/fileapi/syncable/sync_file_type.h" +#include "webkit/fileapi/syncable/file_change.h" #include "webkit/storage/webkit_storage_export.h" namespace fileapi { @@ -33,6 +33,16 @@ class WEBKIT_STORAGE_EXPORT ConflictFileInfo { SyncFileMetadata remote_metadata; }; +struct WEBKIT_STORAGE_EXPORT LocalFileSyncInfo { + LocalFileSyncInfo(); + ~LocalFileSyncInfo(); + + FileSystemURL url; + FilePath local_file_path; + SyncFileMetadata metadata; + FileChangeList changes; +}; + } // namespace fileapi #endif // WEBKIT_FILEAPI_SYNCABLE_SYNC_FILE_METADATA_H_ |