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 a2a753ac059b3a32b4aa287756735fba20916ca3..32ca82ffa7c624bd3574014c7971bc52489eea78 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" |
@@ -93,6 +94,17 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties { |
// cache update to the pref thread; |
// |network_task_runner| should be bound with the network thread and is used |
// to post pref update to the cache thread. |
+ // |
+ // |clock| is used for setting expiration times and scheduling the |
+ // expiration of broken alternative services. It must not be null. |
Zhongyi Shi
2017/07/06 23:13:53
nit: If null, default clock will be used.
wangyix1
2017/07/07 00:17:42
Done.
|
+ HttpServerPropertiesManager( |
+ PrefDelegate* pref_delegate, |
+ scoped_refptr<base::SingleThreadTaskRunner> pref_task_runner, |
+ scoped_refptr<base::SingleThreadTaskRunner> network_task_runner, |
+ NetLog* net_log, |
+ base::TickClock* clock); |
+ |
+ // Default clock will be used. |
HttpServerPropertiesManager( |
PrefDelegate* pref_delegate, |
scoped_refptr<base::SingleThreadTaskRunner> pref_task_runner, |
@@ -213,6 +225,10 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties { |
std::unique_ptr<IPAddress> last_quic_address, |
std::unique_ptr<ServerNetworkStatsMap> server_network_stats_map, |
std::unique_ptr<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 |
@@ -240,6 +256,10 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties { |
std::unique_ptr<IPAddress> last_quic_address, |
std::unique_ptr<ServerNetworkStatsMap> server_network_stats_map, |
std::unique_ptr<QuicServerInfoMap> quic_server_info_map, |
+ std::unique_ptr<BrokenAlternativeServiceList> |
+ broken_alternative_service_list, |
+ std::unique_ptr<RecentlyBrokenAlternativeServices> |
+ recently_broken_alternative_services, |
const base::Closure& completion); |
private: |
@@ -256,8 +276,12 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties { |
AlternativeServiceMap* alternative_service_map, |
ServerNetworkStatsMap* network_stats_map, |
int version); |
- bool ParseAlternativeServiceDict( |
- const base::DictionaryValue& alternative_service_dict, |
+ bool ParseAlternativeServiceDict(const base::DictionaryValue& dict, |
+ bool host_required, |
+ const std::string& parsing_under, |
+ AlternativeService* alternative_service); |
+ bool ParseAlternativeServiceInfoExpiration( |
+ const base::DictionaryValue& dict, |
const std::string& server_str, |
AlternativeServiceInfo* alternative_service_info); |
bool AddToAlternativeServiceMap( |
@@ -271,7 +295,10 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties { |
ServerNetworkStatsMap* network_stats_map); |
bool AddToQuicServerInfoMap(const base::DictionaryValue& server_dict, |
QuicServerInfoMap* quic_server_info_map); |
- |
+ bool AddToBrokenAlternativeServices( |
+ const base::DictionaryValue& broken_alt_svc_entry_dict, |
+ BrokenAlternativeServiceList* broken_alternative_service_list, |
+ RecentlyBrokenAlternativeServices* recently_broken_alternative_services); |
void SaveAlternativeServiceToServerPrefs( |
const AlternativeServiceInfoVector& alternative_service_info_vector, |
base::DictionaryValue* server_pref_dict); |
@@ -284,8 +311,16 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties { |
void SaveQuicServerInfoMapToServerPrefs( |
const QuicServerInfoMap& quic_server_info_map, |
base::DictionaryValue* http_server_properties_dict); |
+ void SaveBrokenAlternativeServicesToPrefs( |
+ const BrokenAlternativeServiceList* broken_alternative_service_list, |
+ const RecentlyBrokenAlternativeServices* |
+ recently_broken_alternative_services, |
+ base::DictionaryValue* http_server_properties_dict); |
+ |
void SetInitialized(); |
+ base::DefaultTickClock default_clock_; |
+ |
// ----------- |
// Pref thread |
// ----------- |
@@ -300,6 +335,8 @@ class NET_EXPORT HttpServerPropertiesManager : public HttpServerProperties { |
std::unique_ptr<PrefDelegate> pref_delegate_; |
bool setting_prefs_; |
+ base::TickClock* clock_; // Unowned |
+ |
// -------------- |
// Network thread |
// -------------- |