#ifndef PerformanceTiming_h
#define PerformanceTiming_h
#include "bindings/v8/ScriptWrappable.h"
#include "core/frame/DOMWindowProperty.h"
#include "heap/Handle.h"
#include "wtf/PassRefPtr.h"
#include "wtf/RefCounted.h"
namespace WebCore {
class DocumentLoadTiming;
class DocumentLoader;
struct DocumentTiming;
class LocalFrame;
class ResourceLoadTiming;
class PerformanceTiming FINAL : public RefCountedWillBeGarbageCollectedFinalized<PerformanceTiming>, public ScriptWrappable, public DOMWindowProperty {
public:
static PassRefPtrWillBeRawPtr<PerformanceTiming> create(LocalFrame* frame)
{
return adoptRefWillBeNoop(new PerformanceTiming(frame));
}
unsigned long long navigationStart() const;
unsigned long long unloadEventStart() const;
unsigned long long unloadEventEnd() const;
unsigned long long redirectStart() const;
unsigned long long redirectEnd() const;
unsigned long long fetchStart() const;
unsigned long long domainLookupStart() const;
unsigned long long domainLookupEnd() const;
unsigned long long connectStart() const;
unsigned long long connectEnd() const;
unsigned long long secureConnectionStart() const;
unsigned long long requestStart() const;
unsigned long long responseStart() const;
unsigned long long responseEnd() const;
unsigned long long domLoading() const;
unsigned long long domInteractive() const;
unsigned long long domContentLoadedEventStart() const;
unsigned long long domContentLoadedEventEnd() const;
unsigned long long domComplete() const;
unsigned long long loadEventStart() const;
unsigned long long loadEventEnd() const;
void trace(Visitor*) { }
private:
explicit PerformanceTiming(LocalFrame*);
const DocumentTiming* documentTiming() const;
DocumentLoader* documentLoader() const;
DocumentLoadTiming* documentLoadTiming() const;
ResourceLoadTiming* resourceLoadTiming() const;
unsigned long long monotonicTimeToIntegerMilliseconds(double) const;
};
}
#endif