Raise SIGKILL if cast_service doesn't Finalize() within timeout.
[chromium-blink-merge.git] / net / spdy / spdy_header_block.cc
blobbbe9c71673769ebcbd77270ef4c4b11332d946dc
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.
5 #include "net/spdy/spdy_header_block.h"
7 #include "base/values.h"
8 #include "net/http/http_log_util.h"
10 namespace net {
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)));
24 dict->Set("headers", headers_dict);
25 return dict;
28 bool SpdyHeaderBlockFromNetLogParam(
29 const base::Value* event_param,
30 SpdyHeaderBlock* headers) {
31 headers->clear();
33 const base::DictionaryValue* dict = NULL;
34 const base::DictionaryValue* header_dict = NULL;
36 if (!event_param ||
37 !event_param->GetAsDictionary(&dict) ||
38 !dict->GetDictionary("headers", &header_dict)) {
39 return false;
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;
49 return true;
52 } // namespace net