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

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

Issue 1216703002: Implement multiple alternative services per origin. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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
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_stream_factory.h" 5 #include "net/http/http_stream_factory.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/string_split.h" 9 #include "base/strings/string_split.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 !session.IsProtocolEnabled(protocol)) { 77 !session.IsProtocolEnabled(protocol)) {
78 DVLOG(1) << kAlternateProtocolHeader 78 DVLOG(1) << kAlternateProtocolHeader
79 << " header has unrecognized protocol: " 79 << " header has unrecognized protocol: "
80 << port_protocol_vector[1]; 80 << port_protocol_vector[1];
81 is_valid = false; 81 is_valid = false;
82 break; 82 break;
83 } 83 }
84 } 84 }
85 85
86 if (!is_valid || protocol == UNINITIALIZED_ALTERNATE_PROTOCOL) { 86 if (!is_valid || protocol == UNINITIALIZED_ALTERNATE_PROTOCOL) {
87 http_server_properties->ClearAlternativeService(http_host_port_pair); 87 http_server_properties->ClearAlternativeServices(http_host_port_pair);
88 return; 88 return;
89 } 89 }
90 90
91 HostPortPair host_port(http_host_port_pair); 91 HostPortPair host_port(http_host_port_pair);
92 const HostMappingRules* mapping_rules = GetHostMappingRules(); 92 const HostMappingRules* mapping_rules = GetHostMappingRules();
93 if (mapping_rules) 93 if (mapping_rules)
94 mapping_rules->RewriteHost(&host_port); 94 mapping_rules->RewriteHost(&host_port);
95 95
96 http_server_properties->SetAlternativeService( 96 http_server_properties->ClearAlternativeServices(host_port);
97 http_server_properties->AddAlternativeService(
97 host_port, AlternativeService(protocol, "", static_cast<uint16>(port)), 98 host_port, AlternativeService(protocol, "", static_cast<uint16>(port)),
98 probability); 99 probability);
99 } 100 }
100 101
101 GURL HttpStreamFactory::ApplyHostMappingRules(const GURL& url, 102 GURL HttpStreamFactory::ApplyHostMappingRules(const GURL& url,
102 HostPortPair* endpoint) { 103 HostPortPair* endpoint) {
103 const HostMappingRules* mapping_rules = GetHostMappingRules(); 104 const HostMappingRules* mapping_rules = GetHostMappingRules();
104 if (mapping_rules && mapping_rules->RewriteHost(endpoint)) { 105 if (mapping_rules && mapping_rules->RewriteHost(endpoint)) {
105 url::Replacements<char> replacements; 106 url::Replacements<char> replacements;
106 const std::string port_str = base::IntToString(endpoint->port()); 107 const std::string port_str = base::IntToString(endpoint->port());
107 replacements.SetPort(port_str.c_str(), url::Component(0, port_str.size())); 108 replacements.SetPort(port_str.c_str(), url::Component(0, port_str.size()));
108 replacements.SetHost(endpoint->host().c_str(), 109 replacements.SetHost(endpoint->host().c_str(),
109 url::Component(0, endpoint->host().size())); 110 url::Component(0, endpoint->host().size()));
110 return url.ReplaceComponents(replacements); 111 return url.ReplaceComponents(replacements);
111 } 112 }
112 return url; 113 return url;
113 } 114 }
114 115
115 HttpStreamFactory::HttpStreamFactory() {} 116 HttpStreamFactory::HttpStreamFactory() {}
116 117
117 } // namespace net 118 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698