Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1060)

Unified Diff: components/sync_driver/generic_change_processor.cc

Issue 582913002: Make GenericChangeProcessor upload attachments on startup. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge with master. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/sync_driver/generic_change_processor.cc
diff --git a/components/sync_driver/generic_change_processor.cc b/components/sync_driver/generic_change_processor.cc
index 08238e5337ffb461971986f924372ed93fb0279e..a6614f8ce66ac49b6669ccaafa140741741aef40 100644
--- a/components/sync_driver/generic_change_processor.cc
+++ b/components/sync_driver/generic_change_processor.cc
@@ -112,6 +112,7 @@ GenericChangeProcessor::GenericChangeProcessor(
attachment_service_proxy_.reset(new syncer::AttachmentServiceProxy(
base::MessageLoopProxy::current(),
attachment_service_weak_ptr_factory_->GetWeakPtr()));
+ UploadAllAttachmentsNotOnServer();
} else {
attachment_service_proxy_.reset(new syncer::AttachmentServiceProxy(
base::MessageLoopProxy::current(),
@@ -408,7 +409,7 @@ syncer::SyncError GenericChangeProcessor::ProcessSyncChanges(
// Keep track of brand new attachments so we can persist them on this device
// and upload them to the server.
- syncer::AttachmentIdList new_attachments;
+ syncer::AttachmentIdSet new_attachments;
syncer::WriteTransaction trans(from_here, share_handle());
@@ -470,7 +471,7 @@ syncer::SyncError GenericChangeProcessor::ProcessSyncChanges(
NOTREACHED();
return error;
}
- UploadAttachments(new_attachments);
+ attachment_service_->UploadAttachments(new_attachments);
}
return syncer::SyncError();
@@ -485,7 +486,7 @@ syncer::SyncError GenericChangeProcessor::HandleActionAdd(
const std::string& type_str,
const syncer::WriteTransaction& trans,
syncer::WriteNode* sync_node,
- syncer::AttachmentIdList* new_attachments) {
+ syncer::AttachmentIdSet* new_attachments) {
// TODO(sync): Handle other types of creation (custom parents, folders,
// etc.).
syncer::ReadNode root_node(&trans);
@@ -553,8 +554,7 @@ syncer::SyncError GenericChangeProcessor::HandleActionAdd(
SetAttachmentMetadata(attachment_ids, sync_node);
// Return any newly added attachments.
- new_attachments->insert(
- new_attachments->end(), attachment_ids.begin(), attachment_ids.end());
+ new_attachments->insert(attachment_ids.begin(), attachment_ids.end());
if (merge_result_.get()) {
merge_result_->set_num_items_added(merge_result_->num_items_added() + 1);
}
@@ -569,7 +569,7 @@ syncer::SyncError GenericChangeProcessor::HandleActionUpdate(
const std::string& type_str,
const syncer::WriteTransaction& trans,
syncer::WriteNode* sync_node,
- syncer::AttachmentIdList* new_attachments) {
+ syncer::AttachmentIdSet* new_attachments) {
// TODO(zea): consider having this logic for all possible changes?
const syncer::SyncDataLocal sync_data_local(change.sync_data());
@@ -655,8 +655,7 @@ syncer::SyncError GenericChangeProcessor::HandleActionUpdate(
SetAttachmentMetadata(attachment_ids, sync_node);
// Return any newly added attachments.
- new_attachments->insert(
- new_attachments->end(), attachment_ids.begin(), attachment_ids.end());
+ new_attachments->insert(attachment_ids.begin(), attachment_ids.end());
if (merge_result_.get()) {
merge_result_->set_num_items_modified(merge_result_->num_items_modified() +
@@ -703,14 +702,17 @@ syncer::UserShare* GenericChangeProcessor::share_handle() const {
return share_handle_;
}
-void GenericChangeProcessor::UploadAttachments(
- const syncer::AttachmentIdList& attachment_ids) {
+void GenericChangeProcessor::UploadAllAttachmentsNotOnServer() {
DCHECK(CalledOnValidThread());
- DCHECK(attachment_service_.get() != NULL);
-
- syncer::AttachmentIdSet attachment_id_set;
- attachment_id_set.insert(attachment_ids.begin(), attachment_ids.end());
- attachment_service_->UploadAttachments(attachment_id_set);
+ DCHECK(attachment_service_.get());
+ syncer::AttachmentIdSet id_set;
+ {
+ syncer::ReadTransaction trans(FROM_HERE, share_handle());
+ trans.GetAttachmentIdsToUpload(type_, &id_set);
+ }
+ if (!id_set.empty()) {
+ attachment_service_->UploadAttachments(id_set);
+ }
}
} // namespace sync_driver
« no previous file with comments | « components/sync_driver/generic_change_processor.h ('k') | components/sync_driver/generic_change_processor_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698