| Index: components/wifi_sync/wifi_credential_syncable_service.h
|
| diff --git a/components/wifi_sync/wifi_credential_syncable_service.h b/components/wifi_sync/wifi_credential_syncable_service.h
|
| index fbd82f4bf1fbe1b79251302789b8ab73b0e83e53..d0868e8ba1cf057e90a4e27ae623f8436a0becd0 100644
|
| --- a/components/wifi_sync/wifi_credential_syncable_service.h
|
| +++ b/components/wifi_sync/wifi_credential_syncable_service.h
|
| @@ -5,13 +5,17 @@
|
| #ifndef COMPONENTS_WIFI_SYNC_WIFI_CREDENTIAL_SYNCABLE_SERVICE_H_
|
| #define COMPONENTS_WIFI_SYNC_WIFI_CREDENTIAL_SYNCABLE_SERVICE_H_
|
|
|
| +#include <string>
|
| +
|
| #include "base/macros.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "components/keyed_service/core/keyed_service.h"
|
| +#include "components/wifi_sync/wifi_config_delegate.h"
|
| #include "sync/api/sync_change_processor.h"
|
| #include "sync/api/syncable_service.h"
|
|
|
| namespace wifi_sync {
|
| +class WifiCredential;
|
|
|
| // KeyedService that synchronizes WiFi credentials between local settings,
|
| // and Chrome Sync.
|
| @@ -19,10 +23,19 @@ namespace wifi_sync {
|
| // This service does not necessarily own the storage for WiFi
|
| // credentials. In particular, on ChromeOS, WiFi credential storage is
|
| // managed by the ChromeOS connection manager ("Shill").
|
| +//
|
| +// On ChromeOS, this class should only be instantiated
|
| +// for the primary user profile, as that is the only profile for
|
| +// which a Shill profile is loaded.
|
| class WifiCredentialSyncableService
|
| : public syncer::SyncableService, public KeyedService {
|
| public:
|
| - WifiCredentialSyncableService();
|
| + // Constructs a syncable service. Changes from Chrome Sync will be
|
| + // applied locally by |network_config_delegate|. Local changes will
|
| + // be propagated to Chrome Sync using the |sync_processor| provided
|
| + // in the call to MergeDataAndStartSyncing.
|
| + explicit WifiCredentialSyncableService(
|
| + scoped_ptr<WifiConfigDelegate> network_config_delegate);
|
| ~WifiCredentialSyncableService() override;
|
|
|
| // syncer::SyncableService implementation.
|
| @@ -37,11 +50,25 @@ class WifiCredentialSyncableService
|
| const tracked_objects::Location& caller_location,
|
| const syncer::SyncChangeList& change_list) override;
|
|
|
| + // Adds a WiFiCredential to Chrome Sync. |item_id| is a persistent
|
| + // identifier which can be used to later remove the credential. It
|
| + // is an error to add a network that already exists. It is also an
|
| + // error to call this method before MergeDataAndStartSyncing(), or
|
| + // after StopSyncing().
|
| + //
|
| + // TODO(quiche): Allow changing a credential, by addding it again.
|
| + // crbug.com/431436
|
| + bool AddToSyncedNetworks(const std::string& item_id,
|
| + const WifiCredential& credential);
|
| +
|
| private:
|
| // The syncer::ModelType that this SyncableService processes and
|
| // generates updates for.
|
| static const syncer::ModelType kModelType;
|
|
|
| + // The object we use to change local network configuration.
|
| + const scoped_ptr<WifiConfigDelegate> network_config_delegate_;
|
| +
|
| // Our SyncChangeProcessor instance. Used to push changes into
|
| // Chrome Sync.
|
| scoped_ptr<syncer::SyncChangeProcessor> sync_processor_;
|
|
|