net: split RecordingNetLogObserver class out of RecordingTestNetLog
Bug: 1040681
Change-Id: Iaadc7d1b99668c8287eab5a181838f744f767e86
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036271
Commit-Queue: Matt Mueller <[email protected]>
Reviewed-by: Matt Menke <[email protected]>
Cr-Commit-Position: refs/heads/master@{#738005}
diff --git a/net/log/test_net_log.cc b/net/log/test_net_log.cc
index f38e4d10..a238e9d 100644
--- a/net/log/test_net_log.cc
+++ b/net/log/test_net_log.cc
@@ -14,18 +14,23 @@
namespace net {
-TestNetLog::TestNetLog() : NetLog(util::PassKey<TestNetLog>()) {}
-TestNetLog::~TestNetLog() = default;
+RecordingNetLogObserver::RecordingNetLogObserver()
+ : RecordingNetLogObserver(NetLogCaptureMode::kIncludeSensitive) {}
-RecordingTestNetLog::RecordingTestNetLog() {
- AddObserver(this, NetLogCaptureMode::kIncludeSensitive);
+RecordingNetLogObserver::RecordingNetLogObserver(NetLogCaptureMode capture_mode)
+ : RecordingNetLogObserver(NetLog::Get(), capture_mode) {}
+
+RecordingNetLogObserver::RecordingNetLogObserver(NetLog* net_log,
+ NetLogCaptureMode capture_mode)
+ : net_log_(net_log) {
+ net_log_->AddObserver(this, capture_mode);
}
-RecordingTestNetLog::~RecordingTestNetLog() {
- RemoveObserver(this);
+RecordingNetLogObserver::~RecordingNetLogObserver() {
+ net_log_->RemoveObserver(this);
}
-std::vector<NetLogEntry> RecordingTestNetLog::GetEntries() const {
+std::vector<NetLogEntry> RecordingNetLogObserver::GetEntries() const {
base::AutoLock lock(lock_);
std::vector<NetLogEntry> result;
for (const auto& entry : entry_list_)
@@ -33,7 +38,7 @@
return result;
}
-std::vector<NetLogEntry> RecordingTestNetLog::GetEntriesForSource(
+std::vector<NetLogEntry> RecordingNetLogObserver::GetEntriesForSource(
NetLogSource source) const {
base::AutoLock lock(lock_);
std::vector<NetLogEntry> result;
@@ -44,7 +49,7 @@
return result;
}
-std::vector<NetLogEntry> RecordingTestNetLog::GetEntriesWithType(
+std::vector<NetLogEntry> RecordingNetLogObserver::GetEntriesWithType(
NetLogEventType type) const {
base::AutoLock lock(lock_);
std::vector<NetLogEntry> result;
@@ -55,33 +60,78 @@
return result;
}
-size_t RecordingTestNetLog::GetSize() const {
+size_t RecordingNetLogObserver::GetSize() const {
base::AutoLock lock(lock_);
return entry_list_.size();
}
-void RecordingTestNetLog::Clear() {
+void RecordingNetLogObserver::Clear() {
base::AutoLock lock(lock_);
entry_list_.clear();
}
-void RecordingTestNetLog::OnAddEntry(const NetLogEntry& entry) {
+void RecordingNetLogObserver::OnAddEntry(const NetLogEntry& entry) {
base::Value params = entry.params.Clone();
+ base::RepeatingClosure add_entry_callback;
+ {
+ // Only need to acquire the lock when accessing class variables.
+ base::AutoLock lock(lock_);
+ entry_list_.emplace_back(entry.type, entry.source, entry.phase, entry.time,
+ std::move(params));
+ add_entry_callback = add_entry_callback_;
+ }
+ if (!add_entry_callback.is_null())
+ add_entry_callback.Run();
+}
- // Only need to acquire the lock when accessing class variables.
+void RecordingNetLogObserver::SetObserverCaptureMode(
+ NetLogCaptureMode capture_mode) {
+ net_log_->RemoveObserver(this);
+ net_log_->AddObserver(this, capture_mode);
+}
+
+void RecordingNetLogObserver::SetThreadsafeAddEntryCallback(
+ base::RepeatingClosure add_entry_callback) {
base::AutoLock lock(lock_);
- entry_list_.emplace_back(entry.type, entry.source, entry.phase, entry.time,
- std::move(params));
+ add_entry_callback_ = add_entry_callback;
+}
+
+TestNetLog::TestNetLog() : NetLog(util::PassKey<TestNetLog>()) {}
+TestNetLog::~TestNetLog() = default;
+
+RecordingTestNetLog::RecordingTestNetLog()
+ : observer_(this, NetLogCaptureMode::kIncludeSensitive) {}
+RecordingTestNetLog::~RecordingTestNetLog() = default;
+
+std::vector<NetLogEntry> RecordingTestNetLog::GetEntries() const {
+ return observer_.GetEntries();
+}
+
+std::vector<NetLogEntry> RecordingTestNetLog::GetEntriesForSource(
+ NetLogSource source) const {
+ return observer_.GetEntriesForSource(source);
+}
+
+std::vector<NetLogEntry> RecordingTestNetLog::GetEntriesWithType(
+ NetLogEventType type) const {
+ return observer_.GetEntriesWithType(type);
+}
+
+size_t RecordingTestNetLog::GetSize() const {
+ return observer_.GetSize();
+}
+
+void RecordingTestNetLog::Clear() {
+ return observer_.Clear();
}
NetLog::ThreadSafeObserver* RecordingTestNetLog::GetObserver() {
- return this;
+ return &observer_;
}
void RecordingTestNetLog::SetObserverCaptureMode(
NetLogCaptureMode capture_mode) {
- RemoveObserver(this);
- AddObserver(this, capture_mode);
+ observer_.SetObserverCaptureMode(capture_mode);
}
RecordingBoundTestNetLog::RecordingBoundTestNetLog()