| 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 0b7dc11045eeef114ea5395029c30561b8bc64ea..549a85f5c8556892136f10817075a9fbb763fd47 100644
|
| --- a/net/http/http_server_properties_manager.h
|
| +++ b/net/http/http_server_properties_manager.h
|
| @@ -15,6 +15,7 @@
|
| #include "base/gtest_prod_util.h"
|
| #include "base/macros.h"
|
| #include "base/memory/weak_ptr.h"
|
| +#include "base/time/default_tick_clock.h"
|
| #include "base/timer/timer.h"
|
| #include "base/values.h"
|
| #include "net/base/host_port_pair.h"
|
| @@ -24,6 +25,7 @@
|
|
|
| namespace base {
|
| class SingleThreadTaskRunner;
|
| +class TickClock;
|
| }
|
|
|
| namespace net {
|
| @@ -96,6 +98,7 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties {
|
| PrefDelegate* pref_delegate,
|
| scoped_refptr<base::SingleThreadTaskRunner> pref_task_runner,
|
| scoped_refptr<base::SingleThreadTaskRunner> network_task_runner);
|
| +
|
| ~HttpServerPropertiesManager() override;
|
|
|
| // Initialize on Network thread.
|
| @@ -166,6 +169,9 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties {
|
| static base::TimeDelta GetUpdateCacheDelayForTesting();
|
| static base::TimeDelta GetUpdatePrefsDelayForTesting();
|
|
|
| + // |clock| is unowned.
|
| + void SetTickClockForTesting(base::TickClock* clock);
|
| +
|
| protected:
|
| // The location where ScheduleUpdatePrefsOnNetworkSequence was called.
|
| // Must be kept up to date with HttpServerPropertiesUpdatePrefsLocation in
|
| @@ -211,6 +217,10 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties {
|
| IPAddress* last_quic_address,
|
| ServerNetworkStatsMap* server_network_stats_map,
|
| QuicServerInfoMap* quic_server_info_map,
|
| + std::unique_ptr<BrokenAlternativeServiceList>
|
| + broken_alternative_service_list,
|
| + std::unique_ptr<RecentlyBrokenAlternativeServices>
|
| + recently_broken_alternative_services,
|
| bool detected_corrupted_prefs);
|
|
|
| // These are used to delay updating the preferences when cached data in
|
| @@ -232,12 +242,15 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties {
|
|
|
| // Update prefs::kHttpServerProperties preferences on pref thread. Executes an
|
| // optional |completion| callback when finished. Protected for testing.
|
| - void UpdatePrefsOnPrefThread(base::ListValue* spdy_server_list,
|
| - AlternativeServiceMap* alternative_service_map,
|
| - IPAddress* last_quic_address,
|
| - ServerNetworkStatsMap* server_network_stats_map,
|
| - QuicServerInfoMap* quic_server_info_map,
|
| - const base::Closure& completion);
|
| + void UpdatePrefsOnPrefThread(
|
| + base::ListValue* spdy_server_list,
|
| + AlternativeServiceMap* alternative_service_map,
|
| + IPAddress* last_quic_address,
|
| + ServerNetworkStatsMap* server_network_stats_map,
|
| + QuicServerInfoMap* quic_server_info_map,
|
| + BrokenAlternativeServiceList* broken_alternative_service_list,
|
| + RecentlyBrokenAlternativeServices* recently_broken_alternative_services,
|
| + const base::Closure& completion);
|
|
|
| private:
|
| typedef std::vector<std::string> ServerList;
|
| @@ -270,6 +283,13 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties {
|
| ServerNetworkStatsMap* network_stats_map);
|
| bool AddToQuicServerInfoMap(const base::DictionaryValue& server_dict,
|
| QuicServerInfoMap* quic_server_info_map);
|
| + bool ExtractBrokenAlternativeServiceData(
|
| + const base::DictionaryValue* broken_alternative_service_dict,
|
| + AlternativeService* alternative_service,
|
| + base::TimeTicks* expiration_time_ticks);
|
| + bool AddRecentlyBrokenAlternativeServiceData(
|
| + const base::DictionaryValue* recently_broken_alternative_service_dict,
|
| + RecentlyBrokenAlternativeServices* recently_broken_alternative_services);
|
|
|
| void SaveAlternativeServiceToServerPrefs(
|
| const AlternativeServiceInfoVector* alternative_service_info_vector,
|
| @@ -283,6 +303,13 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties {
|
| void SaveQuicServerInfoMapToServerPrefs(
|
| QuicServerInfoMap* quic_server_info_map,
|
| base::DictionaryValue* http_server_properties_dict);
|
| + void SaveBrokenAlternativeServiceListToPrefs(
|
| + const BrokenAlternativeServiceList* broken_alternative_service_list,
|
| + base::DictionaryValue* http_server_properties_dict);
|
| + void SaveRecentlyBrokenAlternativeServicesToPrefs(
|
| + const RecentlyBrokenAlternativeServices*
|
| + recently_broken_alternative_services,
|
| + base::DictionaryValue* http_server_properties_dict);
|
| void SetInitialized();
|
|
|
| // -----------
|
| @@ -299,6 +326,9 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties {
|
| std::unique_ptr<PrefDelegate> pref_delegate_;
|
| bool setting_prefs_;
|
|
|
| + base::TickClock* clock_; // Unowned if not pointing to |default_clock_|.
|
| + base::DefaultTickClock default_clock_;
|
| +
|
| // --------------
|
| // Network thread
|
| // --------------
|
|
|