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

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

Issue 8833003: Revert 113315 (speculative revert for http://crbug.com/106657) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years 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
« no previous file with comments | « net/http/http_server_properties_impl.h ('k') | net/http/http_stream_factory_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
11 #include "net/http/http_pipelined_host_capability.h"
12 11
13 namespace net { 12 namespace net {
14 13
15 // TODO(simonjam): Run experiments with different values of this to see what 14 HttpServerPropertiesImpl::HttpServerPropertiesImpl() {
16 // value is good at avoiding evictions without eating too much memory. Until
17 // then, this is just a bad guess.
18 static const int kDefaultNumHostsToRemember = 200;
19
20 HttpServerPropertiesImpl::HttpServerPropertiesImpl()
21 : pipeline_capability_map_(
22 new CachedPipelineCapabilityMap(kDefaultNumHostsToRemember)) {
23 } 15 }
24 16
25 HttpServerPropertiesImpl::~HttpServerPropertiesImpl() { 17 HttpServerPropertiesImpl::~HttpServerPropertiesImpl() {
26 } 18 }
27 19
28 void HttpServerPropertiesImpl::InitializeSpdyServers( 20 void HttpServerPropertiesImpl::InitializeSpdyServers(
29 std::vector<std::string>* spdy_servers, 21 std::vector<std::string>* spdy_servers,
30 bool support_spdy) { 22 bool support_spdy) {
31 DCHECK(CalledOnValidThread()); 23 DCHECK(CalledOnValidThread());
32 spdy_servers_table_.clear(); 24 spdy_servers_table_.clear();
(...skipping 16 matching lines...) Expand all
49 if (it->second.protocol == ALTERNATE_PROTOCOL_BROKEN) 41 if (it->second.protocol == ALTERNATE_PROTOCOL_BROKEN)
50 alternate_protocol_map_[it->first] = it->second; 42 alternate_protocol_map_[it->first] = it->second;
51 } 43 }
52 } 44 }
53 45
54 void HttpServerPropertiesImpl::InitializeSpdySettingsServers( 46 void HttpServerPropertiesImpl::InitializeSpdySettingsServers(
55 std::map<HostPortPair, spdy::SpdySettings>* spdy_settings_map) { 47 std::map<HostPortPair, spdy::SpdySettings>* spdy_settings_map) {
56 spdy_settings_map_.swap(*spdy_settings_map); 48 spdy_settings_map_.swap(*spdy_settings_map);
57 } 49 }
58 50
59 void HttpServerPropertiesImpl::InitializePipelineCapabilities(
60 const PipelineCapabilityMap* pipeline_capability_map) {
61 PipelineCapabilityMap::const_iterator it;
62 pipeline_capability_map_->Clear();
63 for (it = pipeline_capability_map->begin();
64 it != pipeline_capability_map->end(); ++it) {
65 pipeline_capability_map_->Put(it->first, it->second);
66 }
67 }
68
69 void HttpServerPropertiesImpl::SetNumPipelinedHostsToRemember(int max_size) {
70 DCHECK(pipeline_capability_map_->empty());
71 pipeline_capability_map_.reset(new CachedPipelineCapabilityMap(max_size));
72 }
73
74 void HttpServerPropertiesImpl::GetSpdyServerList( 51 void HttpServerPropertiesImpl::GetSpdyServerList(
75 base::ListValue* spdy_server_list) const { 52 base::ListValue* spdy_server_list) const {
76 DCHECK(CalledOnValidThread()); 53 DCHECK(CalledOnValidThread());
77 DCHECK(spdy_server_list); 54 DCHECK(spdy_server_list);
78 spdy_server_list->Clear(); 55 spdy_server_list->Clear();
79 // Get the list of servers (host/port) that support SPDY. 56 // Get the list of servers (host/port) that support SPDY.
80 for (SpdyServerHostPortTable::const_iterator it = spdy_servers_table_.begin(); 57 for (SpdyServerHostPortTable::const_iterator it = spdy_servers_table_.begin();
81 it != spdy_servers_table_.end(); ++it) { 58 it != spdy_servers_table_.end(); ++it) {
82 const std::string spdy_server_host_port = it->first; 59 const std::string spdy_server_host_port = it->first;
83 if (it->second) 60 if (it->second)
(...skipping 26 matching lines...) Expand all
110 void HttpServerPropertiesImpl::DisableForcedAlternateProtocol() { 87 void HttpServerPropertiesImpl::DisableForcedAlternateProtocol() {
111 delete g_forced_alternate_protocol; 88 delete g_forced_alternate_protocol;
112 g_forced_alternate_protocol = NULL; 89 g_forced_alternate_protocol = NULL;
113 } 90 }
114 91
115 void HttpServerPropertiesImpl::Clear() { 92 void HttpServerPropertiesImpl::Clear() {
116 DCHECK(CalledOnValidThread()); 93 DCHECK(CalledOnValidThread());
117 spdy_servers_table_.clear(); 94 spdy_servers_table_.clear();
118 alternate_protocol_map_.clear(); 95 alternate_protocol_map_.clear();
119 spdy_settings_map_.clear(); 96 spdy_settings_map_.clear();
120 pipeline_capability_map_->Clear();
121 } 97 }
122 98
123 bool HttpServerPropertiesImpl::SupportsSpdy( 99 bool HttpServerPropertiesImpl::SupportsSpdy(
124 const net::HostPortPair& host_port_pair) const { 100 const net::HostPortPair& host_port_pair) const {
125 DCHECK(CalledOnValidThread()); 101 DCHECK(CalledOnValidThread());
126 if (host_port_pair.host().empty()) 102 if (host_port_pair.host().empty())
127 return false; 103 return false;
128 std::string spdy_server = GetFlattenedSpdyServer(host_port_pair); 104 std::string spdy_server = GetFlattenedSpdyServer(host_port_pair);
129 105
130 SpdyServerHostPortTable::const_iterator spdy_host_port = 106 SpdyServerHostPortTable::const_iterator spdy_host_port =
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 232
257 void HttpServerPropertiesImpl::ClearSpdySettings() { 233 void HttpServerPropertiesImpl::ClearSpdySettings() {
258 spdy_settings_map_.clear(); 234 spdy_settings_map_.clear();
259 } 235 }
260 236
261 const SpdySettingsMap& 237 const SpdySettingsMap&
262 HttpServerPropertiesImpl::spdy_settings_map() const { 238 HttpServerPropertiesImpl::spdy_settings_map() const {
263 return spdy_settings_map_; 239 return spdy_settings_map_;
264 } 240 }
265 241
266 HttpPipelinedHostCapability HttpServerPropertiesImpl::GetPipelineCapability(
267 const HostPortPair& origin) {
268 HttpPipelinedHostCapability capability = PIPELINE_UNKNOWN;
269 CachedPipelineCapabilityMap::const_iterator it =
270 pipeline_capability_map_->Get(origin);
271 if (it != pipeline_capability_map_->end()) {
272 capability = it->second;
273 }
274 return capability;
275 }
276
277 void HttpServerPropertiesImpl::SetPipelineCapability(
278 const HostPortPair& origin,
279 HttpPipelinedHostCapability capability) {
280 CachedPipelineCapabilityMap::iterator it =
281 pipeline_capability_map_->Peek(origin);
282 if (it == pipeline_capability_map_->end() ||
283 it->second != PIPELINE_INCAPABLE) {
284 pipeline_capability_map_->Put(origin, capability);
285 }
286 }
287
288 void HttpServerPropertiesImpl::ClearPipelineCapabilities() {
289 pipeline_capability_map_->Clear();
290 }
291
292 PipelineCapabilityMap
293 HttpServerPropertiesImpl::GetPipelineCapabilityMap() const {
294 PipelineCapabilityMap result;
295 CachedPipelineCapabilityMap::const_iterator it;
296 for (it = pipeline_capability_map_->begin();
297 it != pipeline_capability_map_->end(); ++it) {
298 result[it->first] = it->second;
299 }
300 return result;
301 }
302
303 } // namespace net 242 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_server_properties_impl.h ('k') | net/http/http_stream_factory_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698