summaryrefslogtreecommitdiffstats
path: root/webkit/fileapi/syncable
diff options
context:
space:
mode:
authorkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-10 09:30:16 +0000
committerkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-10 09:30:16 +0000
commit2ea14ae5fa9757d6ecf5ab958f0611519750572d (patch)
tree50768b4850d79057bb872173f76ba1aaea620977 /webkit/fileapi/syncable
parenta0df90e0bed64fb1f7766329b83d1f5c8c802c2e (diff)
downloadchromium_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.cc5
-rw-r--r--webkit/fileapi/syncable/file_change.h11
-rw-r--r--webkit/fileapi/syncable/local_file_sync_context.cc6
-rw-r--r--webkit/fileapi/syncable/local_file_sync_context.h2
-rw-r--r--webkit/fileapi/syncable/local_file_sync_context_unittest.cc51
-rw-r--r--webkit/fileapi/syncable/sync_file_metadata.cc3
-rw-r--r--webkit/fileapi/syncable/sync_file_metadata.h12
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_