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