Bug 168057

Summary: [Navigation Timing] navigationStart and DOM timings in Unix epoch, other timings 0-based for Back-Forward navigations
Product: WebKit Reporter: Nic Jansma <nic>
Component: PlatformAssignee: Joseph Pecoraro <joepeck>
Status: NEW ---    
Severity: Normal CC: cdumez, joepeck, simon.fraser
Priority: P2    
Version: Safari 10   
Hardware: iPhone / iPad   
OS: iOS 10   

Description Nic Jansma 2017-02-09 10:46:31 PST
Hi,

We're seeing many cases where on Back-Forward navigations, the NavigationTiming timestamps are incorrect.

It appears that navigationStart is Unix-epoch based, along with the dom* events.  However, all other timestamps are 0-based.

It also appears navigationStart happens after the dom* events.

Example 1:

Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0 Mobile/14C92 Safari/602.1

navigation.type             2 // back-forward
redirectStart               0
redirectEnd                 0
navigationStart             1486655091185
fetchStart                  0
domainLookupStart           2
domainLookupEnd             27
connectStart                27
connectEnd                  50
requestStart                52
responseStart               434
responseEnd                 0
domLoading                  1486655020306
domInteractive              1486655044330
domContentLoadedEventStart  1486655044330
domContentLoadedEventEnd    1486655044339
domComplete                 1486655088205
loadEventStart              0

Example 2:

Mozilla/5.0 (iPhone; CPU iPhone OS 10_2_1 like Mac OS X) AppleWebKit/602.4.6 (KHTML, like Gecko) Version/10.0 Mobile/14D27 Safari/602.1

navigation.type             2 // back-forward
redirectStart               0
redirectEnd                 0
navigationStart             1486648661894
fetchStart                  0
domainLookupStart           0
domainLookupEnd             0
connectStart                0
connectEnd                  0
requestStart                3
responseStart               259
responseEnd                 0
domLoading                  1486648620150
domInteractive              1486648620956
domContentLoadedEventStart  1486648621014
domContentLoadedEventEnd    1486648621070
domComplete                 1486648652486
loadEventStart              0

This doesn't happen all of the time, but in one data set, we're seeing it in 17 out of 254,357 beacons.  It doesn't appear to be all Back-Forward Safari beacons, as there are 27,593 other Back-Foward beacons in that dataset whose timestamps look OK.
Comment 1 Joseph Pecoraro 2017-02-09 15:24:06 PST
I can look at this.