Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/http_server_properties_manager.h" | 5 #include "net/http/http_server_properties_manager.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 74 | 74 |
| 75 HttpServerPropertiesManager::HttpServerPropertiesManager( | 75 HttpServerPropertiesManager::HttpServerPropertiesManager( |
| 76 PrefDelegate* pref_delegate, | 76 PrefDelegate* pref_delegate, |
| 77 scoped_refptr<base::SingleThreadTaskRunner> pref_task_runner, | 77 scoped_refptr<base::SingleThreadTaskRunner> pref_task_runner, |
| 78 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner) | 78 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner) |
| 79 : pref_task_runner_(std::move(pref_task_runner)), | 79 : pref_task_runner_(std::move(pref_task_runner)), |
| 80 pref_delegate_(pref_delegate), | 80 pref_delegate_(pref_delegate), |
| 81 setting_prefs_(false), | 81 setting_prefs_(false), |
| 82 is_initialized_(false), | 82 is_initialized_(false), |
| 83 network_task_runner_(std::move(network_task_runner)) { | 83 network_task_runner_(std::move(network_task_runner)) { |
| 84 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); | 84 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence()); |
| 85 DCHECK(pref_delegate_); | 85 DCHECK(pref_delegate_); |
| 86 pref_weak_ptr_factory_.reset( | 86 pref_weak_ptr_factory_.reset( |
| 87 new base::WeakPtrFactory<HttpServerPropertiesManager>(this)); | 87 new base::WeakPtrFactory<HttpServerPropertiesManager>(this)); |
| 88 pref_weak_ptr_ = pref_weak_ptr_factory_->GetWeakPtr(); | 88 pref_weak_ptr_ = pref_weak_ptr_factory_->GetWeakPtr(); |
| 89 pref_cache_update_timer_.reset(new base::OneShotTimer); | 89 pref_cache_update_timer_.reset(new base::OneShotTimer); |
| 90 pref_cache_update_timer_->SetTaskRunner(pref_task_runner_); | 90 pref_cache_update_timer_->SetTaskRunner(pref_task_runner_); |
| 91 pref_delegate_->StartListeningForUpdates( | 91 pref_delegate_->StartListeningForUpdates( |
| 92 base::Bind(&HttpServerPropertiesManager::OnHttpServerPropertiesChanged, | 92 base::Bind(&HttpServerPropertiesManager::OnHttpServerPropertiesChanged, |
| 93 base::Unretained(this))); | 93 base::Unretained(this))); |
| 94 } | 94 } |
| 95 | 95 |
| 96 HttpServerPropertiesManager::~HttpServerPropertiesManager() { | 96 HttpServerPropertiesManager::~HttpServerPropertiesManager() { |
| 97 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 97 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 98 network_weak_ptr_factory_.reset(); | 98 network_weak_ptr_factory_.reset(); |
| 99 } | 99 } |
| 100 | 100 |
| 101 void HttpServerPropertiesManager::InitializeOnNetworkThread() { | 101 void HttpServerPropertiesManager::InitializeOnNetworkThread() { |
|
Ryan Sleevi
2017/05/22 17:22:13
OnNetworkSequence?
Yeol Park
2017/05/23 05:26:33
Done.
| |
| 102 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 102 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 103 | 103 |
| 104 network_weak_ptr_factory_.reset( | 104 network_weak_ptr_factory_.reset( |
| 105 new base::WeakPtrFactory<HttpServerPropertiesManager>(this)); | 105 new base::WeakPtrFactory<HttpServerPropertiesManager>(this)); |
| 106 http_server_properties_impl_.reset(new HttpServerPropertiesImpl()); | 106 http_server_properties_impl_.reset(new HttpServerPropertiesImpl()); |
| 107 | 107 |
| 108 network_prefs_update_timer_.reset(new base::OneShotTimer); | 108 network_prefs_update_timer_.reset(new base::OneShotTimer); |
| 109 network_prefs_update_timer_->SetTaskRunner(network_task_runner_); | 109 network_prefs_update_timer_->SetTaskRunner(network_task_runner_); |
| 110 // UpdateCacheFromPrefsOnPrefThread() will post a task to network thread to | 110 // UpdateCacheFromPrefsOnPrefThread() will post a task to network thread to |
| 111 // update server properties. SetInitialized() will be run after that task is | 111 // update server properties. SetInitialized() will be run after that task is |
| 112 // run as |network_task_runner_| is single threaded. | 112 // run as |network_task_runner_| is single threaded. |
| 113 pref_task_runner_->PostTaskAndReply( | 113 pref_task_runner_->PostTaskAndReply( |
| 114 FROM_HERE, | 114 FROM_HERE, |
| 115 base::Bind(&HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread, | 115 base::Bind(&HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread, |
| 116 pref_weak_ptr_), | 116 pref_weak_ptr_), |
| 117 base::Bind(&HttpServerPropertiesManager::SetInitialized, | 117 base::Bind(&HttpServerPropertiesManager::SetInitialized, |
| 118 network_weak_ptr_factory_->GetWeakPtr())); | 118 network_weak_ptr_factory_->GetWeakPtr())); |
| 119 } | 119 } |
| 120 | 120 |
| 121 void HttpServerPropertiesManager::ShutdownOnPrefThread() { | 121 void HttpServerPropertiesManager::ShutdownOnPrefThread() { |
|
Ryan Sleevi
2017/05/22 17:22:13
OnPrefSequence?
Yeol Park
2017/05/23 05:26:33
Done.
| |
| 122 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); | 122 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence()); |
| 123 // Cancel any pending updates, and stop listening for pref change updates. | 123 // Cancel any pending updates, and stop listening for pref change updates. |
| 124 pref_cache_update_timer_->Stop(); | 124 pref_cache_update_timer_->Stop(); |
| 125 pref_weak_ptr_factory_.reset(); | 125 pref_weak_ptr_factory_.reset(); |
| 126 pref_delegate_->StopListeningForUpdates(); | 126 pref_delegate_->StopListeningForUpdates(); |
| 127 } | 127 } |
| 128 | 128 |
| 129 // static | 129 // static |
| 130 void HttpServerPropertiesManager::SetVersion( | 130 void HttpServerPropertiesManager::SetVersion( |
| 131 base::DictionaryValue* http_server_properties_dict, | 131 base::DictionaryValue* http_server_properties_dict, |
| 132 int version_number) { | 132 int version_number) { |
| 133 if (version_number < 0) | 133 if (version_number < 0) |
| 134 version_number = kVersionNumber; | 134 version_number = kVersionNumber; |
| 135 DCHECK_LE(version_number, kVersionNumber); | 135 DCHECK_LE(version_number, kVersionNumber); |
| 136 if (version_number <= kVersionNumber) | 136 if (version_number <= kVersionNumber) |
| 137 http_server_properties_dict->SetInteger(kVersionKey, version_number); | 137 http_server_properties_dict->SetInteger(kVersionKey, version_number); |
| 138 } | 138 } |
| 139 | 139 |
| 140 void HttpServerPropertiesManager::Clear() { | 140 void HttpServerPropertiesManager::Clear() { |
| 141 Clear(base::Closure()); | 141 Clear(base::Closure()); |
| 142 } | 142 } |
| 143 | 143 |
| 144 void HttpServerPropertiesManager::Clear(const base::Closure& completion) { | 144 void HttpServerPropertiesManager::Clear(const base::Closure& completion) { |
| 145 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 145 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 146 | 146 |
| 147 http_server_properties_impl_->Clear(); | 147 http_server_properties_impl_->Clear(); |
| 148 UpdatePrefsFromCacheOnNetworkThread(completion); | 148 UpdatePrefsFromCacheOnNetworkThread(completion); |
| 149 } | 149 } |
| 150 | 150 |
| 151 bool HttpServerPropertiesManager::SupportsRequestPriority( | 151 bool HttpServerPropertiesManager::SupportsRequestPriority( |
| 152 const url::SchemeHostPort& server) { | 152 const url::SchemeHostPort& server) { |
| 153 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 153 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 154 return http_server_properties_impl_->SupportsRequestPriority(server); | 154 return http_server_properties_impl_->SupportsRequestPriority(server); |
| 155 } | 155 } |
| 156 | 156 |
| 157 bool HttpServerPropertiesManager::GetSupportsSpdy( | 157 bool HttpServerPropertiesManager::GetSupportsSpdy( |
| 158 const url::SchemeHostPort& server) { | 158 const url::SchemeHostPort& server) { |
| 159 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 159 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 160 return http_server_properties_impl_->GetSupportsSpdy(server); | 160 return http_server_properties_impl_->GetSupportsSpdy(server); |
| 161 } | 161 } |
| 162 | 162 |
| 163 void HttpServerPropertiesManager::SetSupportsSpdy( | 163 void HttpServerPropertiesManager::SetSupportsSpdy( |
| 164 const url::SchemeHostPort& server, | 164 const url::SchemeHostPort& server, |
| 165 bool support_spdy) { | 165 bool support_spdy) { |
| 166 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 166 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 167 | 167 |
| 168 bool old_support_spdy = http_server_properties_impl_->GetSupportsSpdy(server); | 168 bool old_support_spdy = http_server_properties_impl_->GetSupportsSpdy(server); |
| 169 http_server_properties_impl_->SetSupportsSpdy(server, support_spdy); | 169 http_server_properties_impl_->SetSupportsSpdy(server, support_spdy); |
| 170 bool new_support_spdy = http_server_properties_impl_->GetSupportsSpdy(server); | 170 bool new_support_spdy = http_server_properties_impl_->GetSupportsSpdy(server); |
| 171 if (old_support_spdy != new_support_spdy) | 171 if (old_support_spdy != new_support_spdy) |
| 172 ScheduleUpdatePrefsOnNetworkThread(SUPPORTS_SPDY); | 172 ScheduleUpdatePrefsOnNetworkThread(SUPPORTS_SPDY); |
| 173 } | 173 } |
| 174 | 174 |
| 175 bool HttpServerPropertiesManager::RequiresHTTP11(const HostPortPair& server) { | 175 bool HttpServerPropertiesManager::RequiresHTTP11(const HostPortPair& server) { |
| 176 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 176 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 177 return http_server_properties_impl_->RequiresHTTP11(server); | 177 return http_server_properties_impl_->RequiresHTTP11(server); |
| 178 } | 178 } |
| 179 | 179 |
| 180 void HttpServerPropertiesManager::SetHTTP11Required( | 180 void HttpServerPropertiesManager::SetHTTP11Required( |
| 181 const HostPortPair& server) { | 181 const HostPortPair& server) { |
| 182 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 182 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 183 | 183 |
| 184 http_server_properties_impl_->SetHTTP11Required(server); | 184 http_server_properties_impl_->SetHTTP11Required(server); |
| 185 ScheduleUpdatePrefsOnNetworkThread(HTTP_11_REQUIRED); | 185 ScheduleUpdatePrefsOnNetworkThread(HTTP_11_REQUIRED); |
| 186 } | 186 } |
| 187 | 187 |
| 188 void HttpServerPropertiesManager::MaybeForceHTTP11(const HostPortPair& server, | 188 void HttpServerPropertiesManager::MaybeForceHTTP11(const HostPortPair& server, |
| 189 SSLConfig* ssl_config) { | 189 SSLConfig* ssl_config) { |
| 190 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 190 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 191 http_server_properties_impl_->MaybeForceHTTP11(server, ssl_config); | 191 http_server_properties_impl_->MaybeForceHTTP11(server, ssl_config); |
| 192 } | 192 } |
| 193 | 193 |
| 194 AlternativeServiceVector HttpServerPropertiesManager::GetAlternativeServices( | 194 AlternativeServiceVector HttpServerPropertiesManager::GetAlternativeServices( |
| 195 const url::SchemeHostPort& origin) { | 195 const url::SchemeHostPort& origin) { |
| 196 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 196 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 197 return http_server_properties_impl_->GetAlternativeServices(origin); | 197 return http_server_properties_impl_->GetAlternativeServices(origin); |
| 198 } | 198 } |
| 199 | 199 |
| 200 bool HttpServerPropertiesManager::SetAlternativeService( | 200 bool HttpServerPropertiesManager::SetAlternativeService( |
| 201 const url::SchemeHostPort& origin, | 201 const url::SchemeHostPort& origin, |
| 202 const AlternativeService& alternative_service, | 202 const AlternativeService& alternative_service, |
| 203 base::Time expiration) { | 203 base::Time expiration) { |
| 204 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 204 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 205 const bool changed = http_server_properties_impl_->SetAlternativeService( | 205 const bool changed = http_server_properties_impl_->SetAlternativeService( |
| 206 origin, alternative_service, expiration); | 206 origin, alternative_service, expiration); |
| 207 if (changed) { | 207 if (changed) { |
| 208 ScheduleUpdatePrefsOnNetworkThread(SET_ALTERNATIVE_SERVICES); | 208 ScheduleUpdatePrefsOnNetworkThread(SET_ALTERNATIVE_SERVICES); |
| 209 } | 209 } |
| 210 return changed; | 210 return changed; |
| 211 } | 211 } |
| 212 | 212 |
| 213 bool HttpServerPropertiesManager::SetAlternativeServices( | 213 bool HttpServerPropertiesManager::SetAlternativeServices( |
| 214 const url::SchemeHostPort& origin, | 214 const url::SchemeHostPort& origin, |
| 215 const AlternativeServiceInfoVector& alternative_service_info_vector) { | 215 const AlternativeServiceInfoVector& alternative_service_info_vector) { |
| 216 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 216 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 217 const bool changed = http_server_properties_impl_->SetAlternativeServices( | 217 const bool changed = http_server_properties_impl_->SetAlternativeServices( |
| 218 origin, alternative_service_info_vector); | 218 origin, alternative_service_info_vector); |
| 219 if (changed) { | 219 if (changed) { |
| 220 ScheduleUpdatePrefsOnNetworkThread(SET_ALTERNATIVE_SERVICES); | 220 ScheduleUpdatePrefsOnNetworkThread(SET_ALTERNATIVE_SERVICES); |
| 221 } | 221 } |
| 222 return changed; | 222 return changed; |
| 223 } | 223 } |
| 224 | 224 |
| 225 void HttpServerPropertiesManager::MarkAlternativeServiceBroken( | 225 void HttpServerPropertiesManager::MarkAlternativeServiceBroken( |
| 226 const AlternativeService& alternative_service) { | 226 const AlternativeService& alternative_service) { |
| 227 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 227 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 228 http_server_properties_impl_->MarkAlternativeServiceBroken( | 228 http_server_properties_impl_->MarkAlternativeServiceBroken( |
| 229 alternative_service); | 229 alternative_service); |
| 230 ScheduleUpdatePrefsOnNetworkThread(MARK_ALTERNATIVE_SERVICE_BROKEN); | 230 ScheduleUpdatePrefsOnNetworkThread(MARK_ALTERNATIVE_SERVICE_BROKEN); |
| 231 } | 231 } |
| 232 | 232 |
| 233 void HttpServerPropertiesManager::MarkAlternativeServiceRecentlyBroken( | 233 void HttpServerPropertiesManager::MarkAlternativeServiceRecentlyBroken( |
| 234 const AlternativeService& alternative_service) { | 234 const AlternativeService& alternative_service) { |
| 235 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 235 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 236 http_server_properties_impl_->MarkAlternativeServiceRecentlyBroken( | 236 http_server_properties_impl_->MarkAlternativeServiceRecentlyBroken( |
| 237 alternative_service); | 237 alternative_service); |
| 238 ScheduleUpdatePrefsOnNetworkThread(MARK_ALTERNATIVE_SERVICE_RECENTLY_BROKEN); | 238 ScheduleUpdatePrefsOnNetworkThread(MARK_ALTERNATIVE_SERVICE_RECENTLY_BROKEN); |
| 239 } | 239 } |
| 240 | 240 |
| 241 bool HttpServerPropertiesManager::IsAlternativeServiceBroken( | 241 bool HttpServerPropertiesManager::IsAlternativeServiceBroken( |
| 242 const AlternativeService& alternative_service) const { | 242 const AlternativeService& alternative_service) const { |
| 243 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 243 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 244 return http_server_properties_impl_->IsAlternativeServiceBroken( | 244 return http_server_properties_impl_->IsAlternativeServiceBroken( |
| 245 alternative_service); | 245 alternative_service); |
| 246 } | 246 } |
| 247 | 247 |
| 248 bool HttpServerPropertiesManager::WasAlternativeServiceRecentlyBroken( | 248 bool HttpServerPropertiesManager::WasAlternativeServiceRecentlyBroken( |
| 249 const AlternativeService& alternative_service) { | 249 const AlternativeService& alternative_service) { |
| 250 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 250 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 251 return http_server_properties_impl_->WasAlternativeServiceRecentlyBroken( | 251 return http_server_properties_impl_->WasAlternativeServiceRecentlyBroken( |
| 252 alternative_service); | 252 alternative_service); |
| 253 } | 253 } |
| 254 | 254 |
| 255 void HttpServerPropertiesManager::ConfirmAlternativeService( | 255 void HttpServerPropertiesManager::ConfirmAlternativeService( |
| 256 const AlternativeService& alternative_service) { | 256 const AlternativeService& alternative_service) { |
| 257 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 257 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 258 bool old_value = http_server_properties_impl_->IsAlternativeServiceBroken( | 258 bool old_value = http_server_properties_impl_->IsAlternativeServiceBroken( |
| 259 alternative_service); | 259 alternative_service); |
| 260 http_server_properties_impl_->ConfirmAlternativeService(alternative_service); | 260 http_server_properties_impl_->ConfirmAlternativeService(alternative_service); |
| 261 bool new_value = http_server_properties_impl_->IsAlternativeServiceBroken( | 261 bool new_value = http_server_properties_impl_->IsAlternativeServiceBroken( |
| 262 alternative_service); | 262 alternative_service); |
| 263 // For persisting, we only care about the value returned by | 263 // For persisting, we only care about the value returned by |
| 264 // IsAlternativeServiceBroken. If that value changes, then call persist. | 264 // IsAlternativeServiceBroken. If that value changes, then call persist. |
| 265 if (old_value != new_value) | 265 if (old_value != new_value) |
| 266 ScheduleUpdatePrefsOnNetworkThread(CONFIRM_ALTERNATIVE_SERVICE); | 266 ScheduleUpdatePrefsOnNetworkThread(CONFIRM_ALTERNATIVE_SERVICE); |
| 267 } | 267 } |
| 268 | 268 |
| 269 const AlternativeServiceMap& | 269 const AlternativeServiceMap& |
| 270 HttpServerPropertiesManager::alternative_service_map() const { | 270 HttpServerPropertiesManager::alternative_service_map() const { |
| 271 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 271 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 272 return http_server_properties_impl_->alternative_service_map(); | 272 return http_server_properties_impl_->alternative_service_map(); |
| 273 } | 273 } |
| 274 | 274 |
| 275 std::unique_ptr<base::Value> | 275 std::unique_ptr<base::Value> |
| 276 HttpServerPropertiesManager::GetAlternativeServiceInfoAsValue() const { | 276 HttpServerPropertiesManager::GetAlternativeServiceInfoAsValue() const { |
| 277 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 277 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 278 return http_server_properties_impl_->GetAlternativeServiceInfoAsValue(); | 278 return http_server_properties_impl_->GetAlternativeServiceInfoAsValue(); |
| 279 } | 279 } |
| 280 | 280 |
| 281 bool HttpServerPropertiesManager::GetSupportsQuic( | 281 bool HttpServerPropertiesManager::GetSupportsQuic( |
| 282 IPAddress* last_address) const { | 282 IPAddress* last_address) const { |
| 283 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 283 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 284 return http_server_properties_impl_->GetSupportsQuic(last_address); | 284 return http_server_properties_impl_->GetSupportsQuic(last_address); |
| 285 } | 285 } |
| 286 | 286 |
| 287 void HttpServerPropertiesManager::SetSupportsQuic(bool used_quic, | 287 void HttpServerPropertiesManager::SetSupportsQuic(bool used_quic, |
| 288 const IPAddress& address) { | 288 const IPAddress& address) { |
| 289 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 289 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 290 IPAddress old_last_quic_addr; | 290 IPAddress old_last_quic_addr; |
| 291 http_server_properties_impl_->GetSupportsQuic(&old_last_quic_addr); | 291 http_server_properties_impl_->GetSupportsQuic(&old_last_quic_addr); |
| 292 http_server_properties_impl_->SetSupportsQuic(used_quic, address); | 292 http_server_properties_impl_->SetSupportsQuic(used_quic, address); |
| 293 IPAddress new_last_quic_addr; | 293 IPAddress new_last_quic_addr; |
| 294 http_server_properties_impl_->GetSupportsQuic(&new_last_quic_addr); | 294 http_server_properties_impl_->GetSupportsQuic(&new_last_quic_addr); |
| 295 if (old_last_quic_addr != new_last_quic_addr) | 295 if (old_last_quic_addr != new_last_quic_addr) |
| 296 ScheduleUpdatePrefsOnNetworkThread(SET_SUPPORTS_QUIC); | 296 ScheduleUpdatePrefsOnNetworkThread(SET_SUPPORTS_QUIC); |
| 297 } | 297 } |
| 298 | 298 |
| 299 void HttpServerPropertiesManager::SetServerNetworkStats( | 299 void HttpServerPropertiesManager::SetServerNetworkStats( |
| 300 const url::SchemeHostPort& server, | 300 const url::SchemeHostPort& server, |
| 301 ServerNetworkStats stats) { | 301 ServerNetworkStats stats) { |
| 302 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 302 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 303 ServerNetworkStats old_stats; | 303 ServerNetworkStats old_stats; |
| 304 const ServerNetworkStats* old_stats_ptr = | 304 const ServerNetworkStats* old_stats_ptr = |
| 305 http_server_properties_impl_->GetServerNetworkStats(server); | 305 http_server_properties_impl_->GetServerNetworkStats(server); |
| 306 if (http_server_properties_impl_->GetServerNetworkStats(server)) | 306 if (http_server_properties_impl_->GetServerNetworkStats(server)) |
| 307 old_stats = *old_stats_ptr; | 307 old_stats = *old_stats_ptr; |
| 308 http_server_properties_impl_->SetServerNetworkStats(server, stats); | 308 http_server_properties_impl_->SetServerNetworkStats(server, stats); |
| 309 ServerNetworkStats new_stats = | 309 ServerNetworkStats new_stats = |
| 310 *(http_server_properties_impl_->GetServerNetworkStats(server)); | 310 *(http_server_properties_impl_->GetServerNetworkStats(server)); |
| 311 if (old_stats != new_stats) | 311 if (old_stats != new_stats) |
| 312 ScheduleUpdatePrefsOnNetworkThread(SET_SERVER_NETWORK_STATS); | 312 ScheduleUpdatePrefsOnNetworkThread(SET_SERVER_NETWORK_STATS); |
| 313 } | 313 } |
| 314 | 314 |
| 315 void HttpServerPropertiesManager::ClearServerNetworkStats( | 315 void HttpServerPropertiesManager::ClearServerNetworkStats( |
| 316 const url::SchemeHostPort& server) { | 316 const url::SchemeHostPort& server) { |
| 317 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 317 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 318 bool need_update = | 318 bool need_update = |
| 319 http_server_properties_impl_->GetServerNetworkStats(server) != nullptr; | 319 http_server_properties_impl_->GetServerNetworkStats(server) != nullptr; |
| 320 http_server_properties_impl_->ClearServerNetworkStats(server); | 320 http_server_properties_impl_->ClearServerNetworkStats(server); |
| 321 if (need_update) | 321 if (need_update) |
| 322 ScheduleUpdatePrefsOnNetworkThread(CLEAR_SERVER_NETWORK_STATS); | 322 ScheduleUpdatePrefsOnNetworkThread(CLEAR_SERVER_NETWORK_STATS); |
| 323 } | 323 } |
| 324 | 324 |
| 325 const ServerNetworkStats* HttpServerPropertiesManager::GetServerNetworkStats( | 325 const ServerNetworkStats* HttpServerPropertiesManager::GetServerNetworkStats( |
| 326 const url::SchemeHostPort& server) { | 326 const url::SchemeHostPort& server) { |
| 327 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 327 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 328 return http_server_properties_impl_->GetServerNetworkStats(server); | 328 return http_server_properties_impl_->GetServerNetworkStats(server); |
| 329 } | 329 } |
| 330 | 330 |
| 331 const ServerNetworkStatsMap& | 331 const ServerNetworkStatsMap& |
| 332 HttpServerPropertiesManager::server_network_stats_map() const { | 332 HttpServerPropertiesManager::server_network_stats_map() const { |
| 333 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 333 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 334 return http_server_properties_impl_->server_network_stats_map(); | 334 return http_server_properties_impl_->server_network_stats_map(); |
| 335 } | 335 } |
| 336 | 336 |
| 337 bool HttpServerPropertiesManager::SetQuicServerInfo( | 337 bool HttpServerPropertiesManager::SetQuicServerInfo( |
| 338 const QuicServerId& server_id, | 338 const QuicServerId& server_id, |
| 339 const std::string& server_info) { | 339 const std::string& server_info) { |
| 340 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 340 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 341 bool changed = | 341 bool changed = |
| 342 http_server_properties_impl_->SetQuicServerInfo(server_id, server_info); | 342 http_server_properties_impl_->SetQuicServerInfo(server_id, server_info); |
| 343 if (changed) | 343 if (changed) |
| 344 ScheduleUpdatePrefsOnNetworkThread(SET_QUIC_SERVER_INFO); | 344 ScheduleUpdatePrefsOnNetworkThread(SET_QUIC_SERVER_INFO); |
| 345 return changed; | 345 return changed; |
| 346 } | 346 } |
| 347 | 347 |
| 348 const std::string* HttpServerPropertiesManager::GetQuicServerInfo( | 348 const std::string* HttpServerPropertiesManager::GetQuicServerInfo( |
| 349 const QuicServerId& server_id) { | 349 const QuicServerId& server_id) { |
| 350 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 350 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 351 return http_server_properties_impl_->GetQuicServerInfo(server_id); | 351 return http_server_properties_impl_->GetQuicServerInfo(server_id); |
| 352 } | 352 } |
| 353 | 353 |
| 354 const QuicServerInfoMap& HttpServerPropertiesManager::quic_server_info_map() | 354 const QuicServerInfoMap& HttpServerPropertiesManager::quic_server_info_map() |
| 355 const { | 355 const { |
| 356 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 356 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 357 return http_server_properties_impl_->quic_server_info_map(); | 357 return http_server_properties_impl_->quic_server_info_map(); |
| 358 } | 358 } |
| 359 | 359 |
| 360 size_t HttpServerPropertiesManager::max_server_configs_stored_in_properties() | 360 size_t HttpServerPropertiesManager::max_server_configs_stored_in_properties() |
| 361 const { | 361 const { |
| 362 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 362 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 363 return http_server_properties_impl_ | 363 return http_server_properties_impl_ |
| 364 ->max_server_configs_stored_in_properties(); | 364 ->max_server_configs_stored_in_properties(); |
| 365 } | 365 } |
| 366 | 366 |
| 367 void HttpServerPropertiesManager::SetMaxServerConfigsStoredInProperties( | 367 void HttpServerPropertiesManager::SetMaxServerConfigsStoredInProperties( |
| 368 size_t max_server_configs_stored_in_properties) { | 368 size_t max_server_configs_stored_in_properties) { |
| 369 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 369 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 370 return http_server_properties_impl_->SetMaxServerConfigsStoredInProperties( | 370 return http_server_properties_impl_->SetMaxServerConfigsStoredInProperties( |
| 371 max_server_configs_stored_in_properties); | 371 max_server_configs_stored_in_properties); |
| 372 } | 372 } |
| 373 | 373 |
| 374 bool HttpServerPropertiesManager::IsInitialized() const { | 374 bool HttpServerPropertiesManager::IsInitialized() const { |
| 375 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 375 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 376 | 376 |
| 377 return is_initialized_; | 377 return is_initialized_; |
| 378 } | 378 } |
| 379 | 379 |
| 380 // static | 380 // static |
| 381 base::TimeDelta HttpServerPropertiesManager::GetUpdateCacheDelayForTesting() { | 381 base::TimeDelta HttpServerPropertiesManager::GetUpdateCacheDelayForTesting() { |
| 382 return kUpdateCacheDelay; | 382 return kUpdateCacheDelay; |
| 383 } | 383 } |
| 384 | 384 |
| 385 // static | 385 // static |
| 386 base::TimeDelta HttpServerPropertiesManager::GetUpdatePrefsDelayForTesting() { | 386 base::TimeDelta HttpServerPropertiesManager::GetUpdatePrefsDelayForTesting() { |
| 387 return kUpdatePrefsDelay; | 387 return kUpdatePrefsDelay; |
| 388 } | 388 } |
| 389 | 389 |
| 390 // | 390 // |
| 391 // Update the HttpServerPropertiesImpl's cache with data from preferences. | 391 // Update the HttpServerPropertiesImpl's cache with data from preferences. |
| 392 // | 392 // |
| 393 void HttpServerPropertiesManager::ScheduleUpdateCacheOnPrefThread() { | 393 void HttpServerPropertiesManager::ScheduleUpdateCacheOnPrefThread() { |
|
Ryan Sleevi
2017/05/22 17:22:13
OnPrefSequence
Yeol Park
2017/05/23 05:26:33
Done.
| |
| 394 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); | 394 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence()); |
| 395 // Do not schedule a new update if there is already one scheduled. | 395 // Do not schedule a new update if there is already one scheduled. |
| 396 if (pref_cache_update_timer_->IsRunning()) | 396 if (pref_cache_update_timer_->IsRunning()) |
| 397 return; | 397 return; |
| 398 | 398 |
| 399 pref_cache_update_timer_->Start( | 399 pref_cache_update_timer_->Start( |
| 400 FROM_HERE, kUpdateCacheDelay, this, | 400 FROM_HERE, kUpdateCacheDelay, this, |
| 401 &HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread); | 401 &HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread); |
| 402 } | 402 } |
| 403 | 403 |
| 404 void HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread() { | 404 void HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread() { |
|
Ryan Sleevi
2017/05/22 17:22:13
OnPrefSequence
Yeol Park
2017/05/23 05:26:33
Done.
| |
| 405 // The preferences can only be read on the pref thread. | 405 // The preferences can only be read on the pref thread. |
| 406 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); | 406 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence()); |
| 407 | 407 |
| 408 if (!pref_delegate_->HasServerProperties()) | 408 if (!pref_delegate_->HasServerProperties()) |
| 409 return; | 409 return; |
| 410 | 410 |
| 411 bool detected_corrupted_prefs = false; | 411 bool detected_corrupted_prefs = false; |
| 412 const base::DictionaryValue& http_server_properties_dict = | 412 const base::DictionaryValue& http_server_properties_dict = |
| 413 pref_delegate_->GetServerProperties(); | 413 pref_delegate_->GetServerProperties(); |
| 414 | 414 |
| 415 int version = kMissingVersion; | 415 int version = kMissingVersion; |
| 416 if (!http_server_properties_dict.GetIntegerWithoutPathExpansion(kVersionKey, | 416 if (!http_server_properties_dict.GetIntegerWithoutPathExpansion(kVersionKey, |
| (...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 764 DVLOG(1) << "Malformed http_server_properties quic server info: " | 764 DVLOG(1) << "Malformed http_server_properties quic server info: " |
| 765 << quic_server_id_str; | 765 << quic_server_id_str; |
| 766 detected_corrupted_prefs = true; | 766 detected_corrupted_prefs = true; |
| 767 continue; | 767 continue; |
| 768 } | 768 } |
| 769 quic_server_info_map->Put(quic_server_id, quic_server_info); | 769 quic_server_info_map->Put(quic_server_id, quic_server_info); |
| 770 } | 770 } |
| 771 return !detected_corrupted_prefs; | 771 return !detected_corrupted_prefs; |
| 772 } | 772 } |
| 773 | 773 |
| 774 void HttpServerPropertiesManager::UpdateCacheFromPrefsOnNetworkThread( | 774 void HttpServerPropertiesManager::UpdateCacheFromPrefsOnNetworkThread( |
|
Ryan Sleevi
2017/05/22 17:22:13
OnNetworkSequence
Yeol Park
2017/05/23 05:26:33
Done.
| |
| 775 ServerList* spdy_servers, | 775 ServerList* spdy_servers, |
| 776 AlternativeServiceMap* alternative_service_map, | 776 AlternativeServiceMap* alternative_service_map, |
| 777 IPAddress* last_quic_address, | 777 IPAddress* last_quic_address, |
| 778 ServerNetworkStatsMap* server_network_stats_map, | 778 ServerNetworkStatsMap* server_network_stats_map, |
| 779 QuicServerInfoMap* quic_server_info_map, | 779 QuicServerInfoMap* quic_server_info_map, |
| 780 bool detected_corrupted_prefs) { | 780 bool detected_corrupted_prefs) { |
| 781 // Preferences have the master data because admins might have pushed new | 781 // Preferences have the master data because admins might have pushed new |
| 782 // preferences. Update the cached data with new data from preferences. | 782 // preferences. Update the cached data with new data from preferences. |
| 783 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 783 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 784 | 784 |
| 785 UMA_HISTOGRAM_COUNTS("Net.CountOfSpdyServers", spdy_servers->size()); | 785 UMA_HISTOGRAM_COUNTS("Net.CountOfSpdyServers", spdy_servers->size()); |
| 786 http_server_properties_impl_->SetSpdyServers(spdy_servers, true); | 786 http_server_properties_impl_->SetSpdyServers(spdy_servers, true); |
| 787 | 787 |
| 788 // Update the cached data and use the new alternative service list from | 788 // Update the cached data and use the new alternative service list from |
| 789 // preferences. | 789 // preferences. |
| 790 UMA_HISTOGRAM_COUNTS("Net.CountOfAlternateProtocolServers", | 790 UMA_HISTOGRAM_COUNTS("Net.CountOfAlternateProtocolServers", |
| 791 alternative_service_map->size()); | 791 alternative_service_map->size()); |
| 792 http_server_properties_impl_->SetAlternativeServiceServers( | 792 http_server_properties_impl_->SetAlternativeServiceServers( |
| 793 alternative_service_map); | 793 alternative_service_map); |
| 794 | 794 |
| 795 http_server_properties_impl_->SetSupportsQuic(last_quic_address); | 795 http_server_properties_impl_->SetSupportsQuic(last_quic_address); |
| 796 | 796 |
| 797 http_server_properties_impl_->SetServerNetworkStats(server_network_stats_map); | 797 http_server_properties_impl_->SetServerNetworkStats(server_network_stats_map); |
| 798 | 798 |
| 799 UMA_HISTOGRAM_COUNTS_1000("Net.CountOfQuicServerInfos", | 799 UMA_HISTOGRAM_COUNTS_1000("Net.CountOfQuicServerInfos", |
| 800 quic_server_info_map->size()); | 800 quic_server_info_map->size()); |
| 801 | 801 |
| 802 http_server_properties_impl_->SetQuicServerInfoMap(quic_server_info_map); | 802 http_server_properties_impl_->SetQuicServerInfoMap(quic_server_info_map); |
| 803 | 803 |
| 804 // Update the prefs with what we have read (delete all corrupted prefs). | 804 // Update the prefs with what we have read (delete all corrupted prefs). |
| 805 if (detected_corrupted_prefs) | 805 if (detected_corrupted_prefs) |
| 806 ScheduleUpdatePrefsOnNetworkThread(DETECTED_CORRUPTED_PREFS); | 806 ScheduleUpdatePrefsOnNetworkThread(DETECTED_CORRUPTED_PREFS); |
| 807 } | 807 } |
| 808 | 808 |
| 809 // | 809 // |
| 810 // Update Preferences with data from the cached data. | 810 // Update Preferences with data from the cached data. |
| 811 // | 811 // |
| 812 void HttpServerPropertiesManager::ScheduleUpdatePrefsOnNetworkThread( | 812 void HttpServerPropertiesManager::ScheduleUpdatePrefsOnNetworkThread( |
|
Ryan Sleevi
2017/05/22 17:22:13
OnNetworkSequence
Yeol Park
2017/05/23 05:27:22
Done.
| |
| 813 Location location) { | 813 Location location) { |
| 814 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 814 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 815 // Do not schedule a new update if there is already one scheduled. | 815 // Do not schedule a new update if there is already one scheduled. |
| 816 if (network_prefs_update_timer_->IsRunning()) | 816 if (network_prefs_update_timer_->IsRunning()) |
| 817 return; | 817 return; |
| 818 | 818 |
| 819 network_prefs_update_timer_->Start( | 819 network_prefs_update_timer_->Start( |
| 820 FROM_HERE, kUpdatePrefsDelay, this, | 820 FROM_HERE, kUpdatePrefsDelay, this, |
| 821 &HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkThread); | 821 &HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkThread); |
| 822 | 822 |
| 823 // TODO(rtenneti): Delete the following histogram after collecting some data. | 823 // TODO(rtenneti): Delete the following histogram after collecting some data. |
| 824 UMA_HISTOGRAM_ENUMERATION("Net.HttpServerProperties.UpdatePrefs", location, | 824 UMA_HISTOGRAM_ENUMERATION("Net.HttpServerProperties.UpdatePrefs", location, |
| 825 HttpServerPropertiesManager::NUM_LOCATIONS); | 825 HttpServerPropertiesManager::NUM_LOCATIONS); |
| 826 } | 826 } |
| 827 | 827 |
| 828 // This is required so we can set this as the callback for a timer. | 828 // This is required so we can set this as the callback for a timer. |
| 829 void HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkThread() { | 829 void HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkThread() { |
| 830 UpdatePrefsFromCacheOnNetworkThread(base::Closure()); | 830 UpdatePrefsFromCacheOnNetworkThread(base::Closure()); |
| 831 } | 831 } |
| 832 | 832 |
| 833 void HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkThread( | 833 void HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkThread( |
|
Ryan Sleevi
2017/05/22 17:22:14
OnNetworkSequence
Yeol Park
2017/05/23 05:26:33
Done.
| |
| 834 const base::Closure& completion) { | 834 const base::Closure& completion) { |
| 835 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 835 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 836 | 836 |
| 837 // It is in MRU order. | 837 // It is in MRU order. |
| 838 base::ListValue* spdy_server_list = new base::ListValue; | 838 base::ListValue* spdy_server_list = new base::ListValue; |
| 839 http_server_properties_impl_->GetSpdyServerList( | 839 http_server_properties_impl_->GetSpdyServerList( |
| 840 spdy_server_list, kMaxSupportsSpdyServerHostsToPersist); | 840 spdy_server_list, kMaxSupportsSpdyServerHostsToPersist); |
| 841 | 841 |
| 842 AlternativeServiceMap* alternative_service_map = | 842 AlternativeServiceMap* alternative_service_map = |
| 843 new AlternativeServiceMap(kMaxAlternateProtocolHostsToPersist); | 843 new AlternativeServiceMap(kMaxAlternateProtocolHostsToPersist); |
| 844 const AlternativeServiceMap& map = | 844 const AlternativeServiceMap& map = |
| 845 http_server_properties_impl_->alternative_service_map(); | 845 http_server_properties_impl_->alternative_service_map(); |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 956 void HttpServerPropertiesManager::UpdatePrefsOnPrefThread( | 956 void HttpServerPropertiesManager::UpdatePrefsOnPrefThread( |
| 957 base::ListValue* spdy_server_list, | 957 base::ListValue* spdy_server_list, |
| 958 AlternativeServiceMap* alternative_service_map, | 958 AlternativeServiceMap* alternative_service_map, |
| 959 IPAddress* last_quic_address, | 959 IPAddress* last_quic_address, |
| 960 ServerNetworkStatsMap* server_network_stats_map, | 960 ServerNetworkStatsMap* server_network_stats_map, |
| 961 QuicServerInfoMap* quic_server_info_map, | 961 QuicServerInfoMap* quic_server_info_map, |
| 962 const base::Closure& completion) { | 962 const base::Closure& completion) { |
| 963 typedef base::MRUCache<url::SchemeHostPort, ServerPref> ServerPrefMap; | 963 typedef base::MRUCache<url::SchemeHostPort, ServerPref> ServerPrefMap; |
| 964 ServerPrefMap server_pref_map(ServerPrefMap::NO_AUTO_EVICT); | 964 ServerPrefMap server_pref_map(ServerPrefMap::NO_AUTO_EVICT); |
| 965 | 965 |
| 966 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); | 966 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence()); |
| 967 | 967 |
| 968 // Add servers that support spdy to server_pref_map in the MRU order. | 968 // Add servers that support spdy to server_pref_map in the MRU order. |
| 969 for (size_t index = spdy_server_list->GetSize(); index > 0; --index) { | 969 for (size_t index = spdy_server_list->GetSize(); index > 0; --index) { |
| 970 std::string server_str; | 970 std::string server_str; |
| 971 if (spdy_server_list->GetString(index - 1, &server_str)) { | 971 if (spdy_server_list->GetString(index - 1, &server_str)) { |
| 972 url::SchemeHostPort server((GURL(server_str))); | 972 url::SchemeHostPort server((GURL(server_str))); |
| 973 ServerPrefMap::iterator it = server_pref_map.Get(server); | 973 ServerPrefMap::iterator it = server_pref_map.Get(server); |
| 974 if (it == server_pref_map.end()) { | 974 if (it == server_pref_map.end()) { |
| 975 ServerPref server_pref; | 975 ServerPref server_pref; |
| 976 server_pref.supports_spdy = true; | 976 server_pref.supports_spdy = true; |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1135 quic_server_pref_dict->SetStringWithoutPathExpansion(kServerInfoKey, | 1135 quic_server_pref_dict->SetStringWithoutPathExpansion(kServerInfoKey, |
| 1136 entry.second); | 1136 entry.second); |
| 1137 quic_servers_dict->SetWithoutPathExpansion(server_id.ToString(), | 1137 quic_servers_dict->SetWithoutPathExpansion(server_id.ToString(), |
| 1138 quic_server_pref_dict); | 1138 quic_server_pref_dict); |
| 1139 } | 1139 } |
| 1140 http_server_properties_dict->SetWithoutPathExpansion(kQuicServers, | 1140 http_server_properties_dict->SetWithoutPathExpansion(kQuicServers, |
| 1141 quic_servers_dict); | 1141 quic_servers_dict); |
| 1142 } | 1142 } |
| 1143 | 1143 |
| 1144 void HttpServerPropertiesManager::OnHttpServerPropertiesChanged() { | 1144 void HttpServerPropertiesManager::OnHttpServerPropertiesChanged() { |
| 1145 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); | 1145 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence()); |
| 1146 if (!setting_prefs_) | 1146 if (!setting_prefs_) |
| 1147 ScheduleUpdateCacheOnPrefThread(); | 1147 ScheduleUpdateCacheOnPrefThread(); |
| 1148 } | 1148 } |
| 1149 | 1149 |
| 1150 void HttpServerPropertiesManager::SetInitialized() { | 1150 void HttpServerPropertiesManager::SetInitialized() { |
| 1151 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 1151 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| 1152 is_initialized_ = true; | 1152 is_initialized_ = true; |
| 1153 } | 1153 } |
| 1154 | 1154 |
| 1155 } // namespace net | 1155 } // namespace net |
| OLD | NEW |