Chromium Code Reviews| Index: Source/core/timing/PerformanceObserver.h |
| diff --git a/Source/core/timing/PerformanceObserver.h b/Source/core/timing/PerformanceObserver.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..61d0ea7774b4501d70a68e6c168bb7ef66fdcb63 |
| --- /dev/null |
| +++ b/Source/core/timing/PerformanceObserver.h |
| @@ -0,0 +1,60 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef PerformanceObserver_h |
| +#define PerformanceObserver_h |
| + |
| +#include "bindings/core/v8/ScriptWrappable.h" |
| +#include "core/timing/PerformanceEntry.h" |
| +#include "platform/heap/Handle.h" |
| +#include "wtf/HashSet.h" |
| +#include "wtf/PassOwnPtr.h" |
| +#include "wtf/PassRefPtr.h" |
| +#include "wtf/RefCounted.h" |
| +#include "wtf/RefPtr.h" |
| +#include "wtf/Vector.h" |
| + |
| +namespace blink { |
| + |
| +class ExceptionState; |
| +class PerformanceBase; |
| +class PerformanceObserverCallback; |
| +class PerformanceObserver; |
| +class PerformanceObserverInit; |
| + |
| +using PerformanceEntryVector = HeapVector<Member<PerformanceEntry>>; |
| + |
| +class PerformanceObserver final : public GarbageCollectedFinalized<PerformanceObserver>, public ScriptWrappable { |
| + DEFINE_WRAPPERTYPEINFO(); |
| + friend class PerformanceBase; |
| +public: |
| + static PerformanceObserver* create(PerformanceBase*, PerformanceObserverCallback*); |
| + static void resumeSuspendedObservers(); |
| + |
| + ~PerformanceObserver(); |
| + |
| + void observe(const PerformanceObserverInit&, ExceptionState&); |
| + void disconnect(); |
| + void enqueuePerformanceEntry(PerformanceEntry&); |
| + PerformanceEntryTypeMask filterOptions() { return m_filterOptions; } |
|
esprehn
2015/09/09 22:41:40
const
MikeB
2015/09/10 19:53:01
Done.
|
| + |
| + // Eagerly finalized as destructor accesses heap object members. |
| + EAGERLY_FINALIZE(); |
| + DECLARE_TRACE(); |
| + |
| +private: |
| + explicit PerformanceObserver(PerformanceBase*, PerformanceObserverCallback*); |
| + void deliver(); |
| + bool shouldBeSuspended() const; |
| + |
| + Member<PerformanceObserverCallback> m_callback; |
| + WeakMember<PerformanceBase> m_performance; |
| + PerformanceEntryVector m_performanceEntries; |
| + PerformanceEntryTypeMask m_filterOptions; |
| + bool m_isRegistered; |
| +}; |
| + |
| +} // namespace blink |
| + |
| +#endif // PerformanceObserver_h |