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