1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROMEOS_NETWORK_NETWORK_CERT_MIGRATOR_H_ 6 #define CHROMEOS_NETWORK_NETWORK_CERT_MIGRATOR_H_ 7 8 #include "base/basictypes.h" 9 #include "base/memory/weak_ptr.h" 10 #include "chromeos/cert_loader.h" 11 #include "chromeos/chromeos_export.h" 12 #include "chromeos/network/network_state_handler_observer.h" 13 14 namespace chromeos { 15 16 class NetworkStateHandler; 17 18 // Migrates network configurations from deprecated CaCertNSS properties to 19 // CaCertPEM. 20 class CHROMEOS_EXPORT NetworkCertMigrator : public NetworkStateHandlerObserver, 21 public CertLoader::Observer { 22 public: 23 virtual ~NetworkCertMigrator(); 24 25 private: 26 friend class NetworkHandler; 27 friend class NetworkCertMigratorTest; 28 class MigrationTask; 29 30 NetworkCertMigrator(); 31 void Init(NetworkStateHandler* network_state_handler); 32 33 // NetworkStateHandlerObserver overrides 34 virtual void NetworkListChanged() OVERRIDE; 35 36 // CertLoader::Observer overrides 37 virtual void OnCertificatesLoaded(const net::CertificateList& cert_list, 38 bool initial_load) OVERRIDE; 39 40 // Unowned associated NetworkStateHandler* (global or test instance). 41 NetworkStateHandler* network_state_handler_; 42 43 base::WeakPtrFactory<NetworkCertMigrator> weak_ptr_factory_; 44 45 DISALLOW_COPY_AND_ASSIGN(NetworkCertMigrator); 46 }; 47 48 } // namespace chromeos 49 50 #endif // CHROMEOS_NETWORK_NETWORK_CERT_MIGRATOR_H_ 51