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

Unified Diff: components/cronet/android/cronet_url_request_context_adapter.cc

Issue 2751113004: Revert of [Cronet] Write effective experimental options to NetLog (Closed)
Patch Set: Created 3 years, 9 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
Index: components/cronet/android/cronet_url_request_context_adapter.cc
diff --git a/components/cronet/android/cronet_url_request_context_adapter.cc b/components/cronet/android/cronet_url_request_context_adapter.cc
index f195c0447bba811d74dfb0e15cde530b267456b5..dda9ce4852405a045032c2c610282049a4ab170b 100644
--- a/components/cronet/android/cronet_url_request_context_adapter.cc
+++ b/components/cronet/android/cronet_url_request_context_adapter.cc
@@ -58,6 +58,7 @@
#include "net/http/http_server_properties_manager.h"
#include "net/log/file_net_log_observer.h"
#include "net/log/net_log_util.h"
+#include "net/log/write_to_file_net_log_observer.h"
#include "net/nqe/external_estimate_provider.h"
#include "net/nqe/network_qualities_prefs_manager.h"
#include "net/proxy/proxy_config_service_android.h"
@@ -505,7 +506,7 @@
}
// Stop NetLog observer if there is one.
- StopNetLogOnNetworkThread();
+ StopNetLogHelper();
}
void CronetURLRequestContextAdapter::InitRequestContextOnMainThread(
@@ -609,7 +610,6 @@
DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread());
DCHECK(!is_context_initialized_);
DCHECK(proxy_config_service_);
-
// TODO(mmenke): Add method to have the builder enable SPDY.
net::URLRequestContextBuilder context_builder;
@@ -647,9 +647,6 @@
config->ConfigureURLRequestContextBuilder(&context_builder,
g_net_log.Get().net_log(),
GetFileThread()->task_runner());
-
- effective_experimental_options_ =
- std::move(config->effective_experimental_options);
// Set up pref file if storage path is specified.
if (!config->storage_path.empty()) {
@@ -882,17 +879,28 @@
const JavaParamRef<jobject>& jcaller,
const JavaParamRef<jstring>& jfile_name,
jboolean jlog_all) {
- base::FilePath file_path(
- base::android::ConvertJavaStringToUTF8(env, jfile_name));
+ base::AutoLock lock(write_to_file_observer_lock_);
+ // Do nothing if already logging to a file.
+ if (write_to_file_observer_)
+ return true;
+ std::string file_name =
+ base::android::ConvertJavaStringToUTF8(env, jfile_name);
+ base::FilePath file_path(file_name);
base::ScopedFILE file(base::OpenFile(file_path, "w"));
if (!file) {
LOG(ERROR) << "Failed to open NetLog file for writing.";
return false;
}
- PostTaskToNetworkThread(
- FROM_HERE,
- base::Bind(&CronetURLRequestContextAdapter::StartNetLogOnNetworkThread,
- base::Unretained(this), file_path, jlog_all == JNI_TRUE));
+
+ write_to_file_observer_.reset(new net::WriteToFileNetLogObserver());
+ if (jlog_all == JNI_TRUE) {
+ write_to_file_observer_->set_capture_mode(
+ net::NetLogCaptureMode::IncludeSocketBytes());
+ }
+ write_to_file_observer_->StartObserving(
+ g_net_log.Get().net_log(), std::move(file),
+ /*constants=*/nullptr, /*url_request_context=*/nullptr);
+
return true;
}
@@ -914,11 +922,7 @@
void CronetURLRequestContextAdapter::StopNetLog(
JNIEnv* env,
const JavaParamRef<jobject>& jcaller) {
- DCHECK(!GetNetworkTaskRunner()->BelongsToCurrentThread());
- PostTaskToNetworkThread(
- FROM_HERE,
- base::Bind(&CronetURLRequestContextAdapter::StopNetLogOnNetworkThread,
- base::Unretained(this)));
+ StopNetLogHelper();
}
void CronetURLRequestContextAdapter::GetCertVerifierData(
@@ -1005,25 +1009,6 @@
(timestamp - base::TimeTicks::UnixEpoch()).InMilliseconds(), source);
}
-void CronetURLRequestContextAdapter::StartNetLogOnNetworkThread(
- const base::FilePath& file_path,
- bool include_socket_bytes) {
- DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread());
-
- // Do nothing if already logging to a file.
- if (net_log_file_observer_)
- return;
- net_log_file_observer_ = net::FileNetLogObserver::CreateUnbounded(
- GetFileThread()->task_runner(), file_path, /*constants=*/nullptr);
- CreateNetLogEntriesForActiveObjects({context_.get()},
- net_log_file_observer_.get());
- net::NetLogCaptureMode capture_mode =
- include_socket_bytes ? net::NetLogCaptureMode::IncludeSocketBytes()
- : net::NetLogCaptureMode::Default();
- net_log_file_observer_->StartObserving(g_net_log.Get().net_log(),
- capture_mode);
-}
-
void CronetURLRequestContextAdapter::StartNetLogToBoundedFileOnNetworkThread(
const std::string& dir_path,
bool include_socket_bytes,
@@ -1031,37 +1016,34 @@
DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread());
// Do nothing if already logging to a directory.
- if (net_log_file_observer_)
+ if (bounded_file_observer_)
return;
// Filepath for NetLog files must exist and be writable.
base::FilePath file_path(dir_path);
DCHECK(base::PathIsWritable(file_path));
- net_log_file_observer_ = net::FileNetLogObserver::CreateBounded(
+ bounded_file_observer_ = net::FileNetLogObserver::CreateBounded(
GetFileThread()->task_runner(), file_path, size, kNumNetLogEventFiles,
/*constants=*/nullptr);
CreateNetLogEntriesForActiveObjects({context_.get()},
- net_log_file_observer_.get());
+ bounded_file_observer_.get());
net::NetLogCaptureMode capture_mode =
include_socket_bytes ? net::NetLogCaptureMode::IncludeSocketBytes()
: net::NetLogCaptureMode::Default();
- net_log_file_observer_->StartObserving(g_net_log.Get().net_log(),
+ bounded_file_observer_->StartObserving(g_net_log.Get().net_log(),
capture_mode);
}
-void CronetURLRequestContextAdapter::StopNetLogOnNetworkThread() {
+void CronetURLRequestContextAdapter::StopBoundedFileNetLogOnNetworkThread() {
DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread());
-
- if (!net_log_file_observer_)
- return;
- net_log_file_observer_->StopObserving(
- GetNetLogInfo(),
+ bounded_file_observer_->StopObserving(
+ net::GetNetInfo(context_.get(), net::NET_INFO_ALL_SOURCES),
base::Bind(&CronetURLRequestContextAdapter::StopNetLogCompleted,
base::Unretained(this)));
- net_log_file_observer_.reset();
+ bounded_file_observer_.reset();
}
void CronetURLRequestContextAdapter::StopNetLogCompleted() {
@@ -1069,15 +1051,18 @@
base::android::AttachCurrentThread(), jcronet_url_request_context_.obj());
}
-std::unique_ptr<base::DictionaryValue>
-CronetURLRequestContextAdapter::GetNetLogInfo() const {
- std::unique_ptr<base::DictionaryValue> net_info =
- net::GetNetInfo(context_.get(), net::NET_INFO_ALL_SOURCES);
- if (effective_experimental_options_) {
- net_info->Set("cronetExperimentalParams",
- effective_experimental_options_->CreateDeepCopy());
- }
- return net_info;
+void CronetURLRequestContextAdapter::StopNetLogHelper() {
+ base::AutoLock lock(write_to_file_observer_lock_);
+ DCHECK(!(write_to_file_observer_ && bounded_file_observer_));
+ if (write_to_file_observer_) {
+ write_to_file_observer_->StopObserving(/*url_request_context=*/nullptr);
+ write_to_file_observer_.reset();
+ } else if (bounded_file_observer_) {
+ PostTaskToNetworkThread(FROM_HERE,
+ base::Bind(&CronetURLRequestContextAdapter::
+ StopBoundedFileNetLogOnNetworkThread,
+ base::Unretained(this)));
+ }
}
// Create a URLRequestContextConfig from the given parameters.

Powered by Google App Engine
This is Rietveld 408576698