1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "PerformanceResourceTiming.h"
7 #include "mozilla/dom/PerformanceResourceTimingBinding.h"
9 using namespace mozilla::dom
;
11 NS_IMPL_CYCLE_COLLECTION_INHERITED(PerformanceResourceTiming
,
15 NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(PerformanceResourceTiming
,
17 NS_IMPL_CYCLE_COLLECTION_TRACE_END
19 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(PerformanceResourceTiming
)
20 NS_INTERFACE_MAP_END_INHERITING(PerformanceEntry
)
22 NS_IMPL_ADDREF_INHERITED(PerformanceResourceTiming
, PerformanceEntry
)
23 NS_IMPL_RELEASE_INHERITED(PerformanceResourceTiming
, PerformanceEntry
)
25 PerformanceResourceTiming::PerformanceResourceTiming(nsPerformanceTiming
* aPerformanceTiming
,
26 nsPerformance
* aPerformance
,
27 const nsAString
& aName
)
28 : PerformanceEntry(aPerformance
, aName
, NS_LITERAL_STRING("resource")),
29 mTiming(aPerformanceTiming
)
31 MOZ_ASSERT(aPerformance
, "Parent performance object should be provided");
34 PerformanceResourceTiming::~PerformanceResourceTiming()
39 PerformanceResourceTiming::StartTime() const
41 DOMHighResTimeStamp startTime
= mTiming
->RedirectStartHighRes();
42 return startTime
? startTime
: mTiming
->FetchStartHighRes();
46 PerformanceResourceTiming::WrapObject(JSContext
* aCx
)
48 return PerformanceResourceTimingBinding::Wrap(aCx
, this);