1*6777b538SAndroid Build Coastguard Worker // Copyright 2016 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker #include "net/log/net_log_source.h"
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Worker #include <memory>
8*6777b538SAndroid Build Coastguard Worker #include <utility>
9*6777b538SAndroid Build Coastguard Worker
10*6777b538SAndroid Build Coastguard Worker #include "base/values.h"
11*6777b538SAndroid Build Coastguard Worker
12*6777b538SAndroid Build Coastguard Worker namespace net {
13*6777b538SAndroid Build Coastguard Worker
14*6777b538SAndroid Build Coastguard Worker // LoadTimingInfo requires this be 0.
15*6777b538SAndroid Build Coastguard Worker const uint32_t NetLogSource::kInvalidId = 0;
16*6777b538SAndroid Build Coastguard Worker
NetLogSource()17*6777b538SAndroid Build Coastguard Worker NetLogSource::NetLogSource()
18*6777b538SAndroid Build Coastguard Worker : NetLogSource(NetLogSourceType::NONE, kInvalidId) {}
19*6777b538SAndroid Build Coastguard Worker
NetLogSource(NetLogSourceType type,uint32_t id)20*6777b538SAndroid Build Coastguard Worker NetLogSource::NetLogSource(NetLogSourceType type, uint32_t id)
21*6777b538SAndroid Build Coastguard Worker : NetLogSource(type, id, base::TimeTicks::Now()) {}
22*6777b538SAndroid Build Coastguard Worker
NetLogSource(NetLogSourceType type,uint32_t id,base::TimeTicks start_time)23*6777b538SAndroid Build Coastguard Worker NetLogSource::NetLogSource(NetLogSourceType type,
24*6777b538SAndroid Build Coastguard Worker uint32_t id,
25*6777b538SAndroid Build Coastguard Worker base::TimeTicks start_time)
26*6777b538SAndroid Build Coastguard Worker : type(type), id(id), start_time(start_time) {}
27*6777b538SAndroid Build Coastguard Worker
operator ==(const NetLogSource & rhs) const28*6777b538SAndroid Build Coastguard Worker bool NetLogSource::operator==(const NetLogSource& rhs) const {
29*6777b538SAndroid Build Coastguard Worker return type == rhs.type && id == rhs.id && start_time == rhs.start_time;
30*6777b538SAndroid Build Coastguard Worker }
31*6777b538SAndroid Build Coastguard Worker
IsValid() const32*6777b538SAndroid Build Coastguard Worker bool NetLogSource::IsValid() const {
33*6777b538SAndroid Build Coastguard Worker return id != kInvalidId;
34*6777b538SAndroid Build Coastguard Worker }
35*6777b538SAndroid Build Coastguard Worker
AddToEventParameters(base::Value::Dict & event_params) const36*6777b538SAndroid Build Coastguard Worker void NetLogSource::AddToEventParameters(base::Value::Dict& event_params) const {
37*6777b538SAndroid Build Coastguard Worker base::Value::Dict dict;
38*6777b538SAndroid Build Coastguard Worker dict.Set("type", static_cast<int>(type));
39*6777b538SAndroid Build Coastguard Worker dict.Set("id", static_cast<int>(id));
40*6777b538SAndroid Build Coastguard Worker event_params.Set("source_dependency", std::move(dict));
41*6777b538SAndroid Build Coastguard Worker }
42*6777b538SAndroid Build Coastguard Worker
ToEventParameters() const43*6777b538SAndroid Build Coastguard Worker base::Value::Dict NetLogSource::ToEventParameters() const {
44*6777b538SAndroid Build Coastguard Worker if (!IsValid())
45*6777b538SAndroid Build Coastguard Worker return base::Value::Dict();
46*6777b538SAndroid Build Coastguard Worker base::Value::Dict event_params;
47*6777b538SAndroid Build Coastguard Worker AddToEventParameters(event_params);
48*6777b538SAndroid Build Coastguard Worker return event_params;
49*6777b538SAndroid Build Coastguard Worker }
50*6777b538SAndroid Build Coastguard Worker
51*6777b538SAndroid Build Coastguard Worker } // namespace net
52