Fix crash on app list start page keyboard navigation with <4 apps.
[chromium-blink-merge.git] / net / base / captured_net_log_entry.cc
blob9c57271891ecd11d081ea9b79125e5bf88d3f69b
1 // Copyright 2014 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/base/captured_net_log_entry.h"
7 #include "base/json/json_writer.h"
8 #include "base/logging.h"
9 #include "base/values.h"
11 namespace net {
13 CapturedNetLogEntry::CapturedNetLogEntry(
14 NetLog::EventType type,
15 const base::TimeTicks& time,
16 NetLog::Source source,
17 NetLog::EventPhase phase,
18 scoped_ptr<base::DictionaryValue> params)
19 : type(type),
20 time(time),
21 source(source),
22 phase(phase),
23 params(params.Pass()) {
24 // Only entries without a NetLog should have an invalid source.
25 CHECK(source.IsValid());
28 CapturedNetLogEntry::CapturedNetLogEntry(const CapturedNetLogEntry& entry) {
29 *this = entry;
32 CapturedNetLogEntry::~CapturedNetLogEntry() {}
34 CapturedNetLogEntry& CapturedNetLogEntry::operator=(
35 const CapturedNetLogEntry& entry) {
36 type = entry.type;
37 time = entry.time;
38 source = entry.source;
39 phase = entry.phase;
40 params.reset(entry.params ? entry.params->DeepCopy() : NULL);
41 return *this;
44 bool CapturedNetLogEntry::GetStringValue(const std::string& name,
45 std::string* value) const {
46 if (!params)
47 return false;
48 return params->GetString(name, value);
51 bool CapturedNetLogEntry::GetIntegerValue(const std::string& name,
52 int* value) const {
53 if (!params)
54 return false;
55 return params->GetInteger(name, value);
58 bool CapturedNetLogEntry::GetListValue(const std::string& name,
59 base::ListValue** value) const {
60 if (!params)
61 return false;
62 return params->GetList(name, value);
65 bool CapturedNetLogEntry::GetNetErrorCode(int* value) const {
66 return GetIntegerValue("net_error", value);
69 std::string CapturedNetLogEntry::GetParamsJson() const {
70 if (!params)
71 return std::string();
72 std::string json;
73 base::JSONWriter::Write(params.get(), &json);
74 return json;
77 } // namespace net