| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "components/wifi_sync/wifi_credential_syncable_service.h" | 5 #include "components/sync_wifi/wifi_credential_syncable_service.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/logging.h" | 12 #include "base/logging.h" |
| 13 #include "components/sync/model/sync_change.h" | 13 #include "components/sync/model/sync_change.h" |
| 14 #include "components/sync/model/sync_data.h" | 14 #include "components/sync/model/sync_data.h" |
| 15 #include "components/sync/model/sync_error.h" | 15 #include "components/sync/model/sync_error.h" |
| 16 #include "components/sync/model/sync_error_factory.h" | 16 #include "components/sync/model/sync_error_factory.h" |
| 17 #include "components/sync/model/sync_merge_result.h" | 17 #include "components/sync/model/sync_merge_result.h" |
| 18 #include "components/sync/protocol/sync.pb.h" | 18 #include "components/sync/protocol/sync.pb.h" |
| 19 #include "components/wifi_sync/wifi_credential.h" | 19 #include "components/sync_wifi/wifi_credential.h" |
| 20 #include "components/wifi_sync/wifi_security_class.h" | 20 #include "components/sync_wifi/wifi_security_class.h" |
| 21 | 21 |
| 22 namespace wifi_sync { | 22 namespace sync_wifi { |
| 23 | 23 |
| 24 namespace { | 24 namespace { |
| 25 | 25 |
| 26 struct RawCredentialData { | 26 struct RawCredentialData { |
| 27 std::vector<uint8_t> ssid; | 27 std::vector<uint8_t> ssid; |
| 28 WifiSecurityClass security_class; | 28 WifiSecurityClass security_class; |
| 29 std::string passphrase; | 29 std::string passphrase; |
| 30 }; | 30 }; |
| 31 | 31 |
| 32 void BuildSpecifics(const WifiCredential& credential, | 32 void BuildSpecifics(const WifiCredential& credential, |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 | 106 |
| 107 const syncer::ModelType WifiCredentialSyncableService::kModelType = | 107 const syncer::ModelType WifiCredentialSyncableService::kModelType = |
| 108 syncer::WIFI_CREDENTIALS; | 108 syncer::WIFI_CREDENTIALS; |
| 109 | 109 |
| 110 WifiCredentialSyncableService::WifiCredentialSyncableService( | 110 WifiCredentialSyncableService::WifiCredentialSyncableService( |
| 111 std::unique_ptr<WifiConfigDelegate> network_config_delegate) | 111 std::unique_ptr<WifiConfigDelegate> network_config_delegate) |
| 112 : network_config_delegate_(std::move(network_config_delegate)) { | 112 : network_config_delegate_(std::move(network_config_delegate)) { |
| 113 DCHECK(network_config_delegate_); | 113 DCHECK(network_config_delegate_); |
| 114 } | 114 } |
| 115 | 115 |
| 116 WifiCredentialSyncableService::~WifiCredentialSyncableService() { | 116 WifiCredentialSyncableService::~WifiCredentialSyncableService() {} |
| 117 } | |
| 118 | 117 |
| 119 syncer::SyncMergeResult WifiCredentialSyncableService::MergeDataAndStartSyncing( | 118 syncer::SyncMergeResult WifiCredentialSyncableService::MergeDataAndStartSyncing( |
| 120 syncer::ModelType type, | 119 syncer::ModelType type, |
| 121 const syncer::SyncDataList& initial_sync_data, | 120 const syncer::SyncDataList& initial_sync_data, |
| 122 std::unique_ptr<syncer::SyncChangeProcessor> sync_processor, | 121 std::unique_ptr<syncer::SyncChangeProcessor> sync_processor, |
| 123 std::unique_ptr<syncer::SyncErrorFactory> /* error_handler */) { | 122 std::unique_ptr<syncer::SyncErrorFactory> /* error_handler */) { |
| 124 DCHECK(!sync_processor_.get()); | 123 DCHECK(!sync_processor_.get()); |
| 125 DCHECK(sync_processor.get()); | 124 DCHECK(sync_processor.get()); |
| 126 DCHECK_EQ(kModelType, type); | 125 DCHECK_EQ(kModelType, type); |
| 127 | 126 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 bool WifiCredentialSyncableService::AddToSyncedNetworks( | 197 bool WifiCredentialSyncableService::AddToSyncedNetworks( |
| 199 const std::string& item_id, | 198 const std::string& item_id, |
| 200 const WifiCredential& credential) { | 199 const WifiCredential& credential) { |
| 201 if (!sync_processor_.get()) { | 200 if (!sync_processor_.get()) { |
| 202 // Callers must queue updates until MergeDataAndStartSyncing has | 201 // Callers must queue updates until MergeDataAndStartSyncing has |
| 203 // been called on this SyncableService. | 202 // been called on this SyncableService. |
| 204 LOG(WARNING) << "WifiCredentials syncable service is not started."; | 203 LOG(WARNING) << "WifiCredentials syncable service is not started."; |
| 205 return false; | 204 return false; |
| 206 } | 205 } |
| 207 | 206 |
| 208 const SsidAndSecurityClass network_id( | 207 const SsidAndSecurityClass network_id(credential.ssid(), |
| 209 credential.ssid(), credential.security_class()); | 208 credential.security_class()); |
| 210 if (synced_networks_and_passphrases_.find(network_id) != | 209 if (synced_networks_and_passphrases_.find(network_id) != |
| 211 synced_networks_and_passphrases_.end()) { | 210 synced_networks_and_passphrases_.end()) { |
| 212 // TODO(quiche): If passphrase has changed, submit this to sync as | 211 // TODO(quiche): If passphrase has changed, submit this to sync as |
| 213 // an ACTION_UPDATE. crbug.com/431436 | 212 // an ACTION_UPDATE. crbug.com/431436 |
| 214 return false; | 213 return false; |
| 215 } | 214 } |
| 216 | 215 |
| 217 syncer::SyncChangeList change_list; | 216 syncer::SyncChangeList change_list; |
| 218 syncer::SyncError sync_error; | 217 syncer::SyncError sync_error; |
| 219 sync_pb::EntitySpecifics wifi_credential_specifics; | 218 sync_pb::EntitySpecifics wifi_credential_specifics; |
| 220 BuildSpecifics(credential, &wifi_credential_specifics); | 219 BuildSpecifics(credential, &wifi_credential_specifics); |
| 221 change_list.push_back( | 220 change_list.push_back( |
| 222 syncer::SyncChange(FROM_HERE, syncer::SyncChange::ACTION_ADD, | 221 syncer::SyncChange(FROM_HERE, syncer::SyncChange::ACTION_ADD, |
| 223 syncer::SyncData::CreateLocalData( | 222 syncer::SyncData::CreateLocalData( |
| 224 item_id, item_id, wifi_credential_specifics))); | 223 item_id, item_id, wifi_credential_specifics))); |
| 225 sync_error = sync_processor_->ProcessSyncChanges(FROM_HERE, change_list); | 224 sync_error = sync_processor_->ProcessSyncChanges(FROM_HERE, change_list); |
| 226 if (sync_error.IsSet()) { | 225 if (sync_error.IsSet()) { |
| 227 LOG(ERROR) << sync_error.ToString(); | 226 LOG(ERROR) << sync_error.ToString(); |
| 228 return false; | 227 return false; |
| 229 } | 228 } |
| 230 | 229 |
| 231 synced_networks_and_passphrases_[network_id] = credential.passphrase(); | 230 synced_networks_and_passphrases_[network_id] = credential.passphrase(); |
| 232 return true; | 231 return true; |
| 233 } | 232 } |
| 234 | 233 |
| 235 } // namespace wifi_sync | 234 } // namespace sync_wifi |
| OLD | NEW |