1731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Use of this source code is governed by a BSD-style license that can be 3731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// found in the LICENSE file. 4731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 5731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "net/http/http_net_log_params.h" 6731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 7731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/stringprintf.h" 8731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/values.h" 9731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "net/http/http_response_headers.h" 10731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 11731df977c0511bca2206b5f333555b1205ff1f43Iain Merricknamespace net { 12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 13731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickNetLogHttpRequestParameter::NetLogHttpRequestParameter( 14731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const std::string& line, 15731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const HttpRequestHeaders& headers) 16731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick : line_(line) { 17731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick headers_.CopyFrom(headers); 18731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 19731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 20731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickValue* NetLogHttpRequestParameter::ToValue() const { 21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick DictionaryValue* dict = new DictionaryValue(); 22731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick dict->SetString("line", line_); 23731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ListValue* headers = new ListValue(); 24731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick HttpRequestHeaders::Iterator iterator(headers_); 25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick while (iterator.GetNext()) { 26731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick headers->Append( 27731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick new StringValue(base::StringPrintf("%s: %s", 28731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick iterator.name().c_str(), 29731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick iterator.value().c_str()))); 30731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick } 31731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick dict->Set("headers", headers); 32731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick return dict; 33731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 34731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 35731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickNetLogHttpRequestParameter::~NetLogHttpRequestParameter() {} 36731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 37731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickNetLogHttpResponseParameter::NetLogHttpResponseParameter( 38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const scoped_refptr<HttpResponseHeaders>& headers) 39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick : headers_(headers) {} 40731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 41731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickValue* NetLogHttpResponseParameter::ToValue() const { 42731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick DictionaryValue* dict = new DictionaryValue(); 43731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ListValue* headers = new ListValue(); 44731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick headers->Append(new StringValue(headers_->GetStatusLine())); 45731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick void* iterator = NULL; 46731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick std::string name; 47731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick std::string value; 48731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick while (headers_->EnumerateHeaderLines(&iterator, &name, &value)) { 49731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick headers->Append( 50731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick new StringValue(base::StringPrintf("%s: %s", name.c_str(), 51731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick value.c_str()))); 52731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick } 53731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick dict->Set("headers", headers); 54731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick return dict; 55731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 56731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 57731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickNetLogHttpResponseParameter::~NetLogHttpResponseParameter() {} 58731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 59731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} // namespace net 60