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/spdy/spdy_header_block.h" | 5 #include "net/spdy/spdy_header_block.h" |
6 | 6 |
7 #include "base/values.h" | 7 #include "base/values.h" |
8 #include "net/http/http_log_util.h" | 8 #include "net/http/http_log_util.h" |
9 | 9 |
10 namespace net { | 10 namespace net { |
11 | 11 |
12 base::Value* SpdyHeaderBlockNetLogCallback( | 12 base::Value* SpdyHeaderBlockNetLogCallback(const SpdyHeaderBlock* headers, |
13 const SpdyHeaderBlock* headers, | 13 NetLog::LogLevel log_level) { |
14 NetLog::LogLevel log_level) { | |
15 base::DictionaryValue* dict = new base::DictionaryValue(); | 14 base::DictionaryValue* dict = new base::DictionaryValue(); |
16 base::DictionaryValue* headers_dict = new base::DictionaryValue(); | 15 base::DictionaryValue* headers_dict = new base::DictionaryValue(); |
17 for (SpdyHeaderBlock::const_iterator it = headers->begin(); | 16 for (SpdyHeaderBlock::const_iterator it = headers->begin(); |
18 it != headers->end(); ++it) { | 17 it != headers->end(); |
| 18 ++it) { |
19 headers_dict->SetWithoutPathExpansion( | 19 headers_dict->SetWithoutPathExpansion( |
20 it->first, | 20 it->first, |
21 new base::StringValue( | 21 new base::StringValue( |
22 ElideHeaderValueForNetLog(log_level, it->first, it->second))); | 22 ElideHeaderValueForNetLog(log_level, it->first, it->second))); |
23 } | 23 } |
24 dict->Set("headers", headers_dict); | 24 dict->Set("headers", headers_dict); |
25 return dict; | 25 return dict; |
26 } | 26 } |
27 | 27 |
28 bool SpdyHeaderBlockFromNetLogParam( | 28 bool SpdyHeaderBlockFromNetLogParam(const base::Value* event_param, |
29 const base::Value* event_param, | 29 SpdyHeaderBlock* headers) { |
30 SpdyHeaderBlock* headers) { | |
31 headers->clear(); | 30 headers->clear(); |
32 | 31 |
33 const base::DictionaryValue* dict = NULL; | 32 const base::DictionaryValue* dict = NULL; |
34 const base::DictionaryValue* header_dict = NULL; | 33 const base::DictionaryValue* header_dict = NULL; |
35 | 34 |
36 if (!event_param || | 35 if (!event_param || !event_param->GetAsDictionary(&dict) || |
37 !event_param->GetAsDictionary(&dict) || | |
38 !dict->GetDictionary("headers", &header_dict)) { | 36 !dict->GetDictionary("headers", &header_dict)) { |
39 return false; | 37 return false; |
40 } | 38 } |
41 | 39 |
42 for (base::DictionaryValue::Iterator it(*header_dict); !it.IsAtEnd(); | 40 for (base::DictionaryValue::Iterator it(*header_dict); !it.IsAtEnd(); |
43 it.Advance()) { | 41 it.Advance()) { |
44 if (!it.value().GetAsString(&(*headers)[it.key()])) { | 42 if (!it.value().GetAsString(&(*headers)[it.key()])) { |
45 headers->clear(); | 43 headers->clear(); |
46 return false; | 44 return false; |
47 } | 45 } |
48 } | 46 } |
49 return true; | 47 return true; |
50 } | 48 } |
51 | 49 |
52 } // namespace net | 50 } // namespace net |
OLD | NEW |