Index: LayoutTests/fast/performance/performance-observer.html |
diff --git a/LayoutTests/fast/performance/performance-observer.html b/LayoutTests/fast/performance/performance-observer.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a0380fffc29c96b698c2c5e35a1ebdacf16f522a |
--- /dev/null |
+++ b/LayoutTests/fast/performance/performance-observer.html |
@@ -0,0 +1,45 @@ |
+<!DOCTYPE html> |
+<script src="../../resources/js-test.js"></script> |
+<script> |
+ |
+description("This tests that PerformanceObserver gets called the right number of times."); |
+ |
+window.jsTestIsAsync = true; |
+ |
+var entries = []; |
+ |
+var expectedEntries = [ |
+ {entryType:'mark', name:'mark_1'}, |
+ {entryType:'mark', name:'mark_2'}, |
+ {entryType:'measure', name:'measure_1'} |
+]; |
+ |
+var observer = new PerformanceObserver(performanceCallback); |
+ |
+function performanceCallback(performanceEntryList) |
+{ |
+ entries = entries.concat(performanceEntryList.getEntries()); |
+ if (entries.length != expectedEntries.length) |
+ return; |
+ shouldBe('entries[0].entryType', 'expectedEntries[0].entryType'); |
+ shouldBe('entries[0].name', 'expectedEntries[0].name'); |
+ shouldBe('entries[1].entryType', 'expectedEntries[1].entryType'); |
+ shouldBe('entries[1].name', 'expectedEntries[1].name'); |
+ shouldBe('entries[2].entryType', 'expectedEntries[2].entryType'); |
+ shouldBe('entries[2].name', 'expectedEntries[2].name'); |
+ finishJSTest(); |
+} |
+ |
+function performMeasure() |
+{ |
+ window.performance.measure('measure_1', 'mark_1', 'mark_2'); |
+} |
+ |
+var config = { entryTypes: ['mark', 'measure'] }; |
+observer.observe(config); |
+ |
+window.performance.mark('mark_1'); |
+window.performance.mark('mark_2'); |
+ |
+window.setTimeout(performMeasure, 0); |
+</script> |