summaryrefslogtreecommitdiffstats
path: root/sync/internal_api/sync_encryption_handler_impl.cc
diff options
context:
space:
mode:
authorzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 02:30:24 +0000
committerzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 02:30:24 +0000
commit1f51ad94964af7f256ac1d762a04cfac1e9935c5 (patch)
tree621e43948dbd9825f0d1ab1f501ab0a91bbe9ede /sync/internal_api/sync_encryption_handler_impl.cc
parent3c372a1ae0e609691994bc74ade55175a3e2ea97 (diff)
downloadchromium_src-1f51ad94964af7f256ac1d762a04cfac1e9935c5.zip
chromium_src-1f51ad94964af7f256ac1d762a04cfac1e9935c5.tar.gz
chromium_src-1f51ad94964af7f256ac1d762a04cfac1e9935c5.tar.bz2
[Sync] Allow enabling partial sets of types instead of blocking
Blocking the datatype manager when datatypes fail to start is a sign of encryption issues, but is not fatal to sync. Therefore, it makes more sense to sync what we can (particularly so we can receive birthday updates), while marking those types with encryption problems as failed. To accomplish this we move all automatic reconfiguration logic into the data type manager itself, and add support for delayed association by unapplying all types with cryptographer errors. This also lays the groundwork for delayed association when a transaction version discrepancy is detected. BUG=238712 Review URL: https://chromiumcodereview.appspot.com/15013004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204695 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/internal_api/sync_encryption_handler_impl.cc')
-rw-r--r--sync/internal_api/sync_encryption_handler_impl.cc6
1 files changed, 2 insertions, 4 deletions
diff --git a/sync/internal_api/sync_encryption_handler_impl.cc b/sync/internal_api/sync_encryption_handler_impl.cc
index 48ad2a8..2e28e75 100644
--- a/sync/internal_api/sync_encryption_handler_impl.cc
+++ b/sync/internal_api/sync_encryption_handler_impl.cc
@@ -810,10 +810,8 @@ void SyncEncryptionHandlerImpl::ReEncryptEverything(
continue;
WriteNode child(trans);
- if (child.InitByIdLookup(child_id) != BaseNode::INIT_OK) {
- NOTREACHED();
- continue;
- }
+ if (child.InitByIdLookup(child_id) != BaseNode::INIT_OK)
+ continue; // Possible for locally deleted items.
if (child.GetIsFolder()) {
to_visit.push(child.GetFirstChildId());
}