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

Side by Side Diff: net/http/http_server_properties_manager.cc

Issue 2944043002: Add NetLog events for HttpServerPropertiesManager (Closed)
Patch Set: fix compile Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/http/http_server_properties_manager.h" 5 #include "net/http/http_server_properties_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 const char kUsedQuicKey[] = "used_quic"; 58 const char kUsedQuicKey[] = "used_quic";
59 const char kAddressKey[] = "address"; 59 const char kAddressKey[] = "address";
60 const char kAlternativeServiceKey[] = "alternative_service"; 60 const char kAlternativeServiceKey[] = "alternative_service";
61 const char kProtocolKey[] = "protocol_str"; 61 const char kProtocolKey[] = "protocol_str";
62 const char kHostKey[] = "host"; 62 const char kHostKey[] = "host";
63 const char kPortKey[] = "port"; 63 const char kPortKey[] = "port";
64 const char kExpirationKey[] = "expiration"; 64 const char kExpirationKey[] = "expiration";
65 const char kNetworkStatsKey[] = "network_stats"; 65 const char kNetworkStatsKey[] = "network_stats";
66 const char kSrttKey[] = "srtt"; 66 const char kSrttKey[] = "srtt";
67 67
68 std::unique_ptr<base::Value> NetLogCallback(
69 const base::DictionaryValue& http_server_properties_dict,
70 NetLogCaptureMode capture_mode) {
71 return base::WrapUnique<base::DictionaryValue>(
72 http_server_properties_dict.DeepCopy());
73 }
74
68 } // namespace 75 } // namespace
69 76
70 //////////////////////////////////////////////////////////////////////////////// 77 ////////////////////////////////////////////////////////////////////////////////
71 // HttpServerPropertiesManager 78 // HttpServerPropertiesManager
72 79
73 HttpServerPropertiesManager::PrefDelegate::~PrefDelegate() {} 80 HttpServerPropertiesManager::PrefDelegate::~PrefDelegate() {}
74 81
75 HttpServerPropertiesManager::HttpServerPropertiesManager( 82 HttpServerPropertiesManager::HttpServerPropertiesManager(
76 PrefDelegate* pref_delegate, 83 PrefDelegate* pref_delegate,
77 scoped_refptr<base::SingleThreadTaskRunner> pref_task_runner, 84 scoped_refptr<base::SingleThreadTaskRunner> pref_task_runner,
78 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner) 85 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner,
86 NetLog* net_log)
79 : pref_task_runner_(std::move(pref_task_runner)), 87 : pref_task_runner_(std::move(pref_task_runner)),
80 pref_delegate_(pref_delegate), 88 pref_delegate_(pref_delegate),
81 setting_prefs_(false), 89 setting_prefs_(false),
82 is_initialized_(false), 90 is_initialized_(false),
83 network_task_runner_(std::move(network_task_runner)) { 91 network_task_runner_(std::move(network_task_runner)),
92 net_log_(
93 NetLogWithSource::Make(net_log,
94 NetLogSourceType::HTTP_SERVER_PROPERTIES)) {
84 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence()); 95 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence());
85 DCHECK(pref_delegate_); 96 DCHECK(pref_delegate_);
86 pref_weak_ptr_factory_.reset( 97 pref_weak_ptr_factory_.reset(
87 new base::WeakPtrFactory<HttpServerPropertiesManager>(this)); 98 new base::WeakPtrFactory<HttpServerPropertiesManager>(this));
88 pref_weak_ptr_ = pref_weak_ptr_factory_->GetWeakPtr(); 99 pref_weak_ptr_ = pref_weak_ptr_factory_->GetWeakPtr();
89 pref_cache_update_timer_.reset(new base::OneShotTimer); 100 pref_cache_update_timer_.reset(new base::OneShotTimer);
90 pref_cache_update_timer_->SetTaskRunner(pref_task_runner_); 101 pref_cache_update_timer_->SetTaskRunner(pref_task_runner_);
91 pref_delegate_->StartListeningForUpdates( 102 pref_delegate_->StartListeningForUpdates(
92 base::Bind(&HttpServerPropertiesManager::OnHttpServerPropertiesChanged, 103 base::Bind(&HttpServerPropertiesManager::OnHttpServerPropertiesChanged,
93 base::Unretained(this))); 104 base::Unretained(this)));
94 } 105 }
95 106
96 HttpServerPropertiesManager::~HttpServerPropertiesManager() { 107 HttpServerPropertiesManager::~HttpServerPropertiesManager() {
97 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); 108 DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
98 network_weak_ptr_factory_.reset(); 109 network_weak_ptr_factory_.reset();
99 } 110 }
100 111
101 void HttpServerPropertiesManager::InitializeOnNetworkSequence() { 112 void HttpServerPropertiesManager::InitializeOnNetworkSequence() {
102 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); 113 DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
114 net_log_.BeginEvent(NetLogEventType::HTTP_SERVER_PROPERTIES_INITIALIZATION);
103 115
104 network_weak_ptr_factory_.reset( 116 network_weak_ptr_factory_.reset(
105 new base::WeakPtrFactory<HttpServerPropertiesManager>(this)); 117 new base::WeakPtrFactory<HttpServerPropertiesManager>(this));
106 http_server_properties_impl_.reset(new HttpServerPropertiesImpl()); 118 http_server_properties_impl_.reset(new HttpServerPropertiesImpl());
107 119
108 network_prefs_update_timer_.reset(new base::OneShotTimer); 120 network_prefs_update_timer_.reset(new base::OneShotTimer);
109 network_prefs_update_timer_->SetTaskRunner(network_task_runner_); 121 network_prefs_update_timer_->SetTaskRunner(network_task_runner_);
110 // UpdateCacheFromPrefsOnPrefSequence() will post a task to network thread to 122 // UpdateCacheFromPrefsOnPrefSequence() will post a task to network thread to
111 // update server properties. SetInitialized() will be run after that task is 123 // update server properties. SetInitialized() will be run after that task is
112 // run as |network_task_runner_| is single threaded. 124 // run as |network_task_runner_| is single threaded.
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 // The preferences can only be read on the pref thread. 420 // The preferences can only be read on the pref thread.
409 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence()); 421 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence());
410 422
411 if (!pref_delegate_->HasServerProperties()) 423 if (!pref_delegate_->HasServerProperties())
412 return; 424 return;
413 425
414 bool detected_corrupted_prefs = false; 426 bool detected_corrupted_prefs = false;
415 const base::DictionaryValue& http_server_properties_dict = 427 const base::DictionaryValue& http_server_properties_dict =
416 pref_delegate_->GetServerProperties(); 428 pref_delegate_->GetServerProperties();
417 429
430 net_log_.AddEvent(NetLogEventType::HTTP_SERVER_PROPERTIES_UPDATE_CACHE,
431 base::Bind(&NetLogCallback, http_server_properties_dict));
418 int version = kMissingVersion; 432 int version = kMissingVersion;
419 if (!http_server_properties_dict.GetIntegerWithoutPathExpansion(kVersionKey, 433 if (!http_server_properties_dict.GetIntegerWithoutPathExpansion(kVersionKey,
420 &version)) { 434 &version)) {
421 DVLOG(1) << "Missing version. Clearing all properties."; 435 DVLOG(1) << "Missing version. Clearing all properties.";
422 return; 436 return;
423 } 437 }
424 438
425 const base::DictionaryValue* servers_dict = nullptr; 439 const base::DictionaryValue* servers_dict = nullptr;
426 const base::ListValue* servers_list = nullptr; 440 const base::ListValue* servers_list = nullptr;
427 if (version < 4) { 441 if (version < 4) {
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after
1045 1059
1046 SaveSupportsQuicToPrefs(last_quic_address, &http_server_properties_dict); 1060 SaveSupportsQuicToPrefs(last_quic_address, &http_server_properties_dict);
1047 1061
1048 SaveQuicServerInfoMapToServerPrefs(quic_server_info_map, 1062 SaveQuicServerInfoMapToServerPrefs(quic_server_info_map,
1049 &http_server_properties_dict); 1063 &http_server_properties_dict);
1050 1064
1051 setting_prefs_ = true; 1065 setting_prefs_ = true;
1052 pref_delegate_->SetServerProperties(http_server_properties_dict); 1066 pref_delegate_->SetServerProperties(http_server_properties_dict);
1053 setting_prefs_ = false; 1067 setting_prefs_ = false;
1054 1068
1069 net_log_.AddEvent(NetLogEventType::HTTP_SERVER_PROPERTIES_UPDATE_PREFS,
1070 base::Bind(&NetLogCallback, http_server_properties_dict));
Zhongyi Shi 2017/06/20 20:00:53 I am not sure whether it would be a good idea to l
xunjieli 2017/06/20 20:19:08 Are you concerned about the performance cost? I am
Zhongyi Shi 2017/06/20 21:38:48 Acknowledged. Discussed offline, since the server
1055 // Note that |completion| will be fired after we have written everything to 1071 // Note that |completion| will be fired after we have written everything to
1056 // the Preferences, but likely before these changes are serialized to disk. 1072 // the Preferences, but likely before these changes are serialized to disk.
1057 // This is not a problem though, as JSONPrefStore guarantees that this will 1073 // This is not a problem though, as JSONPrefStore guarantees that this will
1058 // happen, pretty soon, and even in the case we shut down immediately. 1074 // happen, pretty soon, and even in the case we shut down immediately.
1059 if (!completion.is_null()) 1075 if (!completion.is_null())
1060 completion.Run(); 1076 completion.Run();
1061 } 1077 }
1062 1078
1063 void HttpServerPropertiesManager::SaveAlternativeServiceToServerPrefs( 1079 void HttpServerPropertiesManager::SaveAlternativeServiceToServerPrefs(
1064 const AlternativeServiceInfoVector* alternative_service_info_vector, 1080 const AlternativeServiceInfoVector* alternative_service_info_vector,
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 1162
1147 void HttpServerPropertiesManager::OnHttpServerPropertiesChanged() { 1163 void HttpServerPropertiesManager::OnHttpServerPropertiesChanged() {
1148 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence()); 1164 DCHECK(pref_task_runner_->RunsTasksInCurrentSequence());
1149 if (!setting_prefs_) 1165 if (!setting_prefs_)
1150 ScheduleUpdateCacheOnPrefThread(); 1166 ScheduleUpdateCacheOnPrefThread();
1151 } 1167 }
1152 1168
1153 void HttpServerPropertiesManager::SetInitialized() { 1169 void HttpServerPropertiesManager::SetInitialized() {
1154 DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); 1170 DCHECK(network_task_runner_->RunsTasksInCurrentSequence());
1155 is_initialized_ = true; 1171 is_initialized_ = true;
1172 net_log_.EndEvent(NetLogEventType::HTTP_SERVER_PROPERTIES_INITIALIZATION);
1156 } 1173 }
1157 1174
1158 } // namespace net 1175 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_server_properties_manager.h ('k') | net/http/http_server_properties_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698