chromium/third_party/blink/renderer/core/timing/performance_navigation_timing.idl

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://w3c.github.io/navigation-timing/#sec-PerformanceNavigationTiming

enum NavigationTimingType {
    "navigate",
    "reload",
    "back_forward",
    "prerender"
};

enum NavigationEntropy {
    "high",
    "normal",
    ""
};

[
    Exposed=Window
]  interface PerformanceNavigationTiming : PerformanceResourceTiming {
    readonly attribute DOMHighResTimeStamp unloadEventStart;
    readonly attribute DOMHighResTimeStamp unloadEventEnd;
    readonly attribute DOMHighResTimeStamp domInteractive;
    readonly attribute DOMHighResTimeStamp domContentLoadedEventStart;
    readonly attribute DOMHighResTimeStamp domContentLoadedEventEnd;
    readonly attribute DOMHighResTimeStamp domComplete;
    readonly attribute DOMHighResTimeStamp loadEventStart;
    readonly attribute DOMHighResTimeStamp loadEventEnd;
    readonly attribute NavigationTimingType type;
    readonly attribute unsigned short redirectCount;
    [RuntimeEnabled=BackForwardCacheNotRestoredReasons] readonly attribute NotRestoredReasons? notRestoredReasons;
    [RuntimeEnabled=PerformanceNavigateSystemEntropy] readonly attribute NavigationEntropy systemEntropy;
    [CallWith=ScriptState] readonly attribute DOMHighResTimeStamp criticalCHRestart;
    [CallWith=ScriptState, ImplementedAs=toJSONForBinding] object toJSON();
};