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 14namespace chromeos { 15 16class NetworkStateHandler; 17 18// Migrates network configurations from deprecated CaCertNSS properties to 19// CaCertPEM and incorrect or missing slot IDs of client certificates. 20class 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