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

Side by Side Diff: chrome/browser/sync/engine/syncapi.cc

Issue 7550023: [Sync] Add passphrase/encryption info to chrome://sync. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: compile Created 9 years, 4 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/sync/engine/syncapi.h" 5 #include "chrome/browser/sync/engine/syncapi.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <bitset> 8 #include <bitset>
9 #include <iomanip> 9 #include <iomanip>
10 #include <list> 10 #include <list>
(...skipping 1623 matching lines...) Expand 10 before | Expand all | Expand 10 after
1634 JsTransactionObserver js_transaction_observer_; 1634 JsTransactionObserver js_transaction_observer_;
1635 }; 1635 };
1636 const int SyncManager::SyncInternal::kDefaultNudgeDelayMilliseconds = 200; 1636 const int SyncManager::SyncInternal::kDefaultNudgeDelayMilliseconds = 200;
1637 const int SyncManager::SyncInternal::kPreferencesNudgeDelayMilliseconds = 2000; 1637 const int SyncManager::SyncInternal::kPreferencesNudgeDelayMilliseconds = 2000;
1638 1638
1639 SyncManager::Observer::~Observer() {} 1639 SyncManager::Observer::~Observer() {}
1640 1640
1641 SyncManager::SyncManager(const std::string& name) 1641 SyncManager::SyncManager(const std::string& name)
1642 : data_(new SyncInternal(name)) {} 1642 : data_(new SyncInternal(name)) {}
1643 1643
1644 SyncManager::Status::Status()
1645 : summary(INVALID) {
akalin 2011/08/04 01:14:48 All the vars are initialized by allstatus right?
Nicolas Zea 2011/08/04 01:27:52 Done.
1646 }
1647
1648 SyncManager::Status::~Status() {
1649 }
1650
1644 bool SyncManager::Init( 1651 bool SyncManager::Init(
1645 const FilePath& database_location, 1652 const FilePath& database_location,
1646 const WeakHandle<JsEventHandler>& event_handler, 1653 const WeakHandle<JsEventHandler>& event_handler,
1647 const std::string& sync_server_and_path, 1654 const std::string& sync_server_and_path,
1648 int sync_server_port, 1655 int sync_server_port,
1649 bool use_ssl, 1656 bool use_ssl,
1650 HttpPostProviderFactory* post_factory, 1657 HttpPostProviderFactory* post_factory,
1651 ModelSafeWorkerRegistrar* registrar, 1658 ModelSafeWorkerRegistrar* registrar,
1652 const std::string& user_agent, 1659 const std::string& user_agent,
1653 const SyncCredentials& credentials, 1660 const SyncCredentials& credentials,
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1858 } 1865 }
1859 Cryptographer::UpdateResult result = 1866 Cryptographer::UpdateResult result =
1860 cryptographer->Update(node.GetNigoriSpecifics()); 1867 cryptographer->Update(node.GetNigoriSpecifics());
1861 if (result == Cryptographer::NEEDS_PASSPHRASE) { 1868 if (result == Cryptographer::NEEDS_PASSPHRASE) {
1862 ObserverList<SyncManager::Observer> temp_obs_list; 1869 ObserverList<SyncManager::Observer> temp_obs_list;
1863 CopyObservers(&temp_obs_list); 1870 CopyObservers(&temp_obs_list);
1864 FOR_EACH_OBSERVER(SyncManager::Observer, temp_obs_list, 1871 FOR_EACH_OBSERVER(SyncManager::Observer, temp_obs_list,
1865 OnPassphraseRequired(sync_api::REASON_DECRYPTION)); 1872 OnPassphraseRequired(sync_api::REASON_DECRYPTION));
1866 } 1873 }
1867 1874
1875 allstatus_.SetCryptographerReady(cryptographer->is_ready());
1876 allstatus_.SetCryptoHasPendingKeys(cryptographer->has_pending_keys());
1877
1868 return cryptographer->is_ready(); 1878 return cryptographer->is_ready();
1869 } 1879 }
1870 1880
1871 void SyncManager::SyncInternal::StartSyncingNormally() { 1881 void SyncManager::SyncInternal::StartSyncingNormally() {
1872 // Start the sync scheduler. This won't actually result in any 1882 // Start the sync scheduler. This won't actually result in any
1873 // syncing until at least the DirectoryManager broadcasts the OPENED 1883 // syncing until at least the DirectoryManager broadcasts the OPENED
1874 // event, and a valid server connection is detected. 1884 // event, and a valid server connection is detected.
1875 if (scheduler()) // NULL during certain unittests. 1885 if (scheduler()) // NULL during certain unittests.
1876 scheduler()->Start(SyncScheduler::NORMAL_MODE, NULL); 1886 scheduler()->Start(SyncScheduler::NORMAL_MODE, NULL);
1877 } 1887 }
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
2095 // Note, we merge the current encrypted types with those requested. Once a 2105 // Note, we merge the current encrypted types with those requested. Once a
2096 // datatypes is marked as needing encryption, it is never unmarked. 2106 // datatypes is marked as needing encryption, it is never unmarked.
2097 sync_pb::NigoriSpecifics nigori; 2107 sync_pb::NigoriSpecifics nigori;
2098 nigori.CopyFrom(node.GetNigoriSpecifics()); 2108 nigori.CopyFrom(node.GetNigoriSpecifics());
2099 syncable::ModelTypeSet current_encrypted_types = GetEncryptedTypes(&trans); 2109 syncable::ModelTypeSet current_encrypted_types = GetEncryptedTypes(&trans);
2100 syncable::ModelTypeSet newly_encrypted_types; 2110 syncable::ModelTypeSet newly_encrypted_types;
2101 std::set_union(current_encrypted_types.begin(), current_encrypted_types.end(), 2111 std::set_union(current_encrypted_types.begin(), current_encrypted_types.end(),
2102 encrypted_types.begin(), encrypted_types.end(), 2112 encrypted_types.begin(), encrypted_types.end(),
2103 std::inserter(newly_encrypted_types, 2113 std::inserter(newly_encrypted_types,
2104 newly_encrypted_types.begin())); 2114 newly_encrypted_types.begin()));
2115 allstatus_.SetEncryptedTypes(newly_encrypted_types);
2105 if (newly_encrypted_types == current_encrypted_types) 2116 if (newly_encrypted_types == current_encrypted_types)
2106 return; // Set of encrypted types did not change. 2117 return; // Set of encrypted types did not change.
2107 syncable::FillNigoriEncryptedTypes(newly_encrypted_types, &nigori); 2118 syncable::FillNigoriEncryptedTypes(newly_encrypted_types, &nigori);
2108 node.SetNigoriSpecifics(nigori); 2119 node.SetNigoriSpecifics(nigori);
2109 2120
2110 cryptographer->SetEncryptedTypes(nigori); 2121 cryptographer->SetEncryptedTypes(nigori);
2111 2122
2112 // TODO(zea): only reencrypt this datatype? ReEncrypting everything is a 2123 // TODO(zea): only reencrypt this datatype? ReEncrypting everything is a
2113 // safer approach, and should not impact anything that is already encrypted 2124 // safer approach, and should not impact anything that is already encrypted
2114 // (redundant changes are ignored). 2125 // (redundant changes are ignored).
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
2553 OnPassphraseRequired(sync_api::REASON_DECRYPTION)); 2564 OnPassphraseRequired(sync_api::REASON_DECRYPTION));
2554 } else if (!cryptographer->is_ready() && 2565 } else if (!cryptographer->is_ready() &&
2555 event.snapshot->initial_sync_ended.test(syncable::NIGORI)) { 2566 event.snapshot->initial_sync_ended.test(syncable::NIGORI)) {
2556 VLOG(1) << "OnPassphraseRequired sent because cryptographer is not " 2567 VLOG(1) << "OnPassphraseRequired sent because cryptographer is not "
2557 << "ready"; 2568 << "ready";
2558 ObserverList<SyncManager::Observer> temp_obs_list; 2569 ObserverList<SyncManager::Observer> temp_obs_list;
2559 CopyObservers(&temp_obs_list); 2570 CopyObservers(&temp_obs_list);
2560 FOR_EACH_OBSERVER(SyncManager::Observer, temp_obs_list, 2571 FOR_EACH_OBSERVER(SyncManager::Observer, temp_obs_list,
2561 OnPassphraseRequired(sync_api::REASON_ENCRYPTION)); 2572 OnPassphraseRequired(sync_api::REASON_ENCRYPTION));
2562 } 2573 }
2574
2575 allstatus_.SetCryptographerReady(cryptographer->is_ready());
2576 allstatus_.SetCryptoHasPendingKeys(cryptographer->has_pending_keys());
2577
2578 syncable::ModelTypeSet encrypted_types =
akalin 2011/08/04 01:14:48 seems clearer to inline the call to GetEncryptedTy
Nicolas Zea 2011/08/04 01:27:52 Done.
2579 cryptographer->GetEncryptedTypes();
2580 allstatus_.SetEncryptedTypes(encrypted_types);
2581
2563 // If everything is in order(we have the passphrase) then there is no 2582 // If everything is in order(we have the passphrase) then there is no
2564 // need to inform the listeners. They will just wait for sync 2583 // need to inform the listeners. They will just wait for sync
2565 // completion event and if no errors have been raised it means 2584 // completion event and if no errors have been raised it means
2566 // encryption was succesful. 2585 // encryption was succesful.
2567 } 2586 }
2568 2587
2569 if (!initialized_) { 2588 if (!initialized_) {
2570 LOG(INFO) << "OnSyncCycleCompleted not sent because sync api is not " 2589 LOG(INFO) << "OnSyncCycleCompleted not sent because sync api is not "
2571 << "initialized"; 2590 << "initialized";
2572 return; 2591 return;
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
3010 void SyncManager::TriggerOnIncomingNotificationForTest( 3029 void SyncManager::TriggerOnIncomingNotificationForTest(
3011 const syncable::ModelTypeBitSet& model_types) { 3030 const syncable::ModelTypeBitSet& model_types) {
3012 syncable::ModelTypePayloadMap model_types_with_payloads = 3031 syncable::ModelTypePayloadMap model_types_with_payloads =
3013 syncable::ModelTypePayloadMapFromBitSet(model_types, 3032 syncable::ModelTypePayloadMapFromBitSet(model_types,
3014 std::string()); 3033 std::string());
3015 3034
3016 data_->OnIncomingNotification(model_types_with_payloads); 3035 data_->OnIncomingNotification(model_types_with_payloads);
3017 } 3036 }
3018 3037
3019 } // namespace sync_api 3038 } // namespace sync_api
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698