| 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_
|
|
|