Backed out 3 changesets (bug 1462993) wpt failures on nav2_test_attributes_exist.html. CLOSED TREE
authorCosmin Sabou <csabou@mozilla.com>
Thu, 24 May 2018 22:08:45 +0300
changeset 476469 d1d7f3f326004ec34e743392f33998d4b1c625e2
parent 476468 30c7c7093432a1725b9af2943b1ae15c497c9b16
child 476470 4f26f870269622cdb4986380d653bf0d49e4f4b3
push id1757
push userffxbld-merge
push dateFri, 24 Aug 2018 17:02:43 +0000
treeherdermozilla-release@736023aebdb1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1462993
milestone62.0a1
backs out53a1f773dfd04205537635f22354ffb03a29eb38
5486694a9bc9e8ee00aefa5275076bf52c58ccc1
591cbed375cd5999335298c8f549dca2be7c14c3
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out 3 changesets (bug 1462993) wpt failures on nav2_test_attributes_exist.html. CLOSED TREE Backed out changeset 53a1f773dfd0 (bug 1462993) Backed out changeset 5486694a9bc9 (bug 1462993) Backed out changeset 591cbed375cd (bug 1462993)
dom/performance/PerformanceObserver.cpp
dom/performance/tests/test_performance_observer.js
testing/web-platform/meta/longtask-timing/longtask-attributes.html.ini
testing/web-platform/meta/longtask-timing/longtask-in-childiframe-crossorigin.html.ini
testing/web-platform/meta/longtask-timing/longtask-in-childiframe.html.ini
testing/web-platform/meta/longtask-timing/longtask-in-externalscript.html.ini
testing/web-platform/meta/longtask-timing/longtask-in-raf.html.ini
testing/web-platform/meta/longtask-timing/longtask-tojson.html.ini
testing/web-platform/meta/performance-timeline/po-observe.any.js.ini
--- a/dom/performance/PerformanceObserver.cpp
+++ b/dom/performance/PerformanceObserver.cpp
@@ -140,30 +140,32 @@ static const char16_t *const sValidTypeN
   u"resource",
 };
 
 void
 PerformanceObserver::Observe(const PerformanceObserverInit& aOptions,
                              ErrorResult& aRv)
 {
   if (aOptions.mEntryTypes.IsEmpty()) {
+    aRv.Throw(NS_ERROR_DOM_TYPE_ERR);
     return;
   }
 
   nsTArray<nsString> validEntryTypes;
 
   for (const char16_t* name : sValidTypeNames) {
     nsDependentString validTypeName(name);
     if (aOptions.mEntryTypes.Contains<nsString>(validTypeName) &&
         !validEntryTypes.Contains<nsString>(validTypeName)) {
       validEntryTypes.AppendElement(validTypeName);
     }
   }
 
   if (validEntryTypes.IsEmpty()) {
+    aRv.Throw(NS_ERROR_DOM_TYPE_ERR);
     return;
   }
 
   mEntryTypes.SwapElements(validEntryTypes);
 
   mPerformance->AddObserver(this);
 
   if (aOptions.mBuffered) {
--- a/dom/performance/tests/test_performance_observer.js
+++ b/dom/performance/tests/test_performance_observer.js
@@ -1,9 +1,8 @@
-/*
 test(t => {
   assert_throws({name: "TypeError"}, function() {
     new PerformanceObserver();
   }, "PerformanceObserver constructor should throw TypeError if no argument is specified.");
 
   assert_throws({name: "TypeError"}, function() {
     new PerformanceObserver({});
   }, "PerformanceObserver constructor should throw TypeError if the argument is not a function.");
@@ -14,23 +13,30 @@ test(t => {
   });
 
   assert_throws({name: "TypeError"}, function() {
     observer.observe();
   }, "observe() should throw TypeError exception if no option specified.");
 
   assert_throws({name: "TypeError"}, function() {
     observer.observe({ unsupportedAttribute: "unsupported" });
-  }, "observe() should throw TypeError exception if the option has no 'entryTypes' attribute.");
+  }, "obsrve() should throw TypeError exception if the option has no 'entryTypes' attribute.");
+
+  assert_throws({name: "TypeError"}, function() {
+    observer.observe({ entryTypes: [] });
+  }, "obsrve() should throw TypeError exception if 'entryTypes' attribute is an empty sequence.");
 
   assert_throws({name: "TypeError"}, function() {
     observer.observe({ entryTypes: null });
-  }, "observe() should throw TypeError exception if 'entryTypes' attribute is null.");
+  }, "obsrve() should throw TypeError exception if 'entryTypes' attribute is null.");
+
+  assert_throws({name: "TypeError"}, function() {
+    observer.observe({ entryTypes: ["invalid"]});
+  }, "obsrve() should throw TypeError exception if 'entryTypes' attribute value is invalid.");
 }, "Test that PerformanceObserver.observe throws exception");
-*/
 
 function promiseObserve(test, options) {
   return new Promise(resolve => {
     performance.clearMarks();
     performance.clearMeasures();
 
     var observer = new PerformanceObserver(list => resolve(list));
     observer.observe(options);
--- a/testing/web-platform/meta/longtask-timing/longtask-attributes.html.ini
+++ b/testing/web-platform/meta/longtask-timing/longtask-attributes.html.ini
@@ -1,8 +1,7 @@
 [longtask-attributes.html]
-  expected: TIMEOUT
   [Performance longtask entries are observable]
-    expected: TIMEOUT
+    expected: FAIL
 
   [Performance longtask entries are observable.]
-    expected: TIMEOUT
+    expected: FAIL
 
--- a/testing/web-platform/meta/longtask-timing/longtask-in-childiframe-crossorigin.html.ini
+++ b/testing/web-platform/meta/longtask-timing/longtask-in-childiframe-crossorigin.html.ini
@@ -1,11 +1,10 @@
 [longtask-in-childiframe-crossorigin.html]
-  expected: TIMEOUT
   [Performance longtask entries in child iframe are observable in parent]
-    expected: TIMEOUT
+    expected: FAIL
 
   [Performance longtask entries in child iframe are observable in parent.]
-    expected: TIMEOUT
+    expected: FAIL
 
   [Performance longtask entries in cross-origin child iframe are observable in parent.]
-    expected: TIMEOUT
+    expected: FAIL
 
--- a/testing/web-platform/meta/longtask-timing/longtask-in-childiframe.html.ini
+++ b/testing/web-platform/meta/longtask-timing/longtask-in-childiframe.html.ini
@@ -1,8 +1,7 @@
 [longtask-in-childiframe.html]
-  expected: TIMEOUT
   [Performance longtask entries in child iframe are observable in parent]
-    expected: TIMEOUT
+    expected: FAIL
 
   [Performance longtask entries in child iframe are observable in parent.]
-    expected: TIMEOUT
+    expected: FAIL
 
--- a/testing/web-platform/meta/longtask-timing/longtask-in-externalscript.html.ini
+++ b/testing/web-platform/meta/longtask-timing/longtask-in-externalscript.html.ini
@@ -1,8 +1,7 @@
 [longtask-in-externalscript.html]
-  expected: TIMEOUT
   [Performance longtask entries are observable]
-    expected: TIMEOUT
+    expected: FAIL
 
   [Performance longtask entries are observable.]
-    expected: TIMEOUT
+    expected: FAIL
 
--- a/testing/web-platform/meta/longtask-timing/longtask-in-raf.html.ini
+++ b/testing/web-platform/meta/longtask-timing/longtask-in-raf.html.ini
@@ -1,8 +1,7 @@
 [longtask-in-raf.html]
-  expected: TIMEOUT
   [Performance longtask entries are observable]
-    expected: TIMEOUT
+    expected: FAIL
 
   [Performance longtask entries are observable.]
-    expected: TIMEOUT
+    expected: FAIL
 
--- a/testing/web-platform/meta/longtask-timing/longtask-tojson.html.ini
+++ b/testing/web-platform/meta/longtask-timing/longtask-tojson.html.ini
@@ -1,4 +1,4 @@
 [longtask-tojson.html]
-  expected: TIMEOUT
   [Test toJSON() in PerformanceLongTaskTiming and TaskAttributionTiming]
-    expected: TIMEOUT
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/performance-timeline/po-observe.any.js.ini
@@ -0,0 +1,15 @@
+[po-observe.any.worker.html]
+  [Empty sequence entryTypes is a no-op]
+    expected: FAIL
+
+  [Unknown entryTypes are no-op]
+    expected: FAIL
+
+
+[po-observe.any.html]
+  [Empty sequence entryTypes is a no-op]
+    expected: FAIL
+
+  [Unknown entryTypes are no-op]
+    expected: FAIL
+