Bug 919391 - Incorrect Navigation Timing API: performance.timing.responseStart - performance.timing.requestStart < 0 r=baku,jgraham draft
authorValentin Gosu <valentin.gosu@gmail.com>
Wed, 07 Dec 2016 15:19:43 -1000
changeset 447839 e99f1e685a75c13c9f70d330df190dfc01231f5c
parent 446527 3853c539a1b7c803f1075d2c3ecefbdd314af1d8
child 539143 beb29b643f1a08f09b6f2dff2fe72c26c5eb835c
push id38184
push uservalentin.gosu@gmail.com
push dateThu, 08 Dec 2016 01:20:31 +0000
reviewersbaku, jgraham
bugs919391
milestone53.0a1
Bug 919391 - Incorrect Navigation Timing API: performance.timing.responseStart - performance.timing.requestStart < 0 r=baku,jgraham MozReview-Commit-ID: 6s5FljTQEAB
dom/performance/PerformanceTiming.cpp
testing/web-platform/meta/resource-timing/resource-timing.html.ini
testing/web-platform/meta/resource-timing/test_resource_timing.html.ini
testing/web-platform/tests/resource-timing/resources/gzip_xml.py
--- a/dom/performance/PerformanceTiming.cpp
+++ b/dom/performance/PerformanceTiming.cpp
@@ -310,16 +310,21 @@ PerformanceTiming::ResponseStartHighRes(
 {
   if (!nsContentUtils::IsPerformanceTimingEnabled() || !IsInitialized()) {
     return mZeroTime;
   }
   if (mResponseStart.IsNull() ||
      (!mCacheReadStart.IsNull() && mCacheReadStart < mResponseStart)) {
     mResponseStart = mCacheReadStart;
   }
+
+  if (mResponseStart.IsNull() ||
+      (!mRequestStart.IsNull() && mResponseStart < mRequestStart)) {
+    mResponseStart = mRequestStart;
+  }
   return TimeStampToDOMHighResOrFetchStart(mResponseStart);
 }
 
 DOMTimeMilliSec
 PerformanceTiming::ResponseStart()
 {
   return static_cast<int64_t>(ResponseStartHighRes());
 }
deleted file mode 100644
--- a/testing/web-platform/meta/resource-timing/resource-timing.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[resource-timing.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1290858
deleted file mode 100644
--- a/testing/web-platform/meta/resource-timing/test_resource_timing.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[test_resource_timing.html]
-  type: testharness
-  [PerformanceEntry has correct network transfer attributes (xmlhttprequest)]
-    expected: FAIL
-
--- a/testing/web-platform/tests/resource-timing/resources/gzip_xml.py
+++ b/testing/web-platform/tests/resource-timing/resources/gzip_xml.py
@@ -1,13 +1,15 @@
 import gzip as gzip_module
 from cStringIO import StringIO
+import os
 
 def main(request, response):
-    f = open('resource-timing/resources/resource_timing_test0.xml', 'r')
+    dir_path = os.path.dirname(os.path.realpath(__file__))
+    f = open(dir_path+'/resource_timing_test0.xml', 'r')
     output = f.read()
 
     out = StringIO()
     with gzip_module.GzipFile(fileobj=out, mode="w") as f:
       f.write(output)
     output = out.getvalue()
 
     headers = [("Content-type", "text/plain"),