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