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

Unified Diff: components/browser_sync/profile_sync_service.h

Issue 2663783002: [Sync] Split encryption state and logic out of PSS and SBHI. (Closed)
Patch Set: Self-review. Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: components/browser_sync/profile_sync_service.h
diff --git a/components/browser_sync/profile_sync_service.h b/components/browser_sync/profile_sync_service.h
index 31f973f99a6e6eefe9ccf8fdc69c12bd698a73c9..0f3e22317b152011dac5b8102bbdae31bac7efbb 100644
--- a/components/browser_sync/profile_sync_service.h
+++ b/components/browser_sync/profile_sync_service.h
@@ -21,7 +21,6 @@
#include "base/observer_list.h"
#include "base/strings/string16.h"
#include "base/threading/thread.h"
-#include "base/threading/thread_checker.h"
#include "base/time/time.h"
#include "base/timer/timer.h"
#include "build/build_config.h"
@@ -61,10 +60,6 @@ class Profile;
class ProfileOAuth2TokenService;
class SigninManagerWrapper;
-namespace sync_pb {
-class EncryptedData;
-} // namespace sync_pb
-
namespace sync_sessions {
class FaviconCache;
class OpenTabsUIDelegate;
@@ -298,9 +293,6 @@ class ProfileSyncService : public syncer::SyncServiceBase,
const syncer::BaseTransaction* trans) const override;
syncer::UserShare* GetUserShare() const override;
syncer::LocalDeviceInfoProvider* GetLocalDeviceInfoProvider() const override;
- void AddObserver(syncer::SyncServiceObserver* observer) override;
- void RemoveObserver(syncer::SyncServiceObserver* observer) override;
- bool HasObserver(const syncer::SyncServiceObserver* observer) const override;
void RegisterDataTypeController(std::unique_ptr<syncer::DataTypeController>
data_type_controller) override;
void ReenableDatatype(syncer::ModelType type) override;
@@ -379,18 +371,9 @@ class ProfileSyncService : public syncer::SyncServiceBase,
syncer::ModelType type,
const syncer::StatusCounters& counters) override;
void OnConnectionStatusChange(syncer::ConnectionStatus status) override;
- void OnPassphraseRequired(
- syncer::PassphraseRequiredReason reason,
- const sync_pb::EncryptedData& pending_keys) override;
- void OnPassphraseAccepted() override;
- void OnEncryptedTypesChanged(syncer::ModelTypeSet encrypted_types,
- bool encrypt_everything) override;
- void OnEncryptionComplete() override;
void OnMigrationNeededForTypes(syncer::ModelTypeSet types) override;
void OnExperimentsChanged(const syncer::Experiments& experiments) override;
void OnActionableError(const syncer::SyncProtocolError& error) override;
- void OnLocalSetPassphraseEncryption(
- const syncer::SyncEncryptionHandler::NigoriState& nigori_state) override;
// DataTypeManagerObserver implementation.
void OnConfigureDone(
@@ -427,7 +410,7 @@ class ProfileSyncService : public syncer::SyncServiceBase,
virtual void ReconfigureDatatypeManager();
syncer::PassphraseRequiredReason passphrase_required_reason() const {
- return passphrase_required_reason_;
+ return crypto_->passphrase_required_reason();
}
// Returns true if sync is requested to be running by the user.
@@ -500,21 +483,9 @@ class ProfileSyncService : public syncer::SyncServiceBase,
// for a datatype to be Registered.
virtual syncer::ModelTypeSet GetRegisteredDataTypes() const;
- // Returns the actual passphrase type being used for encryption.
+ // See the SyncServiceCrypto header.
virtual syncer::PassphraseType GetPassphraseType() const;
-
- // Note about setting passphrases: There are different scenarios under which
skym 2017/01/31 01:58:54 We seemed to have lost this comment. Was that on p
maxbogue 2017/01/31 07:51:10 Yeah; it doesn't seem particularly useful to me. I
- // we might want to apply a passphrase. It could be for first-time encryption,
- // re-encryption, or for decryption by clients that sign in at a later time.
- // In addition, encryption can either be done using a custom passphrase, or by
- // reusing the GAIA password. Depending on what is happening in the system,
- // callers should determine which of the two methods below must be used.
-
- // Returns true if encrypting all the sync data is allowed. If this method
- // returns false, EnableEncryptEverything() should not be called.
virtual bool IsEncryptEverythingAllowed() const;
-
- // Sets whether encrypting all the sync data is allowed or not.
virtual void SetEncryptEverythingAllowed(bool allowed);
// Returns true if the syncer is waiting for new datatypes to be encrypted.
@@ -592,6 +563,9 @@ class ProfileSyncService : public syncer::SyncServiceBase,
// Sometimes we need to wait for tasks on the sync thread in tests.
base::MessageLoop* GetSyncLoopForTest() const;
+ // Some tests rely on injecting calls to the encryption observer.
+ syncer::SyncEncryptionHandler::Observer* GetEncryptionObserverForTest() const;
+
// Triggers sync cycle with request to update specified |types|.
void RefreshTypesForTest(syncer::ModelTypeSet types);
@@ -601,8 +575,6 @@ class ProfileSyncService : public syncer::SyncServiceBase,
syncer::WeakHandle<syncer::JsEventHandler> GetJsEventHandler() override;
syncer::SyncEngine::HttpPostProviderFactoryGetter
MakeHttpPostProviderFactoryGetter() override;
- std::unique_ptr<syncer::SyncEncryptionHandler::NigoriState>
- MoveSavedNigoriState() override;
syncer::WeakHandle<syncer::UnrecoverableErrorHandler>
GetUnrecoverableErrorHandler() override;
@@ -672,12 +644,6 @@ class ProfileSyncService : public syncer::SyncServiceBase,
// Called when configuration is complete.
void StartSyncingWithServer();
- // During initial signin, ProfileSyncService caches the user's signin
- // passphrase so it can be used to encrypt/decrypt data after sync starts up.
- // This routine is invoked once the engine has started up to use the
- // cached passphrase and clear it out when it is done.
- void ConsumeCachedPassphraseIfPossible();
-
// RequestAccessToken initiates RPC to request downscoped access token from
// refresh token. This happens when a new OAuth2 login token is loaded and
// when sync server returns AUTH_ERROR which indicates it is time to refresh
@@ -687,7 +653,6 @@ class ProfileSyncService : public syncer::SyncServiceBase,
// Sets the last synced time to the current time.
void UpdateLastSyncedTime();
- void NotifyObservers();
void NotifySyncCycleCompleted();
void NotifyForeignSessionUpdated();
@@ -751,13 +716,13 @@ class ProfileSyncService : public syncer::SyncServiceBase,
// After user switches to custom passphrase encryption a set of steps needs to
// be performed:
+ //
// - Download all latest updates from server (catch up configure).
// - Clear user data on server.
// - Clear directory so that data is merged from model types and encrypted.
- // Following three functions perform these steps.
-
- // Calls data type manager to start catch up configure.
- void BeginConfigureCatchUpBeforeClear();
+ //
+ // SyncServiceCrypto::BeginConfigureCatchUpBeforeClear() and the following two
skym 2017/01/31 01:58:54 These comments are odd. The whole catch up implies
maxbogue 2017/01/31 07:51:10 Same :(
+ // functions perform these steps.
// Calls sync engine to send ClearServerDataMessage to server.
void ClearAndRestartSyncForPassphraseEncryption();
@@ -779,11 +744,6 @@ class ProfileSyncService : public syncer::SyncServiceBase,
// Cache of the last SyncCycleSnapshot received from the sync engine.
syncer::SyncCycleSnapshot last_snapshot_;
- // Was the last SYNC_PASSPHRASE_REQUIRED notification sent because it
- // was required for encryption, decryption with a cached passphrase, or
- // because a new passphrase is required?
- syncer::PassphraseRequiredReason passphrase_required_reason_;
-
// TODO(ncarter): Put this in a profile, once there is UI for it.
// This specifies where to find the sync server.
const GURL sync_service_url_;
@@ -836,7 +796,6 @@ class ProfileSyncService : public syncer::SyncServiceBase,
// Manages the start and stop of the data types.
std::unique_ptr<syncer::DataTypeManager> data_type_manager_;
- base::ObserverList<syncer::SyncServiceObserver> observers_;
base::ObserverList<syncer::ProtocolEventObserver> protocol_event_observers_;
base::ObserverList<syncer::TypeDebugInfoObserver> type_debug_info_observers_;
@@ -849,27 +808,6 @@ class ProfileSyncService : public syncer::SyncServiceBase,
// desist syncing immediately.
bool expect_sync_configuration_aborted_;
- // Sometimes we need to temporarily hold on to a passphrase because we don't
- // yet have a engine to send it to. This happens during initialization as
- // we don't StartUp until we have a valid token, which happens after valid
- // credentials were provided.
- std::string cached_passphrase_;
-
- // The current set of encrypted types. Always a superset of
- // syncer::Cryptographer::SensitiveTypes().
- syncer::ModelTypeSet encrypted_types_;
-
- // Whether encrypting everything is allowed.
- bool encrypt_everything_allowed_;
-
- // Whether we want to encrypt everything.
- bool encrypt_everything_;
-
- // Whether we're waiting for an attempt to encryption all sync data to
- // complete. We track this at this layer in order to allow the user to cancel
- // if they e.g. don't remember their explicit passphrase.
- bool encryption_pending_;
-
std::unique_ptr<syncer::BackendMigrator> migrator_;
// This is the last |SyncProtocolError| we received from the server that had
@@ -937,12 +875,6 @@ class ProfileSyncService : public syncer::SyncServiceBase,
// Listens for the system being under memory pressure.
std::unique_ptr<base::MemoryPressureListener> memory_pressure_listener_;
- // Nigori state after user switching to custom passphrase, saved until
- // transition steps complete. It will be injected into new engine after sync
- // restart.
- std::unique_ptr<syncer::SyncEncryptionHandler::NigoriState>
- saved_nigori_state_;
-
// Whether the major version has changed since the last time Chrome ran,
// and therefore a passphrase required state should result in prompting
// the user. This logic is only enabled on platforms that consume the
@@ -953,10 +885,6 @@ class ProfileSyncService : public syncer::SyncServiceBase,
// platform.
PlatformSyncAllowedProvider platform_sync_allowed_provider_;
- // Used to ensure that certain operations are performed on the thread that
- // this object was created on.
- base::ThreadChecker thread_checker_;
-
// This weak factory invalidates its issued pointers when Sync is disabled.
base::WeakPtrFactory<ProfileSyncService> sync_enabled_weak_factory_;

Powered by Google App Engine
This is Rietveld 408576698