OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/log/test_net_log.h" | 5 #include "net/log/test_net_log.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/synchronization/lock.h" | 8 #include "base/synchronization/lock.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
| 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" |
10 #include "net/log/net_log_source_type.h" | 13 #include "net/log/net_log_source_type.h" |
11 | 14 |
12 namespace net { | 15 namespace net { |
13 | 16 |
14 // TestNetLog::Observer is an implementation of NetLog::ThreadSafeObserver | 17 // TestNetLog::Observer is an implementation of NetLog::ThreadSafeObserver |
15 // that saves messages to a buffer. | 18 // that saves messages to a buffer. |
16 class TestNetLog::Observer : public NetLog::ThreadSafeObserver { | 19 class TestNetLog::Observer : public NetLog::ThreadSafeObserver { |
17 public: | 20 public: |
18 Observer() {} | 21 Observer() {} |
19 ~Observer() override {} | 22 ~Observer() override {} |
20 | 23 |
21 // Returns the list of all entries in the log. | 24 // Returns the list of all entries in the log. |
22 void GetEntries(TestNetLogEntry::List* entry_list) const { | 25 void GetEntries(TestNetLogEntry::List* entry_list) const { |
23 base::AutoLock lock(lock_); | 26 base::AutoLock lock(lock_); |
24 *entry_list = entry_list_; | 27 *entry_list = entry_list_; |
25 } | 28 } |
26 | 29 |
27 // Fills |entry_list| with all entries in the log from the specified Source. | 30 // Fills |entry_list| with all entries in the log from the specified Source. |
28 void GetEntriesForSource(NetLog::Source source, | 31 void GetEntriesForSource(NetLogSource source, |
29 TestNetLogEntry::List* entry_list) const { | 32 TestNetLogEntry::List* entry_list) const { |
30 base::AutoLock lock(lock_); | 33 base::AutoLock lock(lock_); |
31 entry_list->clear(); | 34 entry_list->clear(); |
32 for (const auto& entry : entry_list_) { | 35 for (const auto& entry : entry_list_) { |
33 if (entry.source.id == source.id) | 36 if (entry.source.id == source.id) |
34 entry_list->push_back(entry); | 37 entry_list->push_back(entry); |
35 } | 38 } |
36 } | 39 } |
37 | 40 |
38 // Returns the number of entries in the log. | 41 // Returns the number of entries in the log. |
39 size_t GetSize() const { | 42 size_t GetSize() const { |
40 base::AutoLock lock(lock_); | 43 base::AutoLock lock(lock_); |
41 return entry_list_.size(); | 44 return entry_list_.size(); |
42 } | 45 } |
43 | 46 |
44 void Clear() { | 47 void Clear() { |
45 base::AutoLock lock(lock_); | 48 base::AutoLock lock(lock_); |
46 entry_list_.clear(); | 49 entry_list_.clear(); |
47 } | 50 } |
48 | 51 |
49 private: | 52 private: |
50 // ThreadSafeObserver implementation: | 53 // ThreadSafeObserver implementation: |
51 void OnAddEntry(const NetLog::Entry& entry) override { | 54 void OnAddEntry(const NetLogEntry& entry) override { |
52 // Using Dictionaries instead of Values makes checking values a little | 55 // Using Dictionaries instead of Values makes checking values a little |
53 // simpler. | 56 // simpler. |
54 std::unique_ptr<base::DictionaryValue> param_dict = | 57 std::unique_ptr<base::DictionaryValue> param_dict = |
55 base::DictionaryValue::From(entry.ParametersToValue()); | 58 base::DictionaryValue::From(entry.ParametersToValue()); |
56 | 59 |
57 // Only need to acquire the lock when accessing class variables. | 60 // Only need to acquire the lock when accessing class variables. |
58 base::AutoLock lock(lock_); | 61 base::AutoLock lock(lock_); |
59 entry_list_.push_back(TestNetLogEntry(entry.type(), base::TimeTicks::Now(), | 62 entry_list_.push_back(TestNetLogEntry(entry.type(), base::TimeTicks::Now(), |
60 entry.source(), entry.phase(), | 63 entry.source(), entry.phase(), |
61 std::move(param_dict))); | 64 std::move(param_dict))); |
(...skipping 17 matching lines...) Expand all Loading... |
79 } | 82 } |
80 | 83 |
81 void TestNetLog::SetCaptureMode(NetLogCaptureMode capture_mode) { | 84 void TestNetLog::SetCaptureMode(NetLogCaptureMode capture_mode) { |
82 SetObserverCaptureMode(observer_.get(), capture_mode); | 85 SetObserverCaptureMode(observer_.get(), capture_mode); |
83 } | 86 } |
84 | 87 |
85 void TestNetLog::GetEntries(TestNetLogEntry::List* entry_list) const { | 88 void TestNetLog::GetEntries(TestNetLogEntry::List* entry_list) const { |
86 observer_->GetEntries(entry_list); | 89 observer_->GetEntries(entry_list); |
87 } | 90 } |
88 | 91 |
89 void TestNetLog::GetEntriesForSource(NetLog::Source source, | 92 void TestNetLog::GetEntriesForSource(NetLogSource source, |
90 TestNetLogEntry::List* entry_list) const { | 93 TestNetLogEntry::List* entry_list) const { |
91 observer_->GetEntriesForSource(source, entry_list); | 94 observer_->GetEntriesForSource(source, entry_list); |
92 } | 95 } |
93 | 96 |
94 size_t TestNetLog::GetSize() const { | 97 size_t TestNetLog::GetSize() const { |
95 return observer_->GetSize(); | 98 return observer_->GetSize(); |
96 } | 99 } |
97 | 100 |
98 void TestNetLog::Clear() { | 101 void TestNetLog::Clear() { |
99 observer_->Clear(); | 102 observer_->Clear(); |
100 } | 103 } |
101 | 104 |
102 NetLog::ThreadSafeObserver* TestNetLog::GetObserver() const { | 105 NetLog::ThreadSafeObserver* TestNetLog::GetObserver() const { |
103 return observer_.get(); | 106 return observer_.get(); |
104 } | 107 } |
105 | 108 |
106 BoundTestNetLog::BoundTestNetLog() | 109 BoundTestNetLog::BoundTestNetLog() |
107 : net_log_(NetLogWithSource::Make(&test_net_log_, NetLogSourceType::NONE)) { | 110 : net_log_(NetLogWithSource::Make(&test_net_log_, NetLogSourceType::NONE)) { |
108 } | 111 } |
109 | 112 |
110 BoundTestNetLog::~BoundTestNetLog() { | 113 BoundTestNetLog::~BoundTestNetLog() { |
111 } | 114 } |
112 | 115 |
113 void BoundTestNetLog::GetEntries(TestNetLogEntry::List* entry_list) const { | 116 void BoundTestNetLog::GetEntries(TestNetLogEntry::List* entry_list) const { |
114 test_net_log_.GetEntries(entry_list); | 117 test_net_log_.GetEntries(entry_list); |
115 } | 118 } |
116 | 119 |
117 void BoundTestNetLog::GetEntriesForSource( | 120 void BoundTestNetLog::GetEntriesForSource( |
118 NetLog::Source source, | 121 NetLogSource source, |
119 TestNetLogEntry::List* entry_list) const { | 122 TestNetLogEntry::List* entry_list) const { |
120 test_net_log_.GetEntriesForSource(source, entry_list); | 123 test_net_log_.GetEntriesForSource(source, entry_list); |
121 } | 124 } |
122 | 125 |
123 size_t BoundTestNetLog::GetSize() const { | 126 size_t BoundTestNetLog::GetSize() const { |
124 return test_net_log_.GetSize(); | 127 return test_net_log_.GetSize(); |
125 } | 128 } |
126 | 129 |
127 void BoundTestNetLog::Clear() { | 130 void BoundTestNetLog::Clear() { |
128 test_net_log_.Clear(); | 131 test_net_log_.Clear(); |
129 } | 132 } |
130 | 133 |
131 void BoundTestNetLog::SetCaptureMode(NetLogCaptureMode capture_mode) { | 134 void BoundTestNetLog::SetCaptureMode(NetLogCaptureMode capture_mode) { |
132 test_net_log_.SetCaptureMode(capture_mode); | 135 test_net_log_.SetCaptureMode(capture_mode); |
133 } | 136 } |
134 | 137 |
135 } // namespace net | 138 } // namespace net |
OLD | NEW |