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

Unified Diff: components/sync_driver/sync_service.h

Issue 2203673002: [Sync] Move //components/sync_driver to //components/sync/driver. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@sd-a
Patch Set: Full change rebased on static lib. Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/sync_driver/sync_prefs_unittest.cc ('k') | components/sync_driver/sync_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/sync_driver/sync_service.h
diff --git a/components/sync_driver/sync_service.h b/components/sync_driver/sync_service.h
deleted file mode 100644
index 0f131b37ad43c0f49ce98d84c3bfab42e6ebe8dd..0000000000000000000000000000000000000000
--- a/components/sync_driver/sync_service.h
+++ /dev/null
@@ -1,351 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_SYNC_DRIVER_SYNC_SERVICE_H_
-#define COMPONENTS_SYNC_DRIVER_SYNC_SERVICE_H_
-
-#include <memory>
-#include <string>
-
-#include "base/callback.h"
-#include "base/location.h"
-#include "base/macros.h"
-#include "base/memory/weak_ptr.h"
-#include "base/time/time.h"
-#include "components/sync/base/model_type.h"
-#include "components/sync/core/connection_status.h"
-#include "components/sync_driver/data_type_encryption_handler.h"
-#include "components/sync_driver/sync_service_observer.h"
-#include "google_apis/gaia/google_service_auth_error.h"
-
-class GoogleServiceAuthError;
-
-namespace browser_sync {
-class ProtocolEventObserver;
-}
-
-namespace syncer {
-
-class BaseTransaction;
-class JsController;
-class TypeDebugInfoObserver;
-struct SyncStatus;
-struct UserShare;
-
-namespace sessions {
-class SyncSessionSnapshot;
-} // namespace sessions
-
-} // namespace syncer
-
-namespace sync_driver {
-
-class DataTypeController;
-class LocalDeviceInfoProvider;
-class OpenTabsUIDelegate;
-class SyncClient;
-
-// UIs that need to prevent Sync startup should hold an instance of this class
-// until the user has finished modifying sync settings. This is not an inner
-// class of SyncService to enable forward declarations.
-class SyncSetupInProgressHandle {
- public:
- // UIs should not construct this directly, but instead call
- // SyncService::GetSetupInProgress().
- explicit SyncSetupInProgressHandle(base::Closure on_destroy);
-
- ~SyncSetupInProgressHandle();
-
- private:
- base::Closure on_destroy_;
-};
-
-class SyncService : public DataTypeEncryptionHandler {
- public:
- // Used to specify the kind of passphrase with which sync data is encrypted.
- enum PassphraseType {
- IMPLICIT, // The user did not provide a custom passphrase for encryption.
- // We implicitly use the GAIA password in such cases.
- EXPLICIT, // The user selected the "use custom passphrase" radio button
- // during sync setup and provided a passphrase.
- };
-
- // Passed as an argument to RequestStop to control whether or not the sync
- // backend should clear its data directory when it shuts down. See
- // RequestStop for more information.
- enum SyncStopDataFate {
- KEEP_DATA,
- CLEAR_DATA,
- };
-
- // Status of sync server connection, sync token and token request.
- struct SyncTokenStatus {
- SyncTokenStatus();
-
- // Sync server connection status reported by sync backend.
- base::Time connection_status_update_time;
- syncer::ConnectionStatus connection_status;
-
- // Times when OAuth2 access token is requested and received.
- base::Time token_request_time;
- base::Time token_receive_time;
-
- // Error returned by OAuth2TokenService for token request and time when
- // next request is scheduled.
- GoogleServiceAuthError last_get_token_error;
- base::Time next_token_request_time;
- };
-
- ~SyncService() override {}
-
- // Whether sync is enabled by user or not. This does not necessarily mean
- // that sync is currently running (due to delayed startup, unrecoverable
- // errors, or shutdown). See IsSyncActive below for checking whether sync
- // is actually running.
- virtual bool IsFirstSetupComplete() const = 0;
-
- // Whether sync is allowed to start. Command line flags, platform-level
- // overrides, and account-level overrides are examples of reasons this
- // might be false.
- virtual bool IsSyncAllowed() const = 0;
-
- // Returns true if sync is fully initialized and active. This implies that
- // an initial configuration has successfully completed, although there may
- // be datatype specific, auth, or other transient errors. To see which
- // datetypes are actually syncing, see GetActiveTypes() below.
- virtual bool IsSyncActive() const = 0;
-
- // Triggers a GetUpdates call for the specified |types|, pulling any new data
- // from the sync server.
- virtual void TriggerRefresh(const syncer::ModelTypeSet& types) = 0;
-
- // Get the set of current active data types (those chosen or configured by
- // the user which have not also encountered a runtime error).
- // Note that if the Sync engine is in the middle of a configuration, this
- // will the the empty set. Once the configuration completes the set will
- // be updated.
- virtual syncer::ModelTypeSet GetActiveDataTypes() const = 0;
-
- // Returns the SyncClient instance associated with this service.
- virtual SyncClient* GetSyncClient() const = 0;
-
- // Adds/removes an observer. SyncService does not take ownership of the
- // observer.
- virtual void AddObserver(SyncServiceObserver* observer) = 0;
- virtual void RemoveObserver(SyncServiceObserver* observer) = 0;
-
- // Returns true if |observer| has already been added as an observer.
- virtual bool HasObserver(const SyncServiceObserver* observer) const = 0;
-
- // ---------------------------------------------------------------------------
- // TODO(sync): The methods below were pulled from ProfileSyncService, and
- // should be evaluated to see if they should stay.
-
- // Called when a datatype (SyncableService) has a need for sync to start
- // ASAP, presumably because a local change event has occurred but we're
- // still in deferred start mode, meaning the SyncableService hasn't been
- // told to MergeDataAndStartSyncing yet.
- virtual void OnDataTypeRequestsSyncStartup(syncer::ModelType type) = 0;
-
- // Returns true if sync is allowed, requested, and the user is logged in.
- // (being logged in does not mean that tokens are available - tokens may
- // be missing because they have not loaded yet, or because they were deleted
- // due to http://crbug.com/121755).
- virtual bool CanSyncStart() const = 0;
-
- // Stops sync at the user's request. |data_fate| controls whether the sync
- // backend should clear its data directory when it shuts down. Generally
- // KEEP_DATA is used when the user just stops sync, and CLEAR_DATA is used
- // when they sign out of the profile entirely.
- virtual void RequestStop(SyncStopDataFate data_fate) = 0;
-
- // The user requests that sync start. This only actually starts sync if
- // IsSyncAllowed is true and the user is signed in. Once sync starts,
- // other things such as IsFirstSetupComplete being false can still prevent
- // it from moving into the "active" state.
- virtual void RequestStart() = 0;
-
- // Returns the set of types which are preferred for enabling. This is a
- // superset of the active types (see GetActiveDataTypes()).
- virtual syncer::ModelTypeSet GetPreferredDataTypes() const = 0;
-
- // Called when a user chooses which data types to sync. |sync_everything|
- // represents whether they chose the "keep everything synced" option; if
- // true, |chosen_types| will be ignored and all data types will be synced.
- // |sync_everything| means "sync all current and future data types."
- // |chosen_types| must be a subset of syncer::UserSelectableTypes().
- virtual void OnUserChoseDatatypes(bool sync_everything,
- syncer::ModelTypeSet chosen_types) = 0;
-
- // Called whe Sync has been setup by the user and can be started.
- virtual void SetFirstSetupComplete() = 0;
-
- // Returns true if initial sync setup is in progress (does not return true
- // if the user is customizing sync after already completing setup once).
- // SyncService uses this to determine if it's OK to start syncing, or if the
- // user is still setting up the initial sync configuration.
- virtual bool IsFirstSetupInProgress() const = 0;
-
- // Called by the UI to notify the SyncService that UI is visible so it will
- // not start syncing. This tells sync whether it's safe to start downloading
- // data types yet (we don't start syncing until after sync setup is complete).
- // The UI calls this and holds onto the instance for as long as any part of
- // the signin wizard is displayed (even just the login UI).
- // When the last outstanding handle is deleted, this kicks off the sync engine
- // to ensure that data download starts. In this case,
- // |ReconfigureDatatypeManager| will get triggered.
- virtual std::unique_ptr<SyncSetupInProgressHandle>
- GetSetupInProgressHandle() = 0;
-
- // Used by tests.
- virtual bool IsSetupInProgress() const = 0;
-
- // Whether the data types active for the current mode have finished
- // configuration.
- virtual bool ConfigurationDone() const = 0;
-
- virtual const GoogleServiceAuthError& GetAuthError() const = 0;
- virtual bool HasUnrecoverableError() const = 0;
-
- // Returns true if the SyncBackendHost has told us it's ready to accept
- // changes. This should only be used for sync's internal configuration logic
- // (such as deciding when to prompt for an encryption passphrase).
- virtual bool IsBackendInitialized() const = 0;
-
- // Return the active OpenTabsUIDelegate. If sessions is not enabled or not
- // currently syncing, returns nullptr.
- virtual OpenTabsUIDelegate* GetOpenTabsUIDelegate() = 0;
-
- // Returns true if OnPassphraseRequired has been called for decryption and
- // we have an encrypted data type enabled.
- virtual bool IsPassphraseRequiredForDecryption() const = 0;
-
- // Returns the time the current explicit passphrase (if any), was set.
- // If no secondary passphrase is in use, or no time is available, returns an
- // unset base::Time.
- virtual base::Time GetExplicitPassphraseTime() const = 0;
-
- // Returns true if a secondary (explicit) passphrase is being used. It is not
- // legal to call this method before the backend is initialized.
- virtual bool IsUsingSecondaryPassphrase() const = 0;
-
- // Turns on encryption for all data. Callers must call OnUserChoseDatatypes()
- // after calling this to force the encryption to occur.
- virtual void EnableEncryptEverything() = 0;
-
- // Returns true if we are currently set to encrypt all the sync data.
- virtual bool IsEncryptEverythingEnabled() const = 0;
-
- // Asynchronously sets the passphrase to |passphrase| for encryption. |type|
- // specifies whether the passphrase is a custom passphrase or the GAIA
- // password being reused as a passphrase.
- // TODO(atwilson): Change this so external callers can only set an EXPLICIT
- // passphrase with this API.
- virtual void SetEncryptionPassphrase(const std::string& passphrase,
- PassphraseType type) = 0;
-
- // Asynchronously decrypts pending keys using |passphrase|. Returns false
- // immediately if the passphrase could not be used to decrypt a locally cached
- // copy of encrypted keys; returns true otherwise.
- virtual bool SetDecryptionPassphrase(const std::string& passphrase)
- WARN_UNUSED_RESULT = 0;
-
- // Checks whether the Cryptographer is ready to encrypt and decrypt updates
- // for sensitive data types. Caller must be holding a
- // syncapi::BaseTransaction to ensure thread safety.
- virtual bool IsCryptographerReady(
- const syncer::BaseTransaction* trans) const = 0;
-
- // TODO(akalin): This is called mostly by ModelAssociators and
- // tests. Figure out how to pass the handle to the ModelAssociators
- // directly, figure out how to expose this to tests, and remove this
- // function.
- virtual syncer::UserShare* GetUserShare() const = 0;
-
- // Returns DeviceInfo provider for the local device.
- virtual LocalDeviceInfoProvider* GetLocalDeviceInfoProvider() const = 0;
-
- // Registers a data type controller with the sync service. This
- // makes the data type controller available for use, it does not
- // enable or activate the synchronization of the data type (see
- // ActivateDataType). Takes ownership of the pointer.
- virtual void RegisterDataTypeController(
- DataTypeController* data_type_controller) = 0;
-
- // Called to re-enable a type disabled by DisableDatatype(..). Note, this does
- // not change the preferred state of a datatype, and is not persisted across
- // restarts.
- virtual void ReenableDatatype(syncer::ModelType type) = 0;
-
- // Return sync token status.
- virtual SyncTokenStatus GetSyncTokenStatus() const = 0;
-
- // Get a description of the sync status for displaying in the user interface.
- virtual std::string QuerySyncStatusSummaryString() = 0;
-
- // Initializes a struct of status indicators with data from the backend.
- // Returns false if the backend was not available for querying; in that case
- // the struct will be filled with default data.
- virtual bool QueryDetailedSyncStatus(syncer::SyncStatus* result) = 0;
-
- // Returns a user-friendly string form of last synced time (in minutes).
- virtual base::string16 GetLastSyncedTimeString() const = 0;
-
- // Returns a human readable string describing backend initialization state.
- virtual std::string GetBackendInitializationStateString() const = 0;
-
- virtual syncer::sessions::SyncSessionSnapshot GetLastSessionSnapshot()
- const = 0;
-
- // Returns a ListValue indicating the status of all registered types.
- //
- // The format is:
- // [ {"name": <name>, "value": <value>, "status": <status> }, ... ]
- // where <name> is a type's name, <value> is a string providing details for
- // the type's status, and <status> is one of "error", "warning" or "ok"
- // depending on the type's current status.
- //
- // This function is used by about_sync_util.cc to help populate the about:sync
- // page. It returns a ListValue rather than a DictionaryValue in part to make
- // it easier to iterate over its elements when constructing that page.
- virtual base::Value* GetTypeStatusMap() const = 0;
-
- virtual const GURL& sync_service_url() const = 0;
-
- virtual std::string unrecoverable_error_message() const = 0;
- virtual tracked_objects::Location unrecoverable_error_location() const = 0;
-
- virtual void AddProtocolEventObserver(
- browser_sync::ProtocolEventObserver* observer) = 0;
- virtual void RemoveProtocolEventObserver(
- browser_sync::ProtocolEventObserver* observer) = 0;
-
- virtual void AddTypeDebugInfoObserver(
- syncer::TypeDebugInfoObserver* observer) = 0;
- virtual void RemoveTypeDebugInfoObserver(
- syncer::TypeDebugInfoObserver* observer) = 0;
-
- // Returns a weak pointer to the service's JsController.
- virtual base::WeakPtr<syncer::JsController> GetJsController() = 0;
-
- // Asynchronously fetches base::Value representations of all sync nodes and
- // returns them to the specified callback on this thread.
- //
- // These requests can live a long time and return when you least expect it.
- // For safety, the callback should be bound to some sort of WeakPtr<> or
- // scoped_refptr<>.
- virtual void GetAllNodes(
- const base::Callback<void(std::unique_ptr<base::ListValue>)>&
- callback) = 0;
-
- protected:
- SyncService() {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(SyncService);
-};
-
-} // namespace sync_driver
-
-#endif // COMPONENTS_SYNC_DRIVER_SYNC_SERVICE_H_
« no previous file with comments | « components/sync_driver/sync_prefs_unittest.cc ('k') | components/sync_driver/sync_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698