| OLD | NEW |
| 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 // This file defines the "sync API", an interface to the syncer | 5 // This file defines the "sync API", an interface to the syncer |
| 6 // backend that exposes (1) the core functionality of maintaining a consistent | 6 // backend that exposes (1) the core functionality of maintaining a consistent |
| 7 // local snapshot of a hierarchical object set; (2) a means to transactionally | 7 // local snapshot of a hierarchical object set; (2) a means to transactionally |
| 8 // access and modify those objects; (3) a means to control client/server | 8 // access and modify those objects; (3) a means to control client/server |
| 9 // synchronization tasks, namely: pushing local object modifications to a | 9 // synchronization tasks, namely: pushing local object modifications to a |
| 10 // server, pulling nonlocal object modifications from a server to this client, | 10 // server, pulling nonlocal object modifications from a server to this client, |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 class TypedUrlSpecifics; | 100 class TypedUrlSpecifics; |
| 101 } | 101 } |
| 102 | 102 |
| 103 namespace sync_api { | 103 namespace sync_api { |
| 104 | 104 |
| 105 class BaseTransaction; | 105 class BaseTransaction; |
| 106 class HttpPostProviderFactory; | 106 class HttpPostProviderFactory; |
| 107 class SyncManager; | 107 class SyncManager; |
| 108 class WriteTransaction; | 108 class WriteTransaction; |
| 109 | 109 |
| 110 // Reasons due to which browser_sync::Cryptographer might require a passphrase. |
| 111 enum PassphraseRequiredReason { |
| 112 REASON_PASSPHRASE_NOT_REQUIRED = 0, // Initial value. |
| 113 REASON_ENCRYPTION = 1, // The cryptographer requires a |
| 114 // passphrase for its first attempt at |
| 115 // encryption. Happens only during |
| 116 // migration or upgrade. |
| 117 REASON_DECRYPTION = 2, // The cryptographer requires a |
| 118 // passphrase for its first attempt at |
| 119 // decryption. |
| 120 REASON_SET_PASSPHRASE_FAILED = 3, // The cryptographer requires a new |
| 121 // passphrase because its attempt at |
| 122 // decryption with the cached passphrase |
| 123 // was unsuccessful. |
| 124 }; |
| 125 |
| 126 // Returns the string representation of a PassphraseRequiredReason value. |
| 127 std::string PassphraseRequiredReasonToString(PassphraseRequiredReason reason); |
| 128 |
| 110 // A UserShare encapsulates the syncable pieces that represent an authenticated | 129 // A UserShare encapsulates the syncable pieces that represent an authenticated |
| 111 // user and their data (share). | 130 // user and their data (share). |
| 112 // This encompasses all pieces required to build transaction objects on the | 131 // This encompasses all pieces required to build transaction objects on the |
| 113 // syncable share. | 132 // syncable share. |
| 114 struct UserShare { | 133 struct UserShare { |
| 115 UserShare(); | 134 UserShare(); |
| 116 ~UserShare(); | 135 ~UserShare(); |
| 117 | 136 |
| 118 // The DirectoryManager itself, which is the parent of Transactions and can | 137 // The DirectoryManager itself, which is the parent of Transactions and can |
| 119 // be shared across multiple threads (unlike Directory). | 138 // be shared across multiple threads (unlike Directory). |
| (...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 772 virtual void OnSyncCycleCompleted( | 791 virtual void OnSyncCycleCompleted( |
| 773 const browser_sync::sessions::SyncSessionSnapshot* snapshot) = 0; | 792 const browser_sync::sessions::SyncSessionSnapshot* snapshot) = 0; |
| 774 | 793 |
| 775 // Called when user interaction may be required due to an auth problem. | 794 // Called when user interaction may be required due to an auth problem. |
| 776 virtual void OnAuthError(const GoogleServiceAuthError& auth_error) = 0; | 795 virtual void OnAuthError(const GoogleServiceAuthError& auth_error) = 0; |
| 777 | 796 |
| 778 // Called when a new auth token is provided by the sync server. | 797 // Called when a new auth token is provided by the sync server. |
| 779 virtual void OnUpdatedToken(const std::string& token) = 0; | 798 virtual void OnUpdatedToken(const std::string& token) = 0; |
| 780 | 799 |
| 781 // Called when user interaction is required to obtain a valid passphrase. | 800 // Called when user interaction is required to obtain a valid passphrase. |
| 782 // If the passphrase is required to decrypt something that has | 801 // - If the passphrase is required for encryption, |reason| will be |
| 783 // already been encrypted (and thus has to match the existing key), | 802 // REASON_ENCRYPTION. |
| 784 // |for_decryption| will be true. If the passphrase is needed for | 803 // - If the passphrase is required for the decryption of data that has |
| 785 // encryption, |for_decryption| will be false. | 804 // already been encrypted, |reason| will be REASON_DECRYPTION. |
| 786 virtual void OnPassphraseRequired(bool for_decryption) = 0; | 805 // - If the passphrase is required because decryption failed, and a new |
| 787 | 806 // passphrase is required, |reason| will be REASON_SET_PASSPHRASE_FAILED. |
| 788 // Called only by SyncInternal::SetPassphrase to indiciate that an attempted | 807 virtual void OnPassphraseRequired(PassphraseRequiredReason reason) = 0; |
| 789 // passphrase failed to decrypt pending keys. This is different from | |
| 790 // OnPassphraseRequired in that it denotes we finished an attempt to set | |
| 791 // a passphrase. OnPassphraseRequired means we have data we could not | |
| 792 // decrypt yet, and can come from numerous places. | |
| 793 virtual void OnPassphraseFailed() = 0; | |
| 794 | 808 |
| 795 // Called when the passphrase provided by the user has been accepted and is | 809 // Called when the passphrase provided by the user has been accepted and is |
| 796 // now used to encrypt sync data. |bootstrap_token| is an opaque base64 | 810 // now used to encrypt sync data. |bootstrap_token| is an opaque base64 |
| 797 // encoded representation of the key generated by the accepted passphrase, | 811 // encoded representation of the key generated by the accepted passphrase, |
| 798 // and is provided to the observer for persistence purposes and use in a | 812 // and is provided to the observer for persistence purposes and use in a |
| 799 // future initialization of sync (e.g. after restart). | 813 // future initialization of sync (e.g. after restart). |
| 800 virtual void OnPassphraseAccepted(const std::string& bootstrap_token) = 0; | 814 virtual void OnPassphraseAccepted(const std::string& bootstrap_token) = 0; |
| 801 | 815 |
| 802 // Called when initialization is complete to the point that SyncManager can | 816 // Called when initialization is complete to the point that SyncManager can |
| 803 // process changes. This does not necessarily mean authentication succeeded | 817 // process changes. This does not necessarily mean authentication succeeded |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1008 private: | 1022 private: |
| 1009 // An opaque pointer to the nested private class. | 1023 // An opaque pointer to the nested private class. |
| 1010 SyncInternal* data_; | 1024 SyncInternal* data_; |
| 1011 | 1025 |
| 1012 DISALLOW_COPY_AND_ASSIGN(SyncManager); | 1026 DISALLOW_COPY_AND_ASSIGN(SyncManager); |
| 1013 }; | 1027 }; |
| 1014 | 1028 |
| 1015 } // namespace sync_api | 1029 } // namespace sync_api |
| 1016 | 1030 |
| 1017 #endif // CHROME_BROWSER_SYNC_ENGINE_SYNCAPI_H_ | 1031 #endif // CHROME_BROWSER_SYNC_ENGINE_SYNCAPI_H_ |
| OLD | NEW |