Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(147)

Unified Diff: chromeos/network/client_cert_resolver.h

Issue 1443043002: Execute ClientCertResolver on network disconnection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changed SimpleTestClock ownership Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chromeos/network/client_cert_resolver.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/network/client_cert_resolver.h
diff --git a/chromeos/network/client_cert_resolver.h b/chromeos/network/client_cert_resolver.h
index d94873fa62bf3c0d9c87607e3b1ecb6adeda7b53..931012bc48138dc798a85b881aec2670659b71d7 100644
--- a/chromeos/network/client_cert_resolver.h
+++ b/chromeos/network/client_cert_resolver.h
@@ -12,9 +12,9 @@
#include "base/basictypes.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
+#include "base/time/time.h"
#include "chromeos/cert_loader.h"
#include "chromeos/chromeos_export.h"
#include "chromeos/network/client_cert_util.h"
@@ -23,6 +23,7 @@
#include "chromeos/network/network_state_handler_observer.h"
namespace base {
+class Clock;
class TaskRunner;
}
@@ -74,10 +75,16 @@ class CHROMEOS_EXPORT ClientCertResolver : public NetworkStateHandlerObserver,
// |Observer|.
bool IsAnyResolveTaskRunning() const;
+ // Sets the clock for testing. This clock is used when checking the
+ // certificates for expiration.
+ void SetClockForTesting(base::Clock* clock);
+
// Returns true and sets the Shill properties that have to be configured in
// |shill_properties| if the certificate pattern |pattern| could be resolved.
// Returns false otherwise and sets empty Shill properties to clear the
// certificate configuration.
+ // Note that it uses the global clock when checking the certificates for
+ // expiration.
static bool ResolveCertificatePatternSync(
const client_cert::ConfigType client_cert_type,
const CertificatePattern& pattern,
@@ -86,6 +93,7 @@ class CHROMEOS_EXPORT ClientCertResolver : public NetworkStateHandlerObserver,
private:
// NetworkStateHandlerObserver overrides
void NetworkListChanged() override;
+ void NetworkConnectionStateChanged(const NetworkState* network) override;
// CertLoader::Observer overrides
void OnCertificatesLoaded(const net::CertificateList& cert_list,
@@ -110,6 +118,11 @@ class CHROMEOS_EXPORT ClientCertResolver : public NetworkStateHandlerObserver,
// Trigger a ResolveRequestCompleted event on all observers.
void NotifyResolveRequestCompleted();
+ // Returns Time::Now() unless a mock clock has been installed with
+ // SetClockForTesting, in which case the time according to that clock is used
+ // instead.
+ base::Time Now() const;
+
base::ObserverList<Observer> observers_;
// The set of networks that were checked/resolved in previous passes. These
@@ -135,6 +148,9 @@ class CHROMEOS_EXPORT ClientCertResolver : public NetworkStateHandlerObserver,
// TaskRunner for slow tasks.
scoped_refptr<base::TaskRunner> slow_task_runner_for_test_;
+ // Can be set for testing.
+ base::Clock* testing_clock_;
+
base::WeakPtrFactory<ClientCertResolver> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(ClientCertResolver);
« no previous file with comments | « no previous file | chromeos/network/client_cert_resolver.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698