OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * Copyright (C) 2012 Intel Inc. All rights reserved. | 3 * Copyright (C) 2012 Intel Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 static const size_t defaultResourceTimingBufferSize = 150; | 51 static const size_t defaultResourceTimingBufferSize = 150; |
52 static const size_t defaultFrameTimingBufferSize = 150; | 52 static const size_t defaultFrameTimingBufferSize = 150; |
53 | 53 |
54 PerformanceBase::PerformanceBase(double timeOrigin) | 54 PerformanceBase::PerformanceBase(double timeOrigin) |
55 : m_frameTimingBufferSize(defaultFrameTimingBufferSize) | 55 : m_frameTimingBufferSize(defaultFrameTimingBufferSize) |
56 , m_resourceTimingBufferSize(defaultResourceTimingBufferSize) | 56 , m_resourceTimingBufferSize(defaultResourceTimingBufferSize) |
57 , m_timeOrigin(timeOrigin) | 57 , m_timeOrigin(timeOrigin) |
58 , m_userTiming(nullptr) | 58 , m_userTiming(nullptr) |
59 , m_observerFilterOptions(PerformanceEntry::Invalid) | 59 , m_observerFilterOptions(PerformanceEntry::Invalid) |
60 , m_deliverObservationsTimer(this, &PerformanceBase::deliverObservationsTime
rFired) | 60 , m_deliverObservationsTimer(this, &PerformanceBase::deliverObservationsTime
rFired) |
| 61 , m_inspectorInstrumentationEnabled(false) |
61 { | 62 { |
62 } | 63 } |
63 | 64 |
64 PerformanceBase::~PerformanceBase() | 65 PerformanceBase::~PerformanceBase() |
65 { | 66 { |
66 } | 67 } |
67 | 68 |
68 const AtomicString& PerformanceBase::interfaceName() const | 69 const AtomicString& PerformanceBase::interfaceName() const |
69 { | 70 { |
70 return EventTargetNames::Performance; | 71 return EventTargetNames::Performance; |
71 } | 72 } |
72 | 73 |
73 PerformanceTiming* PerformanceBase::timing() const | 74 PerformanceTiming* PerformanceBase::timing() const |
74 { | 75 { |
75 return nullptr; | 76 return nullptr; |
76 } | 77 } |
77 | 78 |
| 79 void PerformanceBase::enableInspectorInstrumentation() const |
| 80 { |
| 81 } |
| 82 |
78 PerformanceEntryVector PerformanceBase::getEntries() const | 83 PerformanceEntryVector PerformanceBase::getEntries() const |
79 { | 84 { |
80 PerformanceEntryVector entries; | 85 PerformanceEntryVector entries; |
81 | 86 |
82 entries.appendVector(m_resourceTimingBuffer); | 87 entries.appendVector(m_resourceTimingBuffer); |
83 entries.appendVector(m_frameTimingBuffer); | 88 entries.appendVector(m_frameTimingBuffer); |
84 | 89 |
85 if (m_userTiming) { | 90 if (m_userTiming) { |
86 entries.appendVector(m_userTiming->getMarks()); | 91 entries.appendVector(m_userTiming->getMarks()); |
87 entries.appendVector(m_userTiming->getMeasures()); | 92 entries.appendVector(m_userTiming->getMeasures()); |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 { | 354 { |
350 if (!m_userTiming) | 355 if (!m_userTiming) |
351 m_userTiming = UserTiming::create(*this); | 356 m_userTiming = UserTiming::create(*this); |
352 m_userTiming->clearMeasures(measureName); | 357 m_userTiming->clearMeasures(measureName); |
353 } | 358 } |
354 | 359 |
355 void PerformanceBase::registerPerformanceObserver(PerformanceObserver& observer) | 360 void PerformanceBase::registerPerformanceObserver(PerformanceObserver& observer) |
356 { | 361 { |
357 m_observerFilterOptions |= observer.filterOptions(); | 362 m_observerFilterOptions |= observer.filterOptions(); |
358 m_observers.add(&observer); | 363 m_observers.add(&observer); |
| 364 |
| 365 // If this is the first long task observer then enable tracking of LongTaskT
iming. |
| 366 if (!m_inspectorInstrumentationEnabled |
| 367 && hasObserverFor(PerformanceEntry::Mark)) { // PerformanceEntry::LongTa
sk |
| 368 fprintf(stderr, "\n^^^On observe(): enableInspectorInstrumentation"); |
| 369 enableInspectorInstrumentation(); |
| 370 m_inspectorInstrumentationEnabled = true; |
| 371 } else { |
| 372 fprintf(stderr, "\n^^^On observe(): NOT enableInspectorInstrumentation")
; |
| 373 } |
359 } | 374 } |
360 | 375 |
361 void PerformanceBase::unregisterPerformanceObserver(PerformanceObserver& oldObse
rver) | 376 void PerformanceBase::unregisterPerformanceObserver(PerformanceObserver& oldObse
rver) |
362 { | 377 { |
363 ASSERT(isMainThread()); | 378 ASSERT(isMainThread()); |
364 // Deliver any pending observations on this observer before unregistering. | 379 // Deliver any pending observations on this observer before unregistering. |
365 if (m_activeObservers.contains(&oldObserver) && !oldObserver.shouldBeSuspend
ed()) { | 380 if (m_activeObservers.contains(&oldObserver) && !oldObserver.shouldBeSuspend
ed()) { |
366 oldObserver.deliver(); | 381 oldObserver.deliver(); |
367 m_activeObservers.remove(&oldObserver); | 382 m_activeObservers.remove(&oldObserver); |
368 } | 383 } |
369 m_observers.remove(&oldObserver); | 384 m_observers.remove(&oldObserver); |
370 updatePerformanceObserverFilterOptions(); | 385 updatePerformanceObserverFilterOptions(); |
| 386 |
| 387 if (m_inspectorInstrumentationEnabled |
| 388 && !hasObserverFor(PerformanceEntry::Mark)) { // PerformanceEntry::Long
Task |
| 389 //disableInspectorInstrumentation(); |
| 390 } |
371 } | 391 } |
372 | 392 |
373 void PerformanceBase::updatePerformanceObserverFilterOptions() | 393 void PerformanceBase::updatePerformanceObserverFilterOptions() |
374 { | 394 { |
375 m_observerFilterOptions = PerformanceEntry::Invalid; | 395 m_observerFilterOptions = PerformanceEntry::Invalid; |
376 for (const auto& observer : m_observers) { | 396 for (const auto& observer : m_observers) { |
377 m_observerFilterOptions |= observer->filterOptions(); | 397 m_observerFilterOptions |= observer->filterOptions(); |
378 } | 398 } |
379 } | 399 } |
380 | 400 |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 visitor->trace(m_frameTimingBuffer); | 475 visitor->trace(m_frameTimingBuffer); |
456 visitor->trace(m_resourceTimingBuffer); | 476 visitor->trace(m_resourceTimingBuffer); |
457 visitor->trace(m_userTiming); | 477 visitor->trace(m_userTiming); |
458 visitor->trace(m_observers); | 478 visitor->trace(m_observers); |
459 visitor->trace(m_activeObservers); | 479 visitor->trace(m_activeObservers); |
460 visitor->trace(m_suspendedObservers); | 480 visitor->trace(m_suspendedObservers); |
461 EventTargetWithInlineData::trace(visitor); | 481 EventTargetWithInlineData::trace(visitor); |
462 } | 482 } |
463 | 483 |
464 } // namespace blink | 484 } // namespace blink |
OLD | NEW |