OLD | NEW |
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 <algorithm> | 7 #include <algorithm> |
8 #include <memory> | 8 #include <memory> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 } | 105 } |
106 } | 106 } |
107 | 107 |
108 // Attempt to find canonical servers. Canonical suffix only apply to HTTPS. | 108 // Attempt to find canonical servers. Canonical suffix only apply to HTTPS. |
109 const uint16_t kCanonicalPort = 443; | 109 const uint16_t kCanonicalPort = 443; |
110 const char* kCanonicalScheme = "https"; | 110 const char* kCanonicalScheme = "https"; |
111 for (const std::string& canonical_suffix : canonical_suffixes_) { | 111 for (const std::string& canonical_suffix : canonical_suffixes_) { |
112 url::SchemeHostPort canonical_server(kCanonicalScheme, canonical_suffix, | 112 url::SchemeHostPort canonical_server(kCanonicalScheme, canonical_suffix, |
113 kCanonicalPort); | 113 kCanonicalPort); |
114 // If we already have a valid canonical server, we're done. | 114 // If we already have a valid canonical server, we're done. |
115 if (ContainsKey(canonical_host_to_origin_map_, canonical_server) && | 115 if (base::ContainsKey(canonical_host_to_origin_map_, canonical_server) && |
116 (alternative_service_map_.Peek( | 116 (alternative_service_map_.Peek( |
117 canonical_host_to_origin_map_[canonical_server]) != | 117 canonical_host_to_origin_map_[canonical_server]) != |
118 alternative_service_map_.end())) { | 118 alternative_service_map_.end())) { |
119 continue; | 119 continue; |
120 } | 120 } |
121 // Now attempt to find a server which matches this origin and set it as | 121 // Now attempt to find a server which matches this origin and set it as |
122 // canonical. | 122 // canonical. |
123 for (AlternativeServiceMap::const_iterator it = | 123 for (AlternativeServiceMap::const_iterator it = |
124 alternative_service_map_.begin(); | 124 alternative_service_map_.begin(); |
125 it != alternative_service_map_.end(); ++it) { | 125 it != alternative_service_map_.end(); ++it) { |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
485 | 485 |
486 // If this is the only entry in the list, schedule an expiration task. | 486 // If this is the only entry in the list, schedule an expiration task. |
487 // Otherwise it will be rescheduled automatically when the pending task runs. | 487 // Otherwise it will be rescheduled automatically when the pending task runs. |
488 if (broken_alternative_services_.size() == 1) { | 488 if (broken_alternative_services_.size() == 1) { |
489 ScheduleBrokenAlternateProtocolMappingsExpiration(); | 489 ScheduleBrokenAlternateProtocolMappingsExpiration(); |
490 } | 490 } |
491 } | 491 } |
492 | 492 |
493 void HttpServerPropertiesImpl::MarkAlternativeServiceRecentlyBroken( | 493 void HttpServerPropertiesImpl::MarkAlternativeServiceRecentlyBroken( |
494 const AlternativeService& alternative_service) { | 494 const AlternativeService& alternative_service) { |
495 if (!ContainsKey(recently_broken_alternative_services_, alternative_service)) | 495 if (!base::ContainsKey(recently_broken_alternative_services_, |
| 496 alternative_service)) |
496 recently_broken_alternative_services_[alternative_service] = 1; | 497 recently_broken_alternative_services_[alternative_service] = 1; |
497 } | 498 } |
498 | 499 |
499 bool HttpServerPropertiesImpl::IsAlternativeServiceBroken( | 500 bool HttpServerPropertiesImpl::IsAlternativeServiceBroken( |
500 const AlternativeService& alternative_service) const { | 501 const AlternativeService& alternative_service) const { |
501 // Empty host means use host of origin, callers are supposed to substitute. | 502 // Empty host means use host of origin, callers are supposed to substitute. |
502 DCHECK(!alternative_service.host.empty()); | 503 DCHECK(!alternative_service.host.empty()); |
503 return ContainsKey(broken_alternative_services_, alternative_service); | 504 return base::ContainsKey(broken_alternative_services_, alternative_service); |
504 } | 505 } |
505 | 506 |
506 bool HttpServerPropertiesImpl::WasAlternativeServiceRecentlyBroken( | 507 bool HttpServerPropertiesImpl::WasAlternativeServiceRecentlyBroken( |
507 const AlternativeService& alternative_service) { | 508 const AlternativeService& alternative_service) { |
508 if (alternative_service.protocol == UNINITIALIZED_ALTERNATE_PROTOCOL) | 509 if (alternative_service.protocol == UNINITIALIZED_ALTERNATE_PROTOCOL) |
509 return false; | 510 return false; |
510 return ContainsKey(recently_broken_alternative_services_, | 511 return base::ContainsKey(recently_broken_alternative_services_, |
511 alternative_service); | 512 alternative_service); |
512 } | 513 } |
513 | 514 |
514 void HttpServerPropertiesImpl::ConfirmAlternativeService( | 515 void HttpServerPropertiesImpl::ConfirmAlternativeService( |
515 const AlternativeService& alternative_service) { | 516 const AlternativeService& alternative_service) { |
516 if (alternative_service.protocol == UNINITIALIZED_ALTERNATE_PROTOCOL) | 517 if (alternative_service.protocol == UNINITIALIZED_ALTERNATE_PROTOCOL) |
517 return; | 518 return; |
518 broken_alternative_services_.erase(alternative_service); | 519 broken_alternative_services_.erase(alternative_service); |
519 recently_broken_alternative_services_.erase(alternative_service); | 520 recently_broken_alternative_services_.erase(alternative_service); |
520 } | 521 } |
521 | 522 |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
798 base::TimeDelta delay = when > now ? when - now : base::TimeDelta(); | 799 base::TimeDelta delay = when > now ? when - now : base::TimeDelta(); |
799 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 800 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
800 FROM_HERE, | 801 FROM_HERE, |
801 base::Bind( | 802 base::Bind( |
802 &HttpServerPropertiesImpl::ExpireBrokenAlternateProtocolMappings, | 803 &HttpServerPropertiesImpl::ExpireBrokenAlternateProtocolMappings, |
803 weak_ptr_factory_.GetWeakPtr()), | 804 weak_ptr_factory_.GetWeakPtr()), |
804 delay); | 805 delay); |
805 } | 806 } |
806 | 807 |
807 } // namespace net | 808 } // namespace net |
OLD | NEW |