unsigned long long PerformanceTiming::navigationStart() const { DocumentLoadTiming* timing = documentLoadTiming(); if (!timing) return 0; return monotonicTimeToIntegerMilliseconds(timing->navigationStart()); }
unsigned long long PerformanceTiming::loadEventEnd() const { DocumentLoadTiming* timing = documentLoadTiming(); if (!timing) return 0; return monotonicTimeToIntegerMilliseconds(timing->loadEventEnd()); }
unsigned long long PerformanceTiming::redirectStart() const { DocumentLoadTiming* timing = documentLoadTiming(); if (!timing) return 0; if (timing->hasCrossOriginRedirect()) return 0; return monotonicTimeToIntegerMilliseconds(timing->redirectStart()); }
unsigned long long PerformanceTiming::unloadEventEnd() const { DocumentLoadTiming* timing = documentLoadTiming(); if (!timing) return 0; if (timing->hasCrossOriginRedirect() || !timing->hasSameOriginAsPreviousDocument()) return 0; return monotonicTimeToIntegerMilliseconds(timing->unloadEventEnd()); }