jenkins-bot has submitted this change and it was merged. Change subject: Expand coverage of conformance test ......................................................................
Expand coverage of conformance test Cover the full set of Navigation Timing markers in the attribute order conformance test. Previously-omitted markers which are now included in the test: * domComplete * domLoading * domainLookupEnd * domainLookupStart * fetchStart * navigationStart * secureConnectionStart Change-Id: I62e20087c1abddf8871d7b0235c32e81956723c5 --- M modules/ext.navigationTiming.js 1 file changed, 53 insertions(+), 16 deletions(-) Approvals: Krinkle: Looks good to me, approved jenkins-bot: Verified diff --git a/modules/ext.navigationTiming.js b/modules/ext.navigationTiming.js index 0446020..bda58bb 100644 --- a/modules/ext.navigationTiming.js +++ b/modules/ext.navigationTiming.js @@ -36,26 +36,63 @@ } /** - * Assert that the attribute order complies with the W3C spec + * Check if the order of Navigation Timing marker values conforms + * to the specification. + * + * Markers may be undefined or zero if they are not implemented or not + * applicable to the current page. Markers which have a value must be + * in ascending order. * * @return {boolean} */ function isCompliant() { - // Tests derived from - // <http://w3c-test.org/navigation-timing/test_timing_attributes_order.html> - return ( - timing && - timing.loadEventEnd >= timing.loadEventStart && - timing.loadEventStart >= timing.domContentLoadedEventEnd && - timing.domContentLoadedEventEnd >= timing.domContentLoadedEventStart && - timing.domContentLoadedEventStart >= timing.domInteractive && - timing.domInteractive >= timing.responseEnd && - timing.responseEnd >= timing.responseStart && - timing.responseStart >= timing.requestStart && - timing.requestStart >= timing.connectEnd && - timing.connectEnd >= timing.connectStart && - timing.connectStart >= 0 - ); + var sequences, markers, curr, prev; + + if ( !timing ) { + return false; + } + + sequences = [ [ + 'navigationStart', + 'fetchStart', + 'domainLookupStart', + 'domainLookupEnd', + 'connectStart', + 'connectEnd', + 'requestStart', + 'responseStart', + 'responseEnd', + 'domInteractive', + 'domContentLoadedEventStart', + 'domContentLoadedEventEnd', + 'loadEventStart', + 'loadEventEnd' + ], [ + 'secureConnectionStart', + 'requestStart' + ], [ + 'fetchStart', + 'domLoading' + ], [ + 'domContentLoadedEventEnd', + 'domComplete' + ] ]; + + while ( sequences.length ) { + markers = sequences.shift(); + prev = null; + while ( markers.length ) { + curr = timing[ markers.shift() ]; + if ( curr ) { + if ( curr < prev ) { + return false; + } + prev = curr; + } + } + } + + return true; } function getNavTiming() { -- To view, visit https://gerrit.wikimedia.org/r/287028 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I62e20087c1abddf8871d7b0235c32e81956723c5 Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/extensions/NavigationTiming Gerrit-Branch: master Gerrit-Owner: Ori.livneh <o...@wikimedia.org> Gerrit-Reviewer: Gilles <gdu...@wikimedia.org> Gerrit-Reviewer: Krinkle <krinklem...@gmail.com> Gerrit-Reviewer: Ori.livneh <o...@wikimedia.org> Gerrit-Reviewer: Phedenskog <phedens...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits