OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/sync/driver/generic_change_processor.h" | 5 #include "components/sync/driver/generic_change_processor.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <string> | 10 #include <string> |
(...skipping 19 matching lines...) Expand all Loading... |
30 #include "components/sync/driver/sync_client.h" | 30 #include "components/sync/driver/sync_client.h" |
31 #include "components/sync/syncable/entry.h" // TODO(tim): Bug 123674. | 31 #include "components/sync/syncable/entry.h" // TODO(tim): Bug 123674. |
32 | 32 |
33 namespace sync_driver { | 33 namespace sync_driver { |
34 | 34 |
35 namespace { | 35 namespace { |
36 | 36 |
37 const int kContextSizeLimit = 1024; // Datatype context size limit. | 37 const int kContextSizeLimit = 1024; // Datatype context size limit. |
38 | 38 |
39 void SetNodeSpecifics(const sync_pb::EntitySpecifics& entity_specifics, | 39 void SetNodeSpecifics(const sync_pb::EntitySpecifics& entity_specifics, |
40 syncer::WriteNode* write_node) { | 40 syncer::WriteNode* write_node, |
| 41 syncer::PassphraseType passphrase_type) { |
41 if (syncer::GetModelTypeFromSpecifics(entity_specifics) == | 42 if (syncer::GetModelTypeFromSpecifics(entity_specifics) == |
42 syncer::PASSWORDS) { | 43 syncer::PASSWORDS) { |
43 write_node->SetPasswordSpecifics( | 44 write_node->SetPasswordSpecifics( |
44 entity_specifics.password().client_only_encrypted_data(), | 45 entity_specifics.password().client_only_encrypted_data(), |
45 // TODO(melandory): Since PasswordsSpecifics care about passphrase type. | 46 passphrase_type); |
46 // the real value should be passed here. | 47 |
47 syncer::PassphraseType::UNDEFINED); | |
48 } else { | 48 } else { |
49 write_node->SetEntitySpecifics(entity_specifics); | 49 write_node->SetEntitySpecifics(entity_specifics); |
50 } | 50 } |
51 } | 51 } |
52 | 52 |
53 // Helper function to convert AttachmentId to AttachmentMetadataRecord. | 53 // Helper function to convert AttachmentId to AttachmentMetadataRecord. |
54 sync_pb::AttachmentMetadataRecord AttachmentIdToRecord( | 54 sync_pb::AttachmentMetadataRecord AttachmentIdToRecord( |
55 const syncer::AttachmentId& attachment_id) { | 55 const syncer::AttachmentId& attachment_id) { |
56 sync_pb::AttachmentMetadataRecord record; | 56 sync_pb::AttachmentMetadataRecord record; |
57 *record.mutable_id() = attachment_id.GetProto(); | 57 *record.mutable_id() = attachment_id.GetProto(); |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 } | 550 } |
551 default: { | 551 default: { |
552 syncer::SyncError error; | 552 syncer::SyncError error; |
553 error.Reset(FROM_HERE, error_prefix + "unknown error", type_); | 553 error.Reset(FROM_HERE, error_prefix + "unknown error", type_); |
554 error_handler()->OnSingleDataTypeUnrecoverableError(error); | 554 error_handler()->OnSingleDataTypeUnrecoverableError(error); |
555 LOG(ERROR) << "Create: Unknown error."; | 555 LOG(ERROR) << "Create: Unknown error."; |
556 return error; | 556 return error; |
557 } | 557 } |
558 } | 558 } |
559 } | 559 } |
| 560 syncer::PassphraseType passphrase_type = syncer::PassphraseType::UNDEFINED; |
| 561 { |
| 562 syncer::ReadTransaction trans(FROM_HERE, share_handle()); |
| 563 passphrase_type = trans.GetPassphraseType(); |
| 564 } |
560 sync_node->SetTitle(change.sync_data().GetTitle()); | 565 sync_node->SetTitle(change.sync_data().GetTitle()); |
561 SetNodeSpecifics(sync_data_local.GetSpecifics(), sync_node); | 566 SetNodeSpecifics(sync_data_local.GetSpecifics(), sync_node,passphrase_type) ; |
562 | 567 |
563 syncer::AttachmentIdList attachment_ids = sync_data_local.GetAttachmentIds(); | 568 syncer::AttachmentIdList attachment_ids = sync_data_local.GetAttachmentIds(); |
564 SetAttachmentMetadata(attachment_ids, sync_node); | 569 SetAttachmentMetadata(attachment_ids, sync_node); |
565 | 570 |
566 // Return any newly added attachments. | 571 // Return any newly added attachments. |
567 new_attachments->insert(attachment_ids.begin(), attachment_ids.end()); | 572 new_attachments->insert(attachment_ids.begin(), attachment_ids.end()); |
568 if (merge_result_.get()) { | 573 if (merge_result_.get()) { |
569 merge_result_->set_num_items_added(merge_result_->num_items_added() + 1); | 574 merge_result_->set_num_items_added(merge_result_->num_items_added() + 1); |
570 } | 575 } |
571 return syncer::SyncError(); | 576 return syncer::SyncError(); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 return error; | 618 return error; |
614 } else { | 619 } else { |
615 NOTREACHED(); | 620 NOTREACHED(); |
616 syncer::SyncError error; | 621 syncer::SyncError error; |
617 error.Reset(FROM_HERE, error_prefix + "unknown error", type_); | 622 error.Reset(FROM_HERE, error_prefix + "unknown error", type_); |
618 error_handler()->OnSingleDataTypeUnrecoverableError(error); | 623 error_handler()->OnSingleDataTypeUnrecoverableError(error); |
619 LOG(ERROR) << "Update: Unknown error."; | 624 LOG(ERROR) << "Update: Unknown error."; |
620 return error; | 625 return error; |
621 } | 626 } |
622 } | 627 } |
623 | 628 syncer::PassphraseType passphrase_type = syncer::PassphraseType::UNDEFINED; |
| 629 { |
| 630 syncer::ReadTransaction trans(FROM_HERE, share_handle()); |
| 631 passphrase_type = trans.GetPassphraseType(); |
| 632 } |
624 sync_node->SetTitle(change.sync_data().GetTitle()); | 633 sync_node->SetTitle(change.sync_data().GetTitle()); |
625 SetNodeSpecifics(sync_data_local.GetSpecifics(), sync_node); | 634 SetNodeSpecifics(sync_data_local.GetSpecifics(), sync_node, passphrase_type); |
626 syncer::AttachmentIdList attachment_ids = sync_data_local.GetAttachmentIds(); | 635 syncer::AttachmentIdList attachment_ids = sync_data_local.GetAttachmentIds(); |
627 SetAttachmentMetadata(attachment_ids, sync_node); | 636 SetAttachmentMetadata(attachment_ids, sync_node); |
628 | 637 |
629 // Return any newly added attachments. | 638 // Return any newly added attachments. |
630 new_attachments->insert(attachment_ids.begin(), attachment_ids.end()); | 639 new_attachments->insert(attachment_ids.begin(), attachment_ids.end()); |
631 | 640 |
632 if (merge_result_.get()) { | 641 if (merge_result_.get()) { |
633 merge_result_->set_num_items_modified(merge_result_->num_items_modified() + | 642 merge_result_->set_num_items_modified(merge_result_->num_items_modified() + |
634 1); | 643 1); |
635 } | 644 } |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
687 } | 696 } |
688 } | 697 } |
689 | 698 |
690 std::unique_ptr<syncer::AttachmentService> | 699 std::unique_ptr<syncer::AttachmentService> |
691 GenericChangeProcessor::GetAttachmentService() const { | 700 GenericChangeProcessor::GetAttachmentService() const { |
692 return std::unique_ptr<syncer::AttachmentService>( | 701 return std::unique_ptr<syncer::AttachmentService>( |
693 new syncer::AttachmentServiceProxy(attachment_service_proxy_)); | 702 new syncer::AttachmentServiceProxy(attachment_service_proxy_)); |
694 } | 703 } |
695 | 704 |
696 } // namespace sync_driver | 705 } // namespace sync_driver |
OLD | NEW |