Navigation Timing IDL tests
[PrimaryGlobal]
interface Window {
};
callback interface EventListener {
  void handleEvent(Event event);
};
interface Event {
    // PhaseType
    const unsigned short NONE = 0;
    const unsigned short CAPTURING_PHASE = 1;
    const unsigned short AT_TARGET = 2;
    const unsigned short BUBBLING_PHASE = 3;
    readonly    attribute DOMString      type;
    readonly    attribute EventTarget?   target;
    readonly    attribute EventTarget?   currentTarget;
    readonly    attribute unsigned short eventPhase;
    readonly    attribute boolean        bubbles;
    readonly    attribute boolean        cancelable;
    readonly    attribute DOMTimeStamp   timeStamp;
    void stopPropagation ();
    void preventDefault ();
    void initEvent (DOMString eventTypeArg, boolean bubblesArg, boolean cancelableArg);
    // Introduced in DOM Level 3
    void stopImmediatePropagation ();
    readonly    attribute boolean        defaultPrevented;
    readonly    attribute boolean        isTrusted;
};
interface EventTarget {
    // Modified in DOM Level 3
    void    addEventListener (DOMString type, EventListener? listener, optional boolean useCapture = false);
    void    removeEventListener (DOMString type, EventListener? listener, optional boolean useCapture = false);
    boolean dispatchEvent (Event event);
};
interface PerformanceTiming {
  readonly attribute unsigned long long navigationStart;
  readonly attribute unsigned long long unloadEventStart;
  readonly attribute unsigned long long unloadEventEnd;
  readonly attribute unsigned long long redirectStart;
  readonly attribute unsigned long long redirectEnd;
  readonly attribute unsigned long long fetchStart;
  readonly attribute unsigned long long domainLookupStart;
  readonly attribute unsigned long long domainLookupEnd;
  readonly attribute unsigned long long connectStart;
  readonly attribute unsigned long long connectEnd;
  readonly attribute unsigned long long secureConnectionStart;
  readonly attribute unsigned long long requestStart;
  readonly attribute unsigned long long responseStart;
  readonly attribute unsigned long long responseEnd;
  readonly attribute unsigned long long domLoading;
  readonly attribute unsigned long long domInteractive;
  readonly attribute unsigned long long domContentLoadedEventStart;
  readonly attribute unsigned long long domContentLoadedEventEnd;
  readonly attribute unsigned long long domComplete;
  readonly attribute unsigned long long loadEventStart;
  readonly attribute unsigned long long loadEventEnd;
};
interface PerformanceNavigation {
  const unsigned short TYPE_NAVIGATE = 0;
  const unsigned short TYPE_RELOAD = 1;
  const unsigned short TYPE_BACK_FORWARD = 2;
  const unsigned short TYPE_RESERVED = 255;
  readonly attribute unsigned short type;
  readonly attribute unsigned short redirectCount;
};
interface Performance : EventTarget {
  readonly attribute PerformanceTiming timing;
  readonly attribute PerformanceNavigation navigation;
};
partial interface Window {
  [Replaceable] readonly attribute Performance performance;
};