зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1675543 - Cache PerformancePaintTiming's StartTime r=smaug
Currently we store the raw `StartTime` as a `TimeStamp` object, and convert it to `DOMHighResTimeStamp` when calling `StartTime()`. However, there's no need to do the conversion every time. Depends on D96295 Differential Revision: https://phabricator.services.mozilla.com/D96296
This commit is contained in:
Родитель
13653417af
Коммит
ad624adcb4
|
@ -26,7 +26,7 @@ PerformancePaintTiming::PerformancePaintTiming(Performance* aPerformance,
|
|||
const TimeStamp& aStartTime)
|
||||
: PerformanceEntry(aPerformance->GetParentObject(), aName, u"paint"_ns),
|
||||
mPerformance(aPerformance),
|
||||
mStartTime(aStartTime) {}
|
||||
mStartTime(CalculateStartTime(aStartTime)) {}
|
||||
|
||||
PerformancePaintTiming::~PerformancePaintTiming() = default;
|
||||
|
||||
|
@ -35,9 +35,10 @@ JSObject* PerformancePaintTiming::WrapObject(
|
|||
return PerformancePaintTiming_Binding::Wrap(aCx, this, aGivenProto);
|
||||
}
|
||||
|
||||
DOMHighResTimeStamp PerformancePaintTiming::StartTime() const {
|
||||
DOMHighResTimeStamp PerformancePaintTiming::CalculateStartTime(
|
||||
const TimeStamp& aStartTime) const {
|
||||
DOMHighResTimeStamp rawValue =
|
||||
mPerformance->GetDOMTiming()->TimeStampToDOMHighRes(mStartTime);
|
||||
mPerformance->GetDOMTiming()->TimeStampToDOMHighRes(aStartTime);
|
||||
return nsRFPService::ReduceTimePrecisionAsMSecs(
|
||||
rawValue, mPerformance->GetRandomTimelineSeed(),
|
||||
mPerformance->IsSystemPrincipal(), mPerformance->CrossOriginIsolated());
|
||||
|
|
|
@ -33,7 +33,7 @@ class PerformancePaintTiming final : public PerformanceEntry {
|
|||
JSObject* WrapObject(JSContext* aCx,
|
||||
JS::Handle<JSObject*> aGivenProto) override;
|
||||
|
||||
DOMHighResTimeStamp StartTime() const override;
|
||||
DOMHighResTimeStamp StartTime() const override { return mStartTime; }
|
||||
|
||||
size_t SizeOfIncludingThis(
|
||||
mozilla::MallocSizeOf aMallocSizeOf) const override;
|
||||
|
@ -41,7 +41,8 @@ class PerformancePaintTiming final : public PerformanceEntry {
|
|||
private:
|
||||
~PerformancePaintTiming();
|
||||
RefPtr<Performance> mPerformance;
|
||||
const TimeStamp mStartTime;
|
||||
const DOMHighResTimeStamp mStartTime;
|
||||
DOMHighResTimeStamp CalculateStartTime(const TimeStamp& aStartTime) const;
|
||||
};
|
||||
|
||||
} // namespace dom
|
||||
|
|
Загрузка…
Ссылка в новой задаче