Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(554)

Unified Diff: ios/crnet/crnet_environment.mm

Issue 1158033010: [CrNet] Properly setup net log. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove unneeded get() Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ios/crnet/crnet_environment.h ('k') | ios/crnet/crnet_net_log.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/crnet/crnet_environment.mm
diff --git a/ios/crnet/crnet_environment.mm b/ios/crnet/crnet_environment.mm
index d216159005e32badc7ec32531358694e6ba0f0c1..e138de062b522e56e6268512dea910e3237c92e2 100644
--- a/ios/crnet/crnet_environment.mm
+++ b/ios/crnet/crnet_environment.mm
@@ -8,6 +8,9 @@
#include "base/at_exit.h"
#include "base/command_line.h"
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "base/files/scoped_file.h"
#include "base/i18n/icu_util.h"
#include "base/json/json_writer.h"
#include "base/mac/bind_objc_block.h"
@@ -32,6 +35,8 @@
#include "net/http/http_server_properties_impl.h"
#include "net/http/http_stream_factory.h"
#include "net/http/http_util.h"
+#include "net/log/net_log.h"
+#include "net/log/write_to_file_net_log_observer.h"
#include "net/proxy/proxy_service.h"
#include "net/socket/next_proto.h"
#include "net/ssl/channel_id_service.h"
@@ -154,11 +159,6 @@ void CrNetEnvironment::Initialize() {
void CrNetEnvironment::StartNetLog(base::FilePath::StringType file_name,
bool log_bytes) {
DCHECK(file_name.length());
- base::AutoLock lock(net_log_lock_);
- if (net_log_started_) {
- return;
- }
- net_log_started_ = true;
PostToFileUserBlockingThread(FROM_HERE,
base::Bind(&CrNetEnvironment::StartNetLogInternal,
base::Unretained(this), file_name, log_bytes));
@@ -169,21 +169,31 @@ void CrNetEnvironment::StartNetLogInternal(
DCHECK(base::MessageLoop::current() ==
file_user_blocking_thread_->message_loop());
DCHECK(file_name.length());
- if (!net_log_.get()) {
- net_log_.reset(new CrNetNetLog());
- main_context_.get()->set_net_log(net_log_.get());
- }
- CrNetNetLog::Mode mode = log_bytes ? CrNetNetLog::LOG_ALL_BYTES :
- CrNetNetLog::LOG_STRIP_PRIVATE_DATA;
- net_log_->Start(base::FilePath(file_name), mode);
+ DCHECK(net_log_);
+
+ if (net_log_observer_)
+ return;
+
+ base::FilePath temp_dir;
+ if (!base::GetTempDir(&temp_dir))
+ return;
+
+ base::FilePath full_path = temp_dir.Append(file_name);
+ base::ScopedFILE file(base::OpenFile(full_path, "w"));
+ if (!file)
+ return;
+
+ net::NetLogCaptureMode capture_mode = log_bytes ?
+ net::NetLogCaptureMode::IncludeSocketBytes() :
+ net::NetLogCaptureMode::Default();
+
+ net_log_observer_.reset(new net::WriteToFileNetLogObserver());
+ net_log_observer_->set_capture_mode(capture_mode);
+ net_log_observer_->StartObserving(net_log_.get(), file.Pass(), nullptr,
+ nullptr);
}
void CrNetEnvironment::StopNetLog() {
- base::AutoLock lock(net_log_lock_);
- if (!net_log_started_) {
- return;
- }
- net_log_started_ = false;
PostToFileUserBlockingThread(FROM_HERE,
base::Bind(&CrNetEnvironment::StopNetLogInternal,
base::Unretained(this)));
@@ -192,8 +202,9 @@ void CrNetEnvironment::StopNetLog() {
void CrNetEnvironment::StopNetLogInternal() {
DCHECK(base::MessageLoop::current() ==
file_user_blocking_thread_->message_loop());
- if (net_log_.get()) {
- net_log_->Stop();
+ if (net_log_observer_) {
+ net_log_observer_->StopObserving(nullptr);
+ net_log_observer_.reset();
}
}
@@ -270,7 +281,6 @@ void CrNetEnvironment::Install() {
main_context_getter_ = new CrNetURLRequestContextGetter(
main_context_.get(), network_io_thread_->message_loop_proxy());
SetRequestFilterBlock(nil);
- net_log_started_ = false;
}
void CrNetEnvironment::InstallIntoSessionConfiguration(
@@ -423,6 +433,9 @@ void CrNetEnvironment::InitializeOnNetworkThread() {
job_factory->SetProtocolHandler(
"file", new net::FileProtocolHandler(file_thread_->message_loop_proxy()));
main_context_->set_job_factory(job_factory);
+
+ net_log_.reset(new net::NetLog());
+ main_context_->set_net_log(net_log_.get());
}
std::string CrNetEnvironment::user_agent() {
« no previous file with comments | « ios/crnet/crnet_environment.h ('k') | ios/crnet/crnet_net_log.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698