mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-09 01:08:39 +09:00
moebius#161: The Performance Resource Timing (make timestamps be relative to startTime)
https://github.com/MoonchildProductions/moebius/pull/161
This commit is contained in:
parent
5558924d7c
commit
e8dbb561f6
20 changed files with 520 additions and 154 deletions
|
|
@ -47,38 +47,91 @@ public:
|
|||
|
||||
mozilla::TimeStamp GetNavigationStartTimeStamp() const
|
||||
{
|
||||
return mNavigationStartTimeStamp;
|
||||
return mNavigationStart;
|
||||
}
|
||||
|
||||
DOMTimeMilliSec GetUnloadEventStart()
|
||||
{
|
||||
return TimeStampToDOM(GetUnloadEventStartTimeStamp());
|
||||
}
|
||||
|
||||
DOMTimeMilliSec GetUnloadEventEnd()
|
||||
{
|
||||
return TimeStampToDOM(GetUnloadEventEndTimeStamp());
|
||||
}
|
||||
|
||||
DOMTimeMilliSec GetUnloadEventStart();
|
||||
DOMTimeMilliSec GetUnloadEventEnd();
|
||||
DOMTimeMilliSec GetDomLoading() const
|
||||
{
|
||||
return mDOMLoading;
|
||||
return TimeStampToDOM(mDOMLoading);
|
||||
}
|
||||
DOMTimeMilliSec GetDomInteractive() const
|
||||
{
|
||||
return mDOMInteractive;
|
||||
return TimeStampToDOM(mDOMInteractive);
|
||||
}
|
||||
DOMTimeMilliSec GetDomContentLoadedEventStart() const
|
||||
{
|
||||
return mDOMContentLoadedEventStart;
|
||||
return TimeStampToDOM(mDOMContentLoadedEventStart);
|
||||
}
|
||||
DOMTimeMilliSec GetDomContentLoadedEventEnd() const
|
||||
{
|
||||
return mDOMContentLoadedEventEnd;
|
||||
return TimeStampToDOM(mDOMContentLoadedEventEnd);
|
||||
}
|
||||
DOMTimeMilliSec GetDomComplete() const
|
||||
{
|
||||
return mDOMComplete;
|
||||
return TimeStampToDOM(mDOMComplete);
|
||||
}
|
||||
DOMTimeMilliSec GetLoadEventStart() const
|
||||
{
|
||||
return mLoadEventStart;
|
||||
return TimeStampToDOM(mLoadEventStart);
|
||||
}
|
||||
DOMTimeMilliSec GetLoadEventEnd() const
|
||||
{
|
||||
return mLoadEventEnd;
|
||||
return TimeStampToDOM(mLoadEventEnd);
|
||||
}
|
||||
DOMTimeMilliSec GetTimeToNonBlankPaint() const
|
||||
{
|
||||
return TimeStampToDOM(mNonBlankPaint);
|
||||
}
|
||||
|
||||
DOMHighResTimeStamp GetUnloadEventStartHighRes()
|
||||
{
|
||||
mozilla::TimeStamp stamp = GetUnloadEventStartTimeStamp();
|
||||
if (stamp.IsNull()) {
|
||||
return 0;
|
||||
}
|
||||
return TimeStampToDOMHighRes(stamp);
|
||||
}
|
||||
DOMHighResTimeStamp GetUnloadEventEndHighRes()
|
||||
{
|
||||
mozilla::TimeStamp stamp = GetUnloadEventEndTimeStamp();
|
||||
if (stamp.IsNull()) {
|
||||
return 0;
|
||||
}
|
||||
return TimeStampToDOMHighRes(stamp);
|
||||
}
|
||||
DOMHighResTimeStamp GetDomInteractiveHighRes() const
|
||||
{
|
||||
return TimeStampToDOMHighRes(mDOMInteractive);
|
||||
}
|
||||
DOMHighResTimeStamp GetDomContentLoadedEventStartHighRes() const
|
||||
{
|
||||
return TimeStampToDOMHighRes(mDOMContentLoadedEventStart);
|
||||
}
|
||||
DOMHighResTimeStamp GetDomContentLoadedEventEndHighRes() const
|
||||
{
|
||||
return TimeStampToDOMHighRes(mDOMContentLoadedEventEnd);
|
||||
}
|
||||
DOMHighResTimeStamp GetDomCompleteHighRes() const
|
||||
{
|
||||
return TimeStampToDOMHighRes(mDOMComplete);
|
||||
}
|
||||
DOMHighResTimeStamp GetLoadEventStartHighRes() const
|
||||
{
|
||||
return TimeStampToDOMHighRes(mLoadEventStart);
|
||||
}
|
||||
DOMHighResTimeStamp GetLoadEventEndHighRes() const
|
||||
{
|
||||
return TimeStampToDOMHighRes(mLoadEventEnd);
|
||||
}
|
||||
|
||||
enum class DocShellState : uint8_t {
|
||||
|
|
@ -108,9 +161,13 @@ public:
|
|||
|
||||
DOMTimeMilliSec TimeStampToDOM(mozilla::TimeStamp aStamp) const;
|
||||
|
||||
inline DOMHighResTimeStamp TimeStampToDOMHighRes(mozilla::TimeStamp aStamp)
|
||||
inline DOMHighResTimeStamp TimeStampToDOMHighRes(mozilla::TimeStamp aStamp) const
|
||||
{
|
||||
mozilla::TimeDuration duration = aStamp - mNavigationStartTimeStamp;
|
||||
MOZ_ASSERT(!aStamp.IsNull(), "The timestamp should not be null");
|
||||
if (aStamp.IsNull()) {
|
||||
return 0;
|
||||
}
|
||||
mozilla::TimeDuration duration = aStamp - mNavigationStart;
|
||||
return duration.ToMilliseconds();
|
||||
}
|
||||
|
||||
|
|
@ -120,37 +177,29 @@ private:
|
|||
|
||||
void Clear();
|
||||
|
||||
mozilla::TimeStamp GetUnloadEventStartTimeStamp() const;
|
||||
mozilla::TimeStamp GetUnloadEventEndTimeStamp() const;
|
||||
|
||||
nsCOMPtr<nsIURI> mUnloadedURI;
|
||||
nsCOMPtr<nsIURI> mLoadedURI;
|
||||
|
||||
Type mNavigationType;
|
||||
DOMHighResTimeStamp mNavigationStartHighRes;
|
||||
mozilla::TimeStamp mNavigationStartTimeStamp;
|
||||
mozilla::TimeStamp mNonBlankPaintTimeStamp;
|
||||
DOMTimeMilliSec DurationFromStart();
|
||||
mozilla::TimeStamp mNavigationStart;
|
||||
mozilla::TimeStamp mNonBlankPaint;
|
||||
|
||||
DOMTimeMilliSec mBeforeUnloadStart;
|
||||
DOMTimeMilliSec mUnloadStart;
|
||||
DOMTimeMilliSec mUnloadEnd;
|
||||
DOMTimeMilliSec mLoadEventStart;
|
||||
DOMTimeMilliSec mLoadEventEnd;
|
||||
mozilla::TimeStamp mBeforeUnloadStart;
|
||||
mozilla::TimeStamp mUnloadStart;
|
||||
mozilla::TimeStamp mUnloadEnd;
|
||||
mozilla::TimeStamp mLoadEventStart;
|
||||
mozilla::TimeStamp mLoadEventEnd;
|
||||
|
||||
DOMTimeMilliSec mDOMLoading;
|
||||
DOMTimeMilliSec mDOMInteractive;
|
||||
DOMTimeMilliSec mDOMContentLoadedEventStart;
|
||||
DOMTimeMilliSec mDOMContentLoadedEventEnd;
|
||||
DOMTimeMilliSec mDOMComplete;
|
||||
mozilla::TimeStamp mDOMLoading;
|
||||
mozilla::TimeStamp mDOMInteractive;
|
||||
mozilla::TimeStamp mDOMContentLoadedEventStart;
|
||||
mozilla::TimeStamp mDOMContentLoadedEventEnd;
|
||||
mozilla::TimeStamp mDOMComplete;
|
||||
|
||||
// Booleans to keep track of what things we've already been notified
|
||||
// about. We don't update those once we've been notified about them
|
||||
// once.
|
||||
bool mLoadEventStartSet : 1;
|
||||
bool mLoadEventEndSet : 1;
|
||||
bool mDOMLoadingSet : 1;
|
||||
bool mDOMInteractiveSet : 1;
|
||||
bool mDOMContentLoadedEventStartSet : 1;
|
||||
bool mDOMContentLoadedEventEndSet : 1;
|
||||
bool mDOMCompleteSet : 1;
|
||||
bool mDocShellHasBeenActiveSinceNavigationStart : 1;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue