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

Side by Side Diff: net/log/net_log.cc

Issue 1122483004: Remove NetLog::GetCaptureMode() and NetLogCaptureMode::None() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mmenke_refactor
Patch Set: Created 5 years, 7 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/log/net_log.h" 5 #include "net/log/net_log.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/debug/alias.h" 8 #include "base/debug/alias.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 } 198 }
199 199
200 NetLog* NetLog::ThreadSafeObserver::net_log() const { 200 NetLog* NetLog::ThreadSafeObserver::net_log() const {
201 return net_log_; 201 return net_log_;
202 } 202 }
203 203
204 void NetLog::ThreadSafeObserver::OnAddEntryData(const EntryData& entry_data) { 204 void NetLog::ThreadSafeObserver::OnAddEntryData(const EntryData& entry_data) {
205 OnAddEntry(Entry(&entry_data, capture_mode())); 205 OnAddEntry(Entry(&entry_data, capture_mode()));
206 } 206 }
207 207
208 NetLog::NetLog() 208 NetLog::NetLog() : last_id_(0), has_observers_(0) {
209 : last_id_(0),
210 effective_capture_mode_int32_(
211 NetLogCaptureMode::None().ToInternalValue()) {
212 } 209 }
213 210
214 NetLog::~NetLog() { 211 NetLog::~NetLog() {
215 } 212 }
216 213
217 void NetLog::AddGlobalEntry(EventType type) { 214 void NetLog::AddGlobalEntry(EventType type) {
218 AddEntry(type, Source(NetLog::SOURCE_NONE, NextID()), NetLog::PHASE_NONE, 215 AddEntry(type, Source(NetLog::SOURCE_NONE, NextID()), NetLog::PHASE_NONE,
219 NULL); 216 NULL);
220 } 217 }
221 218
222 void NetLog::AddGlobalEntry( 219 void NetLog::AddGlobalEntry(
223 EventType type, 220 EventType type,
224 const NetLog::ParametersCallback& parameters_callback) { 221 const NetLog::ParametersCallback& parameters_callback) {
225 AddEntry(type, Source(NetLog::SOURCE_NONE, NextID()), NetLog::PHASE_NONE, 222 AddEntry(type, Source(NetLog::SOURCE_NONE, NextID()), NetLog::PHASE_NONE,
226 &parameters_callback); 223 &parameters_callback);
227 } 224 }
228 225
229 uint32 NetLog::NextID() { 226 uint32 NetLog::NextID() {
230 return base::subtle::NoBarrier_AtomicIncrement(&last_id_, 1); 227 return base::subtle::NoBarrier_AtomicIncrement(&last_id_, 1);
231 } 228 }
232 229
233 NetLogCaptureMode NetLog::GetCaptureMode() const { 230 bool NetLog::HasObservers() const {
234 base::subtle::Atomic32 capture_mode = 231 base::subtle::Atomic32 has_observers =
235 base::subtle::NoBarrier_Load(&effective_capture_mode_int32_); 232 base::subtle::NoBarrier_Load(&has_observers_);
236 return NetLogCaptureMode::FromInternalValue(capture_mode); 233 return has_observers;
237 } 234 }
238 235
239 void NetLog::DeprecatedAddObserver(NetLog::ThreadSafeObserver* observer, 236 void NetLog::DeprecatedAddObserver(NetLog::ThreadSafeObserver* observer,
240 NetLogCaptureMode capture_mode) { 237 NetLogCaptureMode capture_mode) {
241 DCHECK(capture_mode.enabled()); 238 DCHECK(capture_mode.enabled());
242 239
243 base::AutoLock lock(lock_); 240 base::AutoLock lock(lock_);
244 241
245 DCHECK(!observer->net_log_); 242 DCHECK(!observer->net_log_);
246 DCHECK(!observer->capture_mode_.enabled()); 243 DCHECK(!observer->capture_mode_.enabled());
247 observers_.AddObserver(observer); 244 observers_.AddObserver(observer);
248 observer->net_log_ = this; 245 observer->net_log_ = this;
249 observer->capture_mode_ = capture_mode; 246 observer->capture_mode_ = capture_mode;
250 UpdateCaptureMode(); 247 UpdateHasObservers();
251 } 248 }
252 249
253 void NetLog::SetObserverCaptureMode(NetLog::ThreadSafeObserver* observer, 250 void NetLog::SetObserverCaptureMode(NetLog::ThreadSafeObserver* observer,
254 NetLogCaptureMode capture_mode) { 251 NetLogCaptureMode capture_mode) {
255 DCHECK(capture_mode.enabled()); 252 DCHECK(capture_mode.enabled());
256 base::AutoLock lock(lock_); 253 base::AutoLock lock(lock_);
257 254
258 DCHECK(observers_.HasObserver(observer)); 255 DCHECK(observers_.HasObserver(observer));
259 DCHECK_EQ(this, observer->net_log_); 256 DCHECK_EQ(this, observer->net_log_);
260 DCHECK(observer->capture_mode_.enabled()); 257 DCHECK(observer->capture_mode_.enabled());
261 observer->capture_mode_ = capture_mode; 258 observer->capture_mode_ = capture_mode;
mmenke 2015/05/05 19:45:15 Do we ever explicitly disallow observers from watc
eroman 2015/05/05 22:54:37 I updated the CL and just removed NetLogCaptureMod
262 UpdateCaptureMode();
263 } 259 }
264 260
265 void NetLog::DeprecatedRemoveObserver(NetLog::ThreadSafeObserver* observer) { 261 void NetLog::DeprecatedRemoveObserver(NetLog::ThreadSafeObserver* observer) {
266 base::AutoLock lock(lock_); 262 base::AutoLock lock(lock_);
267 263
268 DCHECK(observers_.HasObserver(observer)); 264 DCHECK(observers_.HasObserver(observer));
269 DCHECK_EQ(this, observer->net_log_); 265 DCHECK_EQ(this, observer->net_log_);
270 DCHECK(observer->capture_mode_.enabled()); 266 DCHECK(observer->capture_mode_.enabled());
271 observers_.RemoveObserver(observer); 267 observers_.RemoveObserver(observer);
272 observer->net_log_ = NULL; 268 observer->net_log_ = NULL;
273 observer->capture_mode_ = NetLogCaptureMode(); 269 observer->capture_mode_ = NetLogCaptureMode();
274 UpdateCaptureMode(); 270 UpdateHasObservers();
275 } 271 }
276 272
277 void NetLog::UpdateCaptureMode() { 273 void NetLog::UpdateHasObservers() {
278 lock_.AssertAcquired(); 274 lock_.AssertAcquired();
279 275 base::subtle::NoBarrier_Store(
280 // Accumulate the capture mode of all the observers to find the maximum level. 276 &has_observers_, static_cast<int>(observers_.might_have_observers()));
281 NetLogCaptureMode new_capture_mode = NetLogCaptureMode::None();
282 ObserverListBase<ThreadSafeObserver>::Iterator it(&observers_);
283 ThreadSafeObserver* observer;
284 while ((observer = it.GetNext()) != NULL) {
285 new_capture_mode =
286 NetLogCaptureMode::Max(new_capture_mode, observer->capture_mode());
287 }
288 base::subtle::NoBarrier_Store(&effective_capture_mode_int32_,
289 new_capture_mode.ToInternalValue());
290 } 277 }
291 278
292 // static 279 // static
293 std::string NetLog::TickCountToString(const base::TimeTicks& time) { 280 std::string NetLog::TickCountToString(const base::TimeTicks& time) {
294 int64 delta_time = (time - base::TimeTicks()).InMilliseconds(); 281 int64 delta_time = (time - base::TimeTicks()).InMilliseconds();
295 return base::Int64ToString(delta_time); 282 return base::Int64ToString(delta_time);
296 } 283 }
297 284
298 // static 285 // static
299 const char* NetLog::EventTypeToString(EventType event) { 286 const char* NetLog::EventTypeToString(EventType event) {
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 NetLog::ParametersCallback NetLog::StringCallback(const char* name, 370 NetLog::ParametersCallback NetLog::StringCallback(const char* name,
384 const base::string16* value) { 371 const base::string16* value) {
385 DCHECK(value); 372 DCHECK(value);
386 return base::Bind(&NetLogString16Callback, name, value); 373 return base::Bind(&NetLogString16Callback, name, value);
387 } 374 }
388 375
389 void NetLog::AddEntry(EventType type, 376 void NetLog::AddEntry(EventType type,
390 const Source& source, 377 const Source& source,
391 EventPhase phase, 378 EventPhase phase,
392 const NetLog::ParametersCallback* parameters_callback) { 379 const NetLog::ParametersCallback* parameters_callback) {
393 if (!GetCaptureMode().enabled()) 380 if (!HasObservers())
394 return; 381 return;
395 EntryData entry_data(type, source, phase, base::TimeTicks::Now(), 382 EntryData entry_data(type, source, phase, base::TimeTicks::Now(),
396 parameters_callback); 383 parameters_callback);
397 384
398 // Notify all of the log observers. 385 // Notify all of the log observers.
399 base::AutoLock lock(lock_); 386 base::AutoLock lock(lock_);
400 FOR_EACH_OBSERVER(ThreadSafeObserver, observers_, OnAddEntryData(entry_data)); 387 FOR_EACH_OBSERVER(ThreadSafeObserver, observers_, OnAddEntryData(entry_data));
401 } 388 }
402 389
403 BoundNetLog::~BoundNetLog() { 390 BoundNetLog::~BoundNetLog() {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 EndEvent(event_type, NetLog::IntegerCallback("net_error", net_error)); 460 EndEvent(event_type, NetLog::IntegerCallback("net_error", net_error));
474 } 461 }
475 } 462 }
476 463
477 void BoundNetLog::AddByteTransferEvent(NetLog::EventType event_type, 464 void BoundNetLog::AddByteTransferEvent(NetLog::EventType event_type,
478 int byte_count, 465 int byte_count,
479 const char* bytes) const { 466 const char* bytes) const {
480 AddEvent(event_type, base::Bind(BytesTransferredCallback, byte_count, bytes)); 467 AddEvent(event_type, base::Bind(BytesTransferredCallback, byte_count, bytes));
481 } 468 }
482 469
483 NetLogCaptureMode BoundNetLog::GetCaptureMode() const { 470 bool BoundNetLog::HasObservers() const {
484 CrashIfInvalid(); 471 CrashIfInvalid();
485 472 return net_log_ && net_log_->HasObservers();
486 if (net_log_)
487 return net_log_->GetCaptureMode();
488 return NetLogCaptureMode();
489 } 473 }
490 474
491 // static 475 // static
492 BoundNetLog BoundNetLog::Make(NetLog* net_log, NetLog::SourceType source_type) { 476 BoundNetLog BoundNetLog::Make(NetLog* net_log, NetLog::SourceType source_type) {
493 if (!net_log) 477 if (!net_log)
494 return BoundNetLog(); 478 return BoundNetLog();
495 479
496 NetLog::Source source(source_type, net_log->NextID()); 480 NetLog::Source source(source_type, net_log->NextID());
497 return BoundNetLog(source, net_log); 481 return BoundNetLog(source, net_log);
498 } 482 }
499 483
500 void BoundNetLog::CrashIfInvalid() const { 484 void BoundNetLog::CrashIfInvalid() const {
501 Liveness liveness = liveness_; 485 Liveness liveness = liveness_;
502 486
503 if (liveness == ALIVE) 487 if (liveness == ALIVE)
504 return; 488 return;
505 489
506 base::debug::Alias(&liveness); 490 base::debug::Alias(&liveness);
507 CHECK_EQ(ALIVE, liveness); 491 CHECK_EQ(ALIVE, liveness);
508 } 492 }
509 493
510 } // namespace net 494 } // namespace net
OLDNEW
« net/log/net_log.h ('K') | « net/log/net_log.h ('k') | net/log/net_log_capture_mode.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698