| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "remoting/base/vlog_net_log.h" |
| |
| #include <memory> |
| |
| #include "base/json/json_writer.h" |
| #include "base/logging.h" |
| #include "base/macros.h" |
| #include "base/threading/thread_restrictions.h" |
| #include "base/time/time.h" |
| #include "base/values.h" |
| #include "net/log/net_log_entry.h" |
| |
| namespace remoting { |
| |
| class VlogNetLog::Observer : public net::NetLog::ThreadSafeObserver { |
| public: |
| Observer(); |
| ~Observer() override; |
| |
| // NetLog::ThreadSafeObserver overrides: |
| void OnAddEntry(const net::NetLogEntry& entry) override; |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(Observer); |
| }; |
| |
| VlogNetLog::Observer::Observer() { |
| } |
| |
| VlogNetLog::Observer::~Observer() { |
| } |
| |
| void VlogNetLog::Observer::OnAddEntry(const net::NetLogEntry& entry) { |
| if (VLOG_IS_ON(4)) { |
| std::unique_ptr<base::Value> value(entry.ToValue()); |
| std::string json; |
| base::JSONWriter::Write(*value, &json); |
| VLOG(4) << json; |
| } |
| } |
| |
| VlogNetLog::VlogNetLog() |
| : observer_(new Observer()) { |
| DeprecatedAddObserver(observer_.get(), |
| net::NetLogCaptureMode::IncludeCookiesAndCredentials()); |
| } |
| |
| VlogNetLog::~VlogNetLog() { |
| DeprecatedRemoveObserver(observer_.get()); |
| } |
| |
| } // namespace remoting |