<!DOCTYPE HTML> <meta charset=utf-8> <title>PerformanceObservers: disconnect</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="performanceobservers.js"></script> <h1>PerformanceObservers: disconnect</h1> <div id="log"></div> <script> async_test(function (t) { var observer = new PerformanceObserver( t.step_func(function (entryList, obs) { assert_unreached("This callback must not be invoked"); }) ); observer.observe({entryTypes: ["mark", "measure", "navigation"]}); observer.disconnect(); performance.mark("mark1"); performance.measure("measure1"); t.step_timeout(function () { t.done(); }, 2000); }, "disconnected callbacks must not be invoked"); test(function () { var obs = new PerformanceObserver(function () { return true; }); obs.disconnect(); obs.disconnect(); }, "disconnecting an unconnected observer is a no-op"); async_test(function (t) { var observer = new PerformanceObserver( t.step_func(function(entryList, obs) { checkEntries(entryList.getEntries(), [{ entryType: "mark", name: "mark1"}]); t.done(); }) ); observer.observe({entryTypes: ["mark"]}); performance.mark("mark1"); observer.disconnect(); performance.mark("mark2"); }, "An observer disconnected after a mark must receive the mark"); </script>