vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 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. | ||||
4 | |||||
5 | #include "net/log/test_net_log.h" | ||||
6 | |||||
Avi Drissman | 13fc893 | 2015-12-20 04:40:46 | [diff] [blame] | 7 | #include "base/macros.h" |
mmenke | 6d23d6f | 2015-05-05 19:05:08 | [diff] [blame] | 8 | #include "base/synchronization/lock.h" |
9 | #include "base/values.h" | ||||
mikecirone | f22f981 | 2016-10-04 03:40:19 | [diff] [blame] | 10 | #include "net/log/net_log_capture_mode.h" |
11 | #include "net/log/net_log_entry.h" | ||||
12 | #include "net/log/net_log_source.h" | ||||
mikecirone | 8b85c43 | 2016-09-08 19:11:00 | [diff] [blame] | 13 | #include "net/log/net_log_source_type.h" |
mmenke | 6d23d6f | 2015-05-05 19:05:08 | [diff] [blame] | 14 | |
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 15 | namespace net { |
16 | |||||
Matt Mueller | de5dadf | 2019-11-27 20:11:58 | [diff] [blame] | 17 | TestNetLog::TestNetLog() : NetLog(util::PassKey<TestNetLog>()) {} |
18 | TestNetLog::~TestNetLog() = default; | ||||
19 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 20 | RecordingTestNetLog::RecordingTestNetLog() { |
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 21 | AddObserver(this, NetLogCaptureMode::kIncludeSensitive); |
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 22 | } |
23 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 24 | RecordingTestNetLog::~RecordingTestNetLog() { |
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 25 | RemoveObserver(this); |
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 26 | } |
27 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 28 | std::vector<NetLogEntry> RecordingTestNetLog::GetEntries() const { |
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 29 | base::AutoLock lock(lock_); |
Eric Roman | 79cc755 | 2019-07-19 02:17:54 | [diff] [blame] | 30 | std::vector<NetLogEntry> result; |
31 | for (const auto& entry : entry_list_) | ||||
32 | result.push_back(entry.Clone()); | ||||
33 | return result; | ||||
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 34 | } |
35 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 36 | std::vector<NetLogEntry> RecordingTestNetLog::GetEntriesForSource( |
Eric Roman | 79cc755 | 2019-07-19 02:17:54 | [diff] [blame] | 37 | NetLogSource source) const { |
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 38 | base::AutoLock lock(lock_); |
Eric Roman | 79cc755 | 2019-07-19 02:17:54 | [diff] [blame] | 39 | std::vector<NetLogEntry> result; |
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 40 | for (const auto& entry : entry_list_) { |
41 | if (entry.source.id == source.id) | ||||
Eric Roman | 79cc755 | 2019-07-19 02:17:54 | [diff] [blame] | 42 | result.push_back(entry.Clone()); |
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 43 | } |
Eric Roman | 79cc755 | 2019-07-19 02:17:54 | [diff] [blame] | 44 | return result; |
45 | } | ||||
46 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 47 | std::vector<NetLogEntry> RecordingTestNetLog::GetEntriesWithType( |
Eric Roman | 79cc755 | 2019-07-19 02:17:54 | [diff] [blame] | 48 | NetLogEventType type) const { |
49 | base::AutoLock lock(lock_); | ||||
50 | std::vector<NetLogEntry> result; | ||||
51 | for (const auto& entry : entry_list_) { | ||||
52 | if (entry.type == type) | ||||
53 | result.push_back(entry.Clone()); | ||||
54 | } | ||||
55 | return result; | ||||
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 56 | } |
57 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 58 | size_t RecordingTestNetLog::GetSize() const { |
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 59 | base::AutoLock lock(lock_); |
60 | return entry_list_.size(); | ||||
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 61 | } |
62 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 63 | void RecordingTestNetLog::Clear() { |
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 64 | base::AutoLock lock(lock_); |
65 | entry_list_.clear(); | ||||
mmenke | 6d23d6f | 2015-05-05 19:05:08 | [diff] [blame] | 66 | } |
67 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 68 | void RecordingTestNetLog::OnAddEntry(const NetLogEntry& entry) { |
Eric Roman | 79cc755 | 2019-07-19 02:17:54 | [diff] [blame] | 69 | base::Value params = entry.params.Clone(); |
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 70 | |
71 | // Only need to acquire the lock when accessing class variables. | ||||
72 | base::AutoLock lock(lock_); | ||||
Matt Mueller | a9a1531 | 2020-01-29 22:45:12 | [diff] [blame] | 73 | entry_list_.emplace_back(entry.type, entry.source, entry.phase, entry.time, |
Eric Roman | 79cc755 | 2019-07-19 02:17:54 | [diff] [blame] | 74 | std::move(params)); |
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 75 | } |
76 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 77 | NetLog::ThreadSafeObserver* RecordingTestNetLog::GetObserver() { |
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 78 | return this; |
79 | } | ||||
80 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 81 | void RecordingTestNetLog::SetObserverCaptureMode( |
82 | NetLogCaptureMode capture_mode) { | ||||
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 83 | RemoveObserver(this); |
84 | AddObserver(this, capture_mode); | ||||
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 85 | } |
86 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 87 | RecordingBoundTestNetLog::RecordingBoundTestNetLog() |
tfarina | 4283411 | 2016-09-22 13:38:20 | [diff] [blame] | 88 | : net_log_(NetLogWithSource::Make(&test_net_log_, NetLogSourceType::NONE)) { |
89 | } | ||||
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 90 | |
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 91 | RecordingBoundTestNetLog::~RecordingBoundTestNetLog() = default; |
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 92 | |
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 93 | std::vector<NetLogEntry> RecordingBoundTestNetLog::GetEntries() const { |
Eric Roman | 79cc755 | 2019-07-19 02:17:54 | [diff] [blame] | 94 | return test_net_log_.GetEntries(); |
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 95 | } |
96 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 97 | std::vector<NetLogEntry> RecordingBoundTestNetLog::GetEntriesForSource( |
Eric Roman | 79cc755 | 2019-07-19 02:17:54 | [diff] [blame] | 98 | NetLogSource source) const { |
99 | return test_net_log_.GetEntriesForSource(source); | ||||
100 | } | ||||
101 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 102 | std::vector<NetLogEntry> RecordingBoundTestNetLog::GetEntriesWithType( |
Eric Roman | 79cc755 | 2019-07-19 02:17:54 | [diff] [blame] | 103 | NetLogEventType type) const { |
104 | return test_net_log_.GetEntriesWithType(type); | ||||
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 105 | } |
106 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 107 | size_t RecordingBoundTestNetLog::GetSize() const { |
mmenke | 43758e6 | 2015-05-04 21:09:46 | [diff] [blame] | 108 | return test_net_log_.GetSize(); |
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 109 | } |
110 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 111 | void RecordingBoundTestNetLog::Clear() { |
mmenke | 43758e6 | 2015-05-04 21:09:46 | [diff] [blame] | 112 | test_net_log_.Clear(); |
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 113 | } |
114 | |||||
Matt Mueller | d9342e3a | 2019-11-26 01:41:14 | [diff] [blame] | 115 | void RecordingBoundTestNetLog::SetObserverCaptureMode( |
116 | NetLogCaptureMode capture_mode) { | ||||
Eric Roman | 630830c | 2019-07-16 21:49:42 | [diff] [blame] | 117 | test_net_log_.SetObserverCaptureMode(capture_mode); |
vishal.b | 62985ca9 | 2015-04-17 08:45:51 | [diff] [blame] | 118 | } |
119 | |||||
120 | } // namespace net |