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

Side by Side Diff: sync/internal_api/sync_manager.cc

Issue 10197004: [Sync] Convert SyncSessionSnapshot to a copy-able class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments. Created 8 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sync/internal_api/sync_manager.h ('k') | sync/internal_api/syncapi_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "sync/internal_api/sync_manager.h" 5 #include "sync/internal_api/sync_manager.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 2052 matching lines...) Expand 10 before | Expand all | Expand 10 after
2063 Cryptographer* cryptographer = trans.GetCryptographer(); 2063 Cryptographer* cryptographer = trans.GetCryptographer();
2064 // If we've completed a sync cycle and the cryptographer isn't ready 2064 // If we've completed a sync cycle and the cryptographer isn't ready
2065 // yet, prompt the user for a passphrase. 2065 // yet, prompt the user for a passphrase.
2066 if (cryptographer->has_pending_keys()) { 2066 if (cryptographer->has_pending_keys()) {
2067 DVLOG(1) << "OnPassPhraseRequired Sent"; 2067 DVLOG(1) << "OnPassPhraseRequired Sent";
2068 sync_pb::EncryptedData pending_keys = cryptographer->GetPendingKeys(); 2068 sync_pb::EncryptedData pending_keys = cryptographer->GetPendingKeys();
2069 FOR_EACH_OBSERVER(SyncManager::Observer, observers_, 2069 FOR_EACH_OBSERVER(SyncManager::Observer, observers_,
2070 OnPassphraseRequired(sync_api::REASON_DECRYPTION, 2070 OnPassphraseRequired(sync_api::REASON_DECRYPTION,
2071 pending_keys)); 2071 pending_keys));
2072 } else if (!cryptographer->is_ready() && 2072 } else if (!cryptographer->is_ready() &&
2073 event.snapshot->initial_sync_ended.Has(syncable::NIGORI)) { 2073 event.snapshot.initial_sync_ended().Has(syncable::NIGORI)) {
2074 DVLOG(1) << "OnPassphraseRequired sent because cryptographer is not " 2074 DVLOG(1) << "OnPassphraseRequired sent because cryptographer is not "
2075 << "ready"; 2075 << "ready";
2076 FOR_EACH_OBSERVER(SyncManager::Observer, observers_, 2076 FOR_EACH_OBSERVER(SyncManager::Observer, observers_,
2077 OnPassphraseRequired(sync_api::REASON_ENCRYPTION, 2077 OnPassphraseRequired(sync_api::REASON_ENCRYPTION,
2078 sync_pb::EncryptedData())); 2078 sync_pb::EncryptedData()));
2079 } 2079 }
2080 2080
2081 NotifyCryptographerState(cryptographer); 2081 NotifyCryptographerState(cryptographer);
2082 allstatus_.SetEncryptedTypes(cryptographer->GetEncryptedTypes()); 2082 allstatus_.SetEncryptedTypes(cryptographer->GetEncryptedTypes());
2083 } 2083 }
2084 2084
2085 if (!initialized_) { 2085 if (!initialized_) {
2086 LOG(INFO) << "OnSyncCycleCompleted not sent because sync api is not " 2086 LOG(INFO) << "OnSyncCycleCompleted not sent because sync api is not "
2087 << "initialized"; 2087 << "initialized";
2088 return; 2088 return;
2089 } 2089 }
2090 2090
2091 if (!event.snapshot->has_more_to_sync) { 2091 if (!event.snapshot.has_more_to_sync()) {
2092 // To account for a nigori node arriving with stale/bad data, we ensure 2092 // To account for a nigori node arriving with stale/bad data, we ensure
2093 // that the nigori node is up to date at the end of each cycle. 2093 // that the nigori node is up to date at the end of each cycle.
2094 WriteTransaction trans(FROM_HERE, GetUserShare()); 2094 WriteTransaction trans(FROM_HERE, GetUserShare());
2095 WriteNode nigori_node(&trans); 2095 WriteNode nigori_node(&trans);
2096 if (nigori_node.InitByTagLookup(kNigoriTag) == 2096 if (nigori_node.InitByTagLookup(kNigoriTag) ==
2097 sync_api::BaseNode::INIT_OK) { 2097 sync_api::BaseNode::INIT_OK) {
2098 Cryptographer* cryptographer = trans.GetCryptographer(); 2098 Cryptographer* cryptographer = trans.GetCryptographer();
2099 UpdateNigoriEncryptionState(cryptographer, &nigori_node); 2099 UpdateNigoriEncryptionState(cryptographer, &nigori_node);
2100 } 2100 }
2101 2101
2102 DVLOG(1) << "Sending OnSyncCycleCompleted"; 2102 DVLOG(1) << "Sending OnSyncCycleCompleted";
2103 FOR_EACH_OBSERVER(SyncManager::Observer, observers_, 2103 FOR_EACH_OBSERVER(SyncManager::Observer, observers_,
2104 OnSyncCycleCompleted(event.snapshot)); 2104 OnSyncCycleCompleted(event.snapshot));
2105 } 2105 }
2106 2106
2107 // This is here for tests, which are still using p2p notifications. 2107 // This is here for tests, which are still using p2p notifications.
2108 // 2108 //
2109 // TODO(chron): Consider changing this back to track has_more_to_sync 2109 // TODO(chron): Consider changing this back to track has_more_to_sync
2110 // only notify peers if a successful commit has occurred. 2110 // only notify peers if a successful commit has occurred.
2111 bool is_notifiable_commit = 2111 bool is_notifiable_commit =
2112 (event.snapshot->syncer_status.num_successful_commits > 0); 2112 (event.snapshot.syncer_status().num_successful_commits > 0);
2113 if (is_notifiable_commit) { 2113 if (is_notifiable_commit) {
2114 if (sync_notifier_.get()) { 2114 if (sync_notifier_.get()) {
2115 const ModelTypeSet changed_types = 2115 const ModelTypeSet changed_types =
2116 syncable::ModelTypePayloadMapToEnumSet( 2116 syncable::ModelTypePayloadMapToEnumSet(
2117 event.snapshot->source.types); 2117 event.snapshot.source().types);
2118 sync_notifier_->SendNotification(changed_types); 2118 sync_notifier_->SendNotification(changed_types);
2119 } else { 2119 } else {
2120 DVLOG(1) << "Not sending notification: sync_notifier_ is NULL"; 2120 DVLOG(1) << "Not sending notification: sync_notifier_ is NULL";
2121 } 2121 }
2122 } 2122 }
2123 } 2123 }
2124 2124
2125 if (event.what_happened == SyncEngineEvent::STOP_SYNCING_PERMANENTLY) { 2125 if (event.what_happened == SyncEngineEvent::STOP_SYNCING_PERMANENTLY) {
2126 FOR_EACH_OBSERVER(SyncManager::Observer, observers_, 2126 FOR_EACH_OBSERVER(SyncManager::Observer, observers_,
2127 OnStopSyncingPermanently()); 2127 OnStopSyncingPermanently());
(...skipping 14 matching lines...) Expand all
2142 2142
2143 if (event.what_happened == SyncEngineEvent::UPDATED_TOKEN) { 2143 if (event.what_happened == SyncEngineEvent::UPDATED_TOKEN) {
2144 FOR_EACH_OBSERVER(SyncManager::Observer, observers_, 2144 FOR_EACH_OBSERVER(SyncManager::Observer, observers_,
2145 OnUpdatedToken(event.updated_token)); 2145 OnUpdatedToken(event.updated_token));
2146 return; 2146 return;
2147 } 2147 }
2148 2148
2149 if (event.what_happened == SyncEngineEvent::ACTIONABLE_ERROR) { 2149 if (event.what_happened == SyncEngineEvent::ACTIONABLE_ERROR) {
2150 FOR_EACH_OBSERVER(SyncManager::Observer, observers_, 2150 FOR_EACH_OBSERVER(SyncManager::Observer, observers_,
2151 OnActionableError( 2151 OnActionableError(
2152 event.snapshot->errors.sync_protocol_error)); 2152 event.snapshot.errors().sync_protocol_error));
2153 return; 2153 return;
2154 } 2154 }
2155 2155
2156 } 2156 }
2157 2157
2158 void SyncManager::SyncInternal::SetJsEventHandler( 2158 void SyncManager::SyncInternal::SetJsEventHandler(
2159 const WeakHandle<JsEventHandler>& event_handler) { 2159 const WeakHandle<JsEventHandler>& event_handler) {
2160 js_event_handler_ = event_handler; 2160 js_event_handler_ = event_handler;
2161 js_sync_manager_observer_.SetJsEventHandler(js_event_handler_); 2161 js_sync_manager_observer_.SetJsEventHandler(js_event_handler_);
2162 js_mutation_event_observer_.SetJsEventHandler(js_event_handler_); 2162 js_mutation_event_observer_.SetJsEventHandler(js_event_handler_);
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
2566 share->directory->GetDownloadProgress(i.Get(), &marker); 2566 share->directory->GetDownloadProgress(i.Get(), &marker);
2567 2567
2568 if (marker.token().empty()) 2568 if (marker.token().empty())
2569 result.Put(i.Get()); 2569 result.Put(i.Get());
2570 2570
2571 } 2571 }
2572 return result; 2572 return result;
2573 } 2573 }
2574 2574
2575 } // namespace sync_api 2575 } // namespace sync_api
OLDNEW
« no previous file with comments | « sync/internal_api/sync_manager.h ('k') | sync/internal_api/syncapi_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698