Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(477)

Side by Side Diff: net/http/http_server_properties_impl.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_impl.h" 5 #include "net/http/http_server_properties_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 30 matching lines...) Expand all
41 } 41 }
42 42
43 void HttpServerPropertiesImpl::InitializeSpdyServers( 43 void HttpServerPropertiesImpl::InitializeSpdyServers(
44 std::vector<std::string>* spdy_servers, 44 std::vector<std::string>* spdy_servers,
45 bool support_spdy) { 45 bool support_spdy) {
46 DCHECK(CalledOnValidThread()); 46 DCHECK(CalledOnValidThread());
47 if (!spdy_servers) 47 if (!spdy_servers)
48 return; 48 return;
49 // Add the entries from persisted data. 49 // Add the entries from persisted data.
50 for (std::vector<std::string>::reverse_iterator it = spdy_servers->rbegin(); 50 for (std::vector<std::string>::reverse_iterator it = spdy_servers->rbegin();
51 it != spdy_servers->rend(); ++it) { 51 it != spdy_servers->rend();
52 ++it) {
52 spdy_servers_map_.Put(*it, support_spdy); 53 spdy_servers_map_.Put(*it, support_spdy);
53 } 54 }
54 } 55 }
55 56
56 void HttpServerPropertiesImpl::InitializeAlternateProtocolServers( 57 void HttpServerPropertiesImpl::InitializeAlternateProtocolServers(
57 AlternateProtocolMap* alternate_protocol_map) { 58 AlternateProtocolMap* alternate_protocol_map) {
58 // Keep all the ALTERNATE_PROTOCOL_BROKEN ones since those don't 59 // Keep all the ALTERNATE_PROTOCOL_BROKEN ones since those don't
59 // get persisted. 60 // get persisted.
60 for (AlternateProtocolMap::iterator it = alternate_protocol_map_.begin(); 61 for (AlternateProtocolMap::iterator it = alternate_protocol_map_.begin();
61 it != alternate_protocol_map_.end();) { 62 it != alternate_protocol_map_.end();) {
62 AlternateProtocolMap::iterator old_it = it; 63 AlternateProtocolMap::iterator old_it = it;
63 ++it; 64 ++it;
64 if (old_it->second.protocol != ALTERNATE_PROTOCOL_BROKEN) { 65 if (old_it->second.protocol != ALTERNATE_PROTOCOL_BROKEN) {
65 alternate_protocol_map_.Erase(old_it); 66 alternate_protocol_map_.Erase(old_it);
66 } 67 }
67 } 68 }
68 69
69 // Add the entries from persisted data. 70 // Add the entries from persisted data.
70 for (AlternateProtocolMap::reverse_iterator it = 71 for (AlternateProtocolMap::reverse_iterator it =
71 alternate_protocol_map->rbegin(); 72 alternate_protocol_map->rbegin();
72 it != alternate_protocol_map->rend(); ++it) { 73 it != alternate_protocol_map->rend();
74 ++it) {
73 alternate_protocol_map_.Put(it->first, it->second); 75 alternate_protocol_map_.Put(it->first, it->second);
74 } 76 }
75 77
76 // Attempt to find canonical servers. 78 // Attempt to find canonical servers.
77 int canonical_ports[] = { 80, 443 }; 79 int canonical_ports[] = {80, 443};
78 for (size_t i = 0; i < canoncial_suffixes_.size(); ++i) { 80 for (size_t i = 0; i < canoncial_suffixes_.size(); ++i) {
79 std::string canonical_suffix = canoncial_suffixes_[i]; 81 std::string canonical_suffix = canoncial_suffixes_[i];
80 for (size_t j = 0; j < arraysize(canonical_ports); ++j) { 82 for (size_t j = 0; j < arraysize(canonical_ports); ++j) {
81 HostPortPair canonical_host(canonical_suffix, canonical_ports[j]); 83 HostPortPair canonical_host(canonical_suffix, canonical_ports[j]);
82 // If we already have a valid canonical server, we're done. 84 // If we already have a valid canonical server, we're done.
83 if (ContainsKey(canonical_host_to_origin_map_, canonical_host) && 85 if (ContainsKey(canonical_host_to_origin_map_, canonical_host) &&
84 (alternate_protocol_map_.Peek(canonical_host_to_origin_map_[ 86 (alternate_protocol_map_.Peek(
85 canonical_host]) != alternate_protocol_map_.end())) { 87 canonical_host_to_origin_map_[canonical_host]) !=
88 alternate_protocol_map_.end())) {
86 continue; 89 continue;
87 } 90 }
88 // Now attempt to find a server which matches this origin and set it as 91 // Now attempt to find a server which matches this origin and set it as
89 // canonical . 92 // canonical .
90 for (AlternateProtocolMap::const_iterator it = 93 for (AlternateProtocolMap::const_iterator it =
91 alternate_protocol_map_.begin(); 94 alternate_protocol_map_.begin();
92 it != alternate_protocol_map_.end(); ++it) { 95 it != alternate_protocol_map_.end();
96 ++it) {
93 if (EndsWith(it->first.host(), canoncial_suffixes_[i], false)) { 97 if (EndsWith(it->first.host(), canoncial_suffixes_[i], false)) {
94 canonical_host_to_origin_map_[canonical_host] = it->first; 98 canonical_host_to_origin_map_[canonical_host] = it->first;
95 break; 99 break;
96 } 100 }
97 } 101 }
98 } 102 }
99 } 103 }
100 } 104 }
101 105
102 void HttpServerPropertiesImpl::InitializeSpdySettingsServers( 106 void HttpServerPropertiesImpl::InitializeSpdySettingsServers(
103 SpdySettingsMap* spdy_settings_map) { 107 SpdySettingsMap* spdy_settings_map) {
104 for (SpdySettingsMap::reverse_iterator it = spdy_settings_map->rbegin(); 108 for (SpdySettingsMap::reverse_iterator it = spdy_settings_map->rbegin();
105 it != spdy_settings_map->rend(); ++it) { 109 it != spdy_settings_map->rend();
110 ++it) {
106 spdy_settings_map_.Put(it->first, it->second); 111 spdy_settings_map_.Put(it->first, it->second);
107 } 112 }
108 } 113 }
109 114
110 void HttpServerPropertiesImpl::InitializePipelineCapabilities( 115 void HttpServerPropertiesImpl::InitializePipelineCapabilities(
111 const PipelineCapabilityMap* pipeline_capability_map) { 116 const PipelineCapabilityMap* pipeline_capability_map) {
112 PipelineCapabilityMap::const_iterator it; 117 PipelineCapabilityMap::const_iterator it;
113 pipeline_capability_map_->Clear(); 118 pipeline_capability_map_->Clear();
114 for (it = pipeline_capability_map->begin(); 119 for (it = pipeline_capability_map->begin();
115 it != pipeline_capability_map->end(); ++it) { 120 it != pipeline_capability_map->end();
121 ++it) {
116 pipeline_capability_map_->Put(it->first, it->second); 122 pipeline_capability_map_->Put(it->first, it->second);
117 } 123 }
118 } 124 }
119 125
120 void HttpServerPropertiesImpl::SetNumPipelinedHostsToRemember(int max_size) { 126 void HttpServerPropertiesImpl::SetNumPipelinedHostsToRemember(int max_size) {
121 DCHECK(pipeline_capability_map_->empty()); 127 DCHECK(pipeline_capability_map_->empty());
122 pipeline_capability_map_.reset(new CachedPipelineCapabilityMap(max_size)); 128 pipeline_capability_map_.reset(new CachedPipelineCapabilityMap(max_size));
123 } 129 }
124 130
125 void HttpServerPropertiesImpl::GetSpdyServerList( 131 void HttpServerPropertiesImpl::GetSpdyServerList(
126 base::ListValue* spdy_server_list, 132 base::ListValue* spdy_server_list,
127 size_t max_size) const { 133 size_t max_size) const {
128 DCHECK(CalledOnValidThread()); 134 DCHECK(CalledOnValidThread());
129 DCHECK(spdy_server_list); 135 DCHECK(spdy_server_list);
130 spdy_server_list->Clear(); 136 spdy_server_list->Clear();
131 size_t count = 0; 137 size_t count = 0;
132 // Get the list of servers (host/port) that support SPDY. 138 // Get the list of servers (host/port) that support SPDY.
133 for (SpdyServerHostPortMap::const_iterator it = spdy_servers_map_.begin(); 139 for (SpdyServerHostPortMap::const_iterator it = spdy_servers_map_.begin();
134 it != spdy_servers_map_.end() && count < max_size; ++it) { 140 it != spdy_servers_map_.end() && count < max_size;
141 ++it) {
135 const std::string spdy_server_host_port = it->first; 142 const std::string spdy_server_host_port = it->first;
136 if (it->second) { 143 if (it->second) {
137 spdy_server_list->Append(new base::StringValue(spdy_server_host_port)); 144 spdy_server_list->Append(new base::StringValue(spdy_server_host_port));
138 ++count; 145 ++count;
139 } 146 }
140 } 147 }
141 } 148 }
142 149
143 // static 150 // static
144 std::string HttpServerPropertiesImpl::GetFlattenedSpdyServer( 151 std::string HttpServerPropertiesImpl::GetFlattenedSpdyServer(
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 220
214 bool HttpServerPropertiesImpl::HasAlternateProtocol( 221 bool HttpServerPropertiesImpl::HasAlternateProtocol(
215 const HostPortPair& server) { 222 const HostPortPair& server) {
216 if (alternate_protocol_map_.Get(server) != alternate_protocol_map_.end() || 223 if (alternate_protocol_map_.Get(server) != alternate_protocol_map_.end() ||
217 g_forced_alternate_protocol) 224 g_forced_alternate_protocol)
218 return true; 225 return true;
219 226
220 return GetCanonicalHost(server) != canonical_host_to_origin_map_.end(); 227 return GetCanonicalHost(server) != canonical_host_to_origin_map_.end();
221 } 228 }
222 229
223 PortAlternateProtocolPair 230 PortAlternateProtocolPair HttpServerPropertiesImpl::GetAlternateProtocol(
224 HttpServerPropertiesImpl::GetAlternateProtocol(
225 const HostPortPair& server) { 231 const HostPortPair& server) {
226 DCHECK(HasAlternateProtocol(server)); 232 DCHECK(HasAlternateProtocol(server));
227 233
228 // First check the map. 234 // First check the map.
229 AlternateProtocolMap::iterator it = alternate_protocol_map_.Get(server); 235 AlternateProtocolMap::iterator it = alternate_protocol_map_.Get(server);
230 if (it != alternate_protocol_map_.end()) 236 if (it != alternate_protocol_map_.end())
231 return it->second; 237 return it->second;
232 238
233 // Next check the canonical host. 239 // Next check the canonical host.
234 CanonicalHostMap::const_iterator canonical_host = GetCanonicalHost(server); 240 CanonicalHostMap::const_iterator canonical_host = GetCanonicalHost(server);
(...skipping 26 matching lines...) Expand all
261 return; 267 return;
262 } 268 }
263 269
264 if (alternate_protocol != ALTERNATE_PROTOCOL_BROKEN && 270 if (alternate_protocol != ALTERNATE_PROTOCOL_BROKEN &&
265 !existing_alternate.Equals(alternate)) { 271 !existing_alternate.Equals(alternate)) {
266 LOG(WARNING) << "Changing the alternate protocol for: " 272 LOG(WARNING) << "Changing the alternate protocol for: "
267 << server.ToString() 273 << server.ToString()
268 << " from [Port: " << existing_alternate.port 274 << " from [Port: " << existing_alternate.port
269 << ", Protocol: " << existing_alternate.protocol 275 << ", Protocol: " << existing_alternate.protocol
270 << "] to [Port: " << alternate_port 276 << "] to [Port: " << alternate_port
271 << ", Protocol: " << alternate_protocol 277 << ", Protocol: " << alternate_protocol << "].";
272 << "].";
273 } 278 }
274 } else { 279 } else {
275 // TODO(rch): Consider the case where multiple requests are started 280 // TODO(rch): Consider the case where multiple requests are started
276 // before the first completes. In this case, only one of the jobs 281 // before the first completes. In this case, only one of the jobs
277 // would reach this code, whereas all of them should should have. 282 // would reach this code, whereas all of them should should have.
278 HistogramAlternateProtocolUsage(ALTERNATE_PROTOCOL_USAGE_MAPPING_MISSING); 283 HistogramAlternateProtocolUsage(ALTERNATE_PROTOCOL_USAGE_MAPPING_MISSING);
279 } 284 }
280 285
281 alternate_protocol_map_.Put(server, alternate); 286 alternate_protocol_map_.Put(server, alternate);
282 287
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 broken_alternate_protocol_map_.erase(server); 333 broken_alternate_protocol_map_.erase(server);
329 } 334 }
330 335
331 void HttpServerPropertiesImpl::ClearAlternateProtocol( 336 void HttpServerPropertiesImpl::ClearAlternateProtocol(
332 const HostPortPair& server) { 337 const HostPortPair& server) {
333 AlternateProtocolMap::iterator it = alternate_protocol_map_.Peek(server); 338 AlternateProtocolMap::iterator it = alternate_protocol_map_.Peek(server);
334 if (it != alternate_protocol_map_.end()) 339 if (it != alternate_protocol_map_.end())
335 alternate_protocol_map_.Erase(it); 340 alternate_protocol_map_.Erase(it);
336 } 341 }
337 342
338 const AlternateProtocolMap& 343 const AlternateProtocolMap& HttpServerPropertiesImpl::alternate_protocol_map()
339 HttpServerPropertiesImpl::alternate_protocol_map() const { 344 const {
340 return alternate_protocol_map_; 345 return alternate_protocol_map_;
341 } 346 }
342 347
343 const SettingsMap& HttpServerPropertiesImpl::GetSpdySettings( 348 const SettingsMap& HttpServerPropertiesImpl::GetSpdySettings(
344 const HostPortPair& host_port_pair) { 349 const HostPortPair& host_port_pair) {
345 SpdySettingsMap::iterator it = spdy_settings_map_.Get(host_port_pair); 350 SpdySettingsMap::iterator it = spdy_settings_map_.Get(host_port_pair);
346 if (it == spdy_settings_map_.end()) { 351 if (it == spdy_settings_map_.end()) {
347 CR_DEFINE_STATIC_LOCAL(SettingsMap, kEmptySettingsMap, ()); 352 CR_DEFINE_STATIC_LOCAL(SettingsMap, kEmptySettingsMap, ());
348 return kEmptySettingsMap; 353 return kEmptySettingsMap;
349 } 354 }
350 return it->second; 355 return it->second;
351 } 356 }
352 357
353 bool HttpServerPropertiesImpl::SetSpdySetting( 358 bool HttpServerPropertiesImpl::SetSpdySetting(
354 const HostPortPair& host_port_pair, 359 const HostPortPair& host_port_pair,
355 SpdySettingsIds id, 360 SpdySettingsIds id,
356 SpdySettingsFlags flags, 361 SpdySettingsFlags flags,
357 uint32 value) { 362 uint32 value) {
358 if (!(flags & SETTINGS_FLAG_PLEASE_PERSIST)) 363 if (!(flags & SETTINGS_FLAG_PLEASE_PERSIST))
359 return false; 364 return false;
360 365
361 SettingsFlagsAndValue flags_and_value(SETTINGS_FLAG_PERSISTED, value); 366 SettingsFlagsAndValue flags_and_value(SETTINGS_FLAG_PERSISTED, value);
362 SpdySettingsMap::iterator it = spdy_settings_map_.Get(host_port_pair); 367 SpdySettingsMap::iterator it = spdy_settings_map_.Get(host_port_pair);
363 if (it == spdy_settings_map_.end()) { 368 if (it == spdy_settings_map_.end()) {
364 SettingsMap settings_map; 369 SettingsMap settings_map;
365 settings_map[id] = flags_and_value; 370 settings_map[id] = flags_and_value;
366 spdy_settings_map_.Put(host_port_pair, settings_map); 371 spdy_settings_map_.Put(host_port_pair, settings_map);
367 } else { 372 } else {
368 SettingsMap& settings_map = it->second; 373 SettingsMap& settings_map = it->second;
369 settings_map[id] = flags_and_value; 374 settings_map[id] = flags_and_value;
370 } 375 }
371 return true; 376 return true;
372 } 377 }
373 378
374 void HttpServerPropertiesImpl::ClearSpdySettings( 379 void HttpServerPropertiesImpl::ClearSpdySettings(
375 const HostPortPair& host_port_pair) { 380 const HostPortPair& host_port_pair) {
376 SpdySettingsMap::iterator it = spdy_settings_map_.Peek(host_port_pair); 381 SpdySettingsMap::iterator it = spdy_settings_map_.Peek(host_port_pair);
377 if (it != spdy_settings_map_.end()) 382 if (it != spdy_settings_map_.end())
378 spdy_settings_map_.Erase(it); 383 spdy_settings_map_.Erase(it);
379 } 384 }
380 385
381 void HttpServerPropertiesImpl::ClearAllSpdySettings() { 386 void HttpServerPropertiesImpl::ClearAllSpdySettings() {
382 spdy_settings_map_.Clear(); 387 spdy_settings_map_.Clear();
383 } 388 }
384 389
385 const SpdySettingsMap& 390 const SpdySettingsMap& HttpServerPropertiesImpl::spdy_settings_map() const {
386 HttpServerPropertiesImpl::spdy_settings_map() const {
387 return spdy_settings_map_; 391 return spdy_settings_map_;
388 } 392 }
389 393
390 void HttpServerPropertiesImpl::SetServerNetworkStats( 394 void HttpServerPropertiesImpl::SetServerNetworkStats(
391 const HostPortPair& host_port_pair, 395 const HostPortPair& host_port_pair,
392 NetworkStats stats) { 396 NetworkStats stats) {
393 server_network_stats_map_[host_port_pair] = stats; 397 server_network_stats_map_[host_port_pair] = stats;
394 } 398 }
395 399
396 const HttpServerProperties::NetworkStats* 400 const HttpServerProperties::NetworkStats*
(...skipping 12 matching lines...) Expand all
409 HttpPipelinedHostCapability capability = PIPELINE_UNKNOWN; 413 HttpPipelinedHostCapability capability = PIPELINE_UNKNOWN;
410 CachedPipelineCapabilityMap::const_iterator it = 414 CachedPipelineCapabilityMap::const_iterator it =
411 pipeline_capability_map_->Get(origin); 415 pipeline_capability_map_->Get(origin);
412 if (it != pipeline_capability_map_->end()) { 416 if (it != pipeline_capability_map_->end()) {
413 capability = it->second; 417 capability = it->second;
414 } 418 }
415 return capability; 419 return capability;
416 } 420 }
417 421
418 void HttpServerPropertiesImpl::SetPipelineCapability( 422 void HttpServerPropertiesImpl::SetPipelineCapability(
419 const HostPortPair& origin, 423 const HostPortPair& origin,
420 HttpPipelinedHostCapability capability) { 424 HttpPipelinedHostCapability capability) {
421 CachedPipelineCapabilityMap::iterator it = 425 CachedPipelineCapabilityMap::iterator it =
422 pipeline_capability_map_->Peek(origin); 426 pipeline_capability_map_->Peek(origin);
423 if (it == pipeline_capability_map_->end() || 427 if (it == pipeline_capability_map_->end() ||
424 it->second != PIPELINE_INCAPABLE) { 428 it->second != PIPELINE_INCAPABLE) {
425 pipeline_capability_map_->Put(origin, capability); 429 pipeline_capability_map_->Put(origin, capability);
426 } 430 }
427 } 431 }
428 432
429 void HttpServerPropertiesImpl::ClearPipelineCapabilities() { 433 void HttpServerPropertiesImpl::ClearPipelineCapabilities() {
430 pipeline_capability_map_->Clear(); 434 pipeline_capability_map_->Clear();
431 } 435 }
432 436
433 PipelineCapabilityMap 437 PipelineCapabilityMap HttpServerPropertiesImpl::GetPipelineCapabilityMap()
434 HttpServerPropertiesImpl::GetPipelineCapabilityMap() const { 438 const {
435 PipelineCapabilityMap result; 439 PipelineCapabilityMap result;
436 CachedPipelineCapabilityMap::const_iterator it; 440 CachedPipelineCapabilityMap::const_iterator it;
437 for (it = pipeline_capability_map_->begin(); 441 for (it = pipeline_capability_map_->begin();
438 it != pipeline_capability_map_->end(); ++it) { 442 it != pipeline_capability_map_->end();
443 ++it) {
439 result[it->first] = it->second; 444 result[it->first] = it->second;
440 } 445 }
441 return result; 446 return result;
442 } 447 }
443 448
444 HttpServerPropertiesImpl::CanonicalHostMap::const_iterator 449 HttpServerPropertiesImpl::CanonicalHostMap::const_iterator
445 HttpServerPropertiesImpl::GetCanonicalHost(HostPortPair server) const { 450 HttpServerPropertiesImpl::GetCanonicalHost(HostPortPair server) const {
446 for (size_t i = 0; i < canoncial_suffixes_.size(); ++i) { 451 for (size_t i = 0; i < canoncial_suffixes_.size(); ++i) {
447 std::string canonical_suffix = canoncial_suffixes_[i]; 452 std::string canonical_suffix = canoncial_suffixes_[i];
448 if (EndsWith(server.host(), canoncial_suffixes_[i], false)) { 453 if (EndsWith(server.host(), canoncial_suffixes_[i], false)) {
(...skipping 30 matching lines...) Expand all
479 base::TimeDelta delay = when > now ? when - now : base::TimeDelta(); 484 base::TimeDelta delay = when > now ? when - now : base::TimeDelta();
480 base::MessageLoop::current()->PostDelayedTask( 485 base::MessageLoop::current()->PostDelayedTask(
481 FROM_HERE, 486 FROM_HERE,
482 base::Bind( 487 base::Bind(
483 &HttpServerPropertiesImpl::ExpireBrokenAlternateProtocolMappings, 488 &HttpServerPropertiesImpl::ExpireBrokenAlternateProtocolMappings,
484 weak_ptr_factory_.GetWeakPtr()), 489 weak_ptr_factory_.GetWeakPtr()),
485 delay); 490 delay);
486 } 491 }
487 492
488 } // namespace net 493 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698