Description

This test validates the value of window.performance.getEntriesByType("navigation")[0].(type/unloadEventEnd/unloadEventStart) with a reloaded navigation.

This page should be loaded with a green background frame below. The frame will be automatically reloaded and then verified that

The window.performance.getEntriesByType("navigation").type = "reload" after reload
The window.performance.getEntriesByType("navigation").unloadEventStart > 0 after reload
The window.performance.getEntriesByType("navigation").unloadEventEnd > 0 after reload


PASS Navigation Timing 2 WPT

