Chromium Code Reviews| Index: net/http/http_server_properties_manager.h |
| diff --git a/net/http/http_server_properties_manager.h b/net/http/http_server_properties_manager.h |
| index b08ae16d20a1bf68c462e64595dc7dd1c1c65631..a1e8a5ad1bab2582e663425f46169020d6c8fe69 100644 |
| --- a/net/http/http_server_properties_manager.h |
| +++ b/net/http/http_server_properties_manager.h |
| @@ -15,7 +15,6 @@ |
| #include "base/macros.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/memory/weak_ptr.h" |
| -#include "base/prefs/pref_change_registrar.h" |
| #include "base/timer/timer.h" |
| #include "base/values.h" |
| #include "net/base/host_port_pair.h" |
| @@ -54,12 +53,36 @@ namespace net { |
| // and grab a WeakPtr. |
| class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties { |
| public: |
| - // Create an instance of the HttpServerPropertiesManager. The lifetime of the |
| - // PrefService objects must be longer than that of the |
| - // HttpServerPropertiesManager object. Must be constructed on the Pref thread. |
| + // Provides an interface to interface with persistent preferences storage |
| + // implemented by the embedder. |
| + class PrefDelegate { |
| + public: |
| + virtual ~PrefDelegate(); |
| + |
| + // Returns true if the pref system has data for the server properties. |
| + virtual bool HasServerProperties() = 0; |
| + |
| + // Returns the branch of the preferences system for the server properties. |
| + virtual const base::DictionaryValue& GetServerProperties() const = 0; |
| + |
| + // Sets the server properties to the given value. |
| + virtual void SetServerProperties(const base::Value& value) = 0; |
|
mef
2016/01/23 18:19:00
Should this be symmetrical to SetServerProperties
|
| + |
| + // Start and stop listening for external storage changes. There will only |
| + // be one callback active at a time. |
| + virtual void StartListeningForUpdates(const base::Closure& callback) = 0; |
| + virtual void StopListeningForUpdates() = 0; |
| + }; |
| + |
| + // Create an instance of the HttpServerPropertiesManager. |
| + // |
| + // Ownership of the PrefDelegate pointer is taken by this class. This is |
| + // passed as a raw pointer rather than a scoped_refptr currently because |
| + // the test uses gmock and it doesn't forward move semantics properly. |
| + // |
| + // Must be constructed on the Pref thread. |
| HttpServerPropertiesManager( |
| - PrefService* pref_service, |
| - const char* pref_path, |
| + PrefDelegate* pref_delegate, |
| scoped_refptr<base::SequencedTaskRunner> network_task_runner); |
| ~HttpServerPropertiesManager() override; |
| @@ -277,11 +300,8 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties { |
| // Used to post cache update tasks. |
| scoped_ptr<base::OneShotTimer> pref_cache_update_timer_; |
| - // Used to track the spdy servers changes. |
| - PrefChangeRegistrar pref_change_registrar_; |
| - PrefService* pref_service_; // Weak. |
| + scoped_ptr<PrefDelegate> pref_delegate_; |
| bool setting_prefs_; |
| - const char* path_; |
| // -------------- |
| // Network thread |