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

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: review 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
« no previous file with comments | « chrome/browser/sync/engine/syncapi.h ('k') | chrome/browser/sync/profile_sync_service.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) 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 }
1646
1647 SyncManager::Status::~Status() {
1648 }
1649
1644 bool SyncManager::Init( 1650 bool SyncManager::Init(
1645 const FilePath& database_location, 1651 const FilePath& database_location,
1646 const WeakHandle<JsEventHandler>& event_handler, 1652 const WeakHandle<JsEventHandler>& event_handler,
1647 const std::string& sync_server_and_path, 1653 const std::string& sync_server_and_path,
1648 int sync_server_port, 1654 int sync_server_port,
1649 bool use_ssl, 1655 bool use_ssl,
1650 HttpPostProviderFactory* post_factory, 1656 HttpPostProviderFactory* post_factory,
1651 ModelSafeWorkerRegistrar* registrar, 1657 ModelSafeWorkerRegistrar* registrar,
1652 const std::string& user_agent, 1658 const std::string& user_agent,
1653 const SyncCredentials& credentials, 1659 const SyncCredentials& credentials,
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1858 } 1864 }
1859 Cryptographer::UpdateResult result = 1865 Cryptographer::UpdateResult result =
1860 cryptographer->Update(node.GetNigoriSpecifics()); 1866 cryptographer->Update(node.GetNigoriSpecifics());
1861 if (result == Cryptographer::NEEDS_PASSPHRASE) { 1867 if (result == Cryptographer::NEEDS_PASSPHRASE) {
1862 ObserverList<SyncManager::Observer> temp_obs_list; 1868 ObserverList<SyncManager::Observer> temp_obs_list;
1863 CopyObservers(&temp_obs_list); 1869 CopyObservers(&temp_obs_list);
1864 FOR_EACH_OBSERVER(SyncManager::Observer, temp_obs_list, 1870 FOR_EACH_OBSERVER(SyncManager::Observer, temp_obs_list,
1865 OnPassphraseRequired(sync_api::REASON_DECRYPTION)); 1871 OnPassphraseRequired(sync_api::REASON_DECRYPTION));
1866 } 1872 }
1867 1873
1874 allstatus_.SetCryptographerReady(cryptographer->is_ready());
1875 allstatus_.SetCryptoHasPendingKeys(cryptographer->has_pending_keys());
1876
1868 return cryptographer->is_ready(); 1877 return cryptographer->is_ready();
1869 } 1878 }
1870 1879
1871 void SyncManager::SyncInternal::StartSyncingNormally() { 1880 void SyncManager::SyncInternal::StartSyncingNormally() {
1872 // Start the sync scheduler. This won't actually result in any 1881 // Start the sync scheduler. This won't actually result in any
1873 // syncing until at least the DirectoryManager broadcasts the OPENED 1882 // syncing until at least the DirectoryManager broadcasts the OPENED
1874 // event, and a valid server connection is detected. 1883 // event, and a valid server connection is detected.
1875 if (scheduler()) // NULL during certain unittests. 1884 if (scheduler()) // NULL during certain unittests.
1876 scheduler()->Start(SyncScheduler::NORMAL_MODE, NULL); 1885 scheduler()->Start(SyncScheduler::NORMAL_MODE, NULL);
1877 } 1886 }
(...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 2104 // Note, we merge the current encrypted types with those requested. Once a
2096 // datatypes is marked as needing encryption, it is never unmarked. 2105 // datatypes is marked as needing encryption, it is never unmarked.
2097 sync_pb::NigoriSpecifics nigori; 2106 sync_pb::NigoriSpecifics nigori;
2098 nigori.CopyFrom(node.GetNigoriSpecifics()); 2107 nigori.CopyFrom(node.GetNigoriSpecifics());
2099 syncable::ModelTypeSet current_encrypted_types = GetEncryptedTypes(&trans); 2108 syncable::ModelTypeSet current_encrypted_types = GetEncryptedTypes(&trans);
2100 syncable::ModelTypeSet newly_encrypted_types; 2109 syncable::ModelTypeSet newly_encrypted_types;
2101 std::set_union(current_encrypted_types.begin(), current_encrypted_types.end(), 2110 std::set_union(current_encrypted_types.begin(), current_encrypted_types.end(),
2102 encrypted_types.begin(), encrypted_types.end(), 2111 encrypted_types.begin(), encrypted_types.end(),
2103 std::inserter(newly_encrypted_types, 2112 std::inserter(newly_encrypted_types,
2104 newly_encrypted_types.begin())); 2113 newly_encrypted_types.begin()));
2114 allstatus_.SetEncryptedTypes(newly_encrypted_types);
2105 if (newly_encrypted_types == current_encrypted_types) 2115 if (newly_encrypted_types == current_encrypted_types)
2106 return; // Set of encrypted types did not change. 2116 return; // Set of encrypted types did not change.
2107 syncable::FillNigoriEncryptedTypes(newly_encrypted_types, &nigori); 2117 syncable::FillNigoriEncryptedTypes(newly_encrypted_types, &nigori);
2108 node.SetNigoriSpecifics(nigori); 2118 node.SetNigoriSpecifics(nigori);
2109 2119
2110 cryptographer->SetEncryptedTypes(nigori); 2120 cryptographer->SetEncryptedTypes(nigori);
2111 2121
2112 // TODO(zea): only reencrypt this datatype? ReEncrypting everything is a 2122 // TODO(zea): only reencrypt this datatype? ReEncrypting everything is a
2113 // safer approach, and should not impact anything that is already encrypted 2123 // safer approach, and should not impact anything that is already encrypted
2114 // (redundant changes are ignored). 2124 // (redundant changes are ignored).
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
2553 OnPassphraseRequired(sync_api::REASON_DECRYPTION)); 2563 OnPassphraseRequired(sync_api::REASON_DECRYPTION));
2554 } else if (!cryptographer->is_ready() && 2564 } else if (!cryptographer->is_ready() &&
2555 event.snapshot->initial_sync_ended.test(syncable::NIGORI)) { 2565 event.snapshot->initial_sync_ended.test(syncable::NIGORI)) {
2556 VLOG(1) << "OnPassphraseRequired sent because cryptographer is not " 2566 VLOG(1) << "OnPassphraseRequired sent because cryptographer is not "
2557 << "ready"; 2567 << "ready";
2558 ObserverList<SyncManager::Observer> temp_obs_list; 2568 ObserverList<SyncManager::Observer> temp_obs_list;
2559 CopyObservers(&temp_obs_list); 2569 CopyObservers(&temp_obs_list);
2560 FOR_EACH_OBSERVER(SyncManager::Observer, temp_obs_list, 2570 FOR_EACH_OBSERVER(SyncManager::Observer, temp_obs_list,
2561 OnPassphraseRequired(sync_api::REASON_ENCRYPTION)); 2571 OnPassphraseRequired(sync_api::REASON_ENCRYPTION));
2562 } 2572 }
2573
2574 allstatus_.SetCryptographerReady(cryptographer->is_ready());
2575 allstatus_.SetCryptoHasPendingKeys(cryptographer->has_pending_keys());
2576 allstatus_.SetEncryptedTypes(cryptographer->GetEncryptedTypes());
2577
2563 // If everything is in order(we have the passphrase) then there is no 2578 // 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 2579 // need to inform the listeners. They will just wait for sync
2565 // completion event and if no errors have been raised it means 2580 // completion event and if no errors have been raised it means
2566 // encryption was succesful. 2581 // encryption was succesful.
2567 } 2582 }
2568 2583
2569 if (!initialized_) { 2584 if (!initialized_) {
2570 LOG(INFO) << "OnSyncCycleCompleted not sent because sync api is not " 2585 LOG(INFO) << "OnSyncCycleCompleted not sent because sync api is not "
2571 << "initialized"; 2586 << "initialized";
2572 return; 2587 return;
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
3010 void SyncManager::TriggerOnIncomingNotificationForTest( 3025 void SyncManager::TriggerOnIncomingNotificationForTest(
3011 const syncable::ModelTypeBitSet& model_types) { 3026 const syncable::ModelTypeBitSet& model_types) {
3012 syncable::ModelTypePayloadMap model_types_with_payloads = 3027 syncable::ModelTypePayloadMap model_types_with_payloads =
3013 syncable::ModelTypePayloadMapFromBitSet(model_types, 3028 syncable::ModelTypePayloadMapFromBitSet(model_types,
3014 std::string()); 3029 std::string());
3015 3030
3016 data_->OnIncomingNotification(model_types_with_payloads); 3031 data_->OnIncomingNotification(model_types_with_payloads);
3017 } 3032 }
3018 3033
3019 } // namespace sync_api 3034 } // namespace sync_api
OLDNEW
« no previous file with comments | « chrome/browser/sync/engine/syncapi.h ('k') | chrome/browser/sync/profile_sync_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698