Index: net/nqe/network_qualities_prefs_manager.h |
diff --git a/net/nqe/network_qualities_prefs_manager.h b/net/nqe/network_qualities_prefs_manager.h |
index 9978409606843d1e3d4a0b866ba69932e2bd0674..c903442e35da460441ccf42dc5bd309a24a33d39 100644 |
--- a/net/nqe/network_qualities_prefs_manager.h |
+++ b/net/nqe/network_qualities_prefs_manager.h |
@@ -5,26 +5,23 @@ |
#ifndef NET_NQE_NETWORK_QUALITIES_PREFS_MANAGER_H_ |
#define NET_NQE_NETWORK_QUALITIES_PREFS_MANAGER_H_ |
+#include <map> |
#include <memory> |
#include "base/macros.h" |
#include "base/memory/weak_ptr.h" |
+#include "base/values.h" |
#include "net/base/net_export.h" |
+#include "net/nqe/cached_network_quality.h" |
#include "net/nqe/effective_connection_type.h" |
#include "net/nqe/network_id.h" |
#include "net/nqe/network_quality_store.h" |
namespace base { |
-class DictionaryValue; |
class SequencedTaskRunner; |
} |
namespace net { |
-namespace nqe { |
-namespace internal { |
-class CachedNetworkQuality; |
-} |
-} |
class NetworkQualityEstimator; |
typedef base::Callback<void( |
@@ -32,6 +29,9 @@ typedef base::Callback<void( |
const nqe::internal::CachedNetworkQuality& cached_network_quality)> |
OnChangeInCachedNetworkQualityCallback; |
+typedef std::map<nqe::internal::NetworkID, nqe::internal::CachedNetworkQuality> |
+ ParsedPrefs; |
+ |
// Using the provided PrefDelegate, NetworkQualitiesPrefsManager creates and |
// updates network quality information that is stored in prefs. Instances of |
// this class must be constructed on the pref thread, and should later be moved |
@@ -48,8 +48,13 @@ class NET_EXPORT NetworkQualitiesPrefsManager |
// Provides an interface that must be implemented by the embedder. |
class NET_EXPORT PrefDelegate { |
public: |
+ virtual ~PrefDelegate() {} |
+ |
// Sets the persistent pref to the given value. |
virtual void SetDictionaryValue(const base::DictionaryValue& value) = 0; |
+ |
+ // Returns the peristent prefs. |
+ virtual const base::DictionaryValue& GetDictionaryValue() = 0; |
}; |
// Creates an instance of the NetworkQualitiesPrefsManager. Ownership of |
@@ -66,6 +71,10 @@ class NET_EXPORT NetworkQualitiesPrefsManager |
// Prepare for shutdown. Must be called on the pref thread before destruction. |
void ShutdownOnPrefThread(); |
+ // Reads the prefs again, parses them into a map of NetworkIDs and |
+ // CachedNetworkQualities, and returns the map. |
+ ParsedPrefs ForceReadPrefsForTesting() const; |
+ |
private: |
// Pref thread members: |
// Called on pref thread when there is a change in the cached network quality. |
@@ -78,6 +87,9 @@ class NET_EXPORT NetworkQualitiesPrefsManager |
scoped_refptr<base::SequencedTaskRunner> pref_task_runner_; |
+ // Current prefs on the disk. Should be accessed only on the pref thread. |
+ std::unique_ptr<base::DictionaryValue> prefs_; |
+ |
// Should be accessed only on the pref thread. |
base::WeakPtr<NetworkQualitiesPrefsManager> pref_weak_ptr_; |
@@ -93,6 +105,10 @@ class NET_EXPORT NetworkQualitiesPrefsManager |
scoped_refptr<base::SequencedTaskRunner> network_task_runner_; |
+ // Network quality prefs read from the disk at the time of startup. Can be |
+ // accessed on any thread. |
+ const ParsedPrefs read_prefs_startup_; |
+ |
// Used to get |weak_ptr_| to self on the pref thread. |
base::WeakPtrFactory<NetworkQualitiesPrefsManager> pref_weak_ptr_factory_; |