<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Performance Timeline IDL tests</title>
<link rel="author" title="W3C" href="http://www.w3.org/" />
<link rel="help" href="http://www.w3.org/TR/performance-timeline/#performanceentry"/>
<link rel="help" href="http://www.w3.org/TR/performance-timeline/#performance"/>
<link rel="help" href="http://www.w3.org/TR/performance-timeline/#performanceentrylist"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>
</head>
<body>
<h1>Performance Timeline IDL tests</h1>
<div id="log"></div>
<pre id='untested_idl' style='display:none'>
interface Performance {
};
typedef double DOMHighResTimeStamp;
[Exposed=(Window,Worker)]
interface PerformanceMark : PerformanceEntry {
};
</pre>
<pre id='idl'>
[Exposed=(Window,Worker)]
interface PerformanceEntry {
readonly attribute DOMString name;
readonly attribute DOMString entryType;
readonly attribute DOMHighResTimeStamp startTime;
readonly attribute DOMHighResTimeStamp duration;
[Default] object toJSON();
};
partial interface Performance {
PerformanceEntryList getEntries();
PerformanceEntryList getEntriesByType(DOMString type);
PerformanceEntryList getEntriesByName(DOMString name,
optional DOMString type);
};
typedef sequence <PerformanceEntry> PerformanceEntryList;
dictionary PerformanceObserverInit {
required sequence<DOMString> entryTypes;
boolean buffered = false;
};
[Exposed=(Window,Worker)]
interface PerformanceObserverEntryList {
PerformanceEntryList getEntries();
PerformanceEntryList getEntriesByType(DOMString type);
PerformanceEntryList getEntriesByName(DOMString name,
optional DOMString type);
};
callback PerformanceObserverCallback = void (PerformanceObserverEntryList entries,
PerformanceObserver observer);
[Constructor(PerformanceObserverCallback callback),
Exposed=(Window,Worker)]
interface PerformanceObserver {
void observe(PerformanceObserverInit options);
void disconnect();
PerformanceEntryList takeRecords();
};
</pre>
<script>
var idl_array;
setup(function() {
idl_array = new IdlArray();
idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
idl_array.add_idls(document.getElementById("idl").textContent);
// create first mark
self.performance.mark("mark");
idl_array.add_objects({
Performance: ["window.performance"],
PerformanceMark: [self.performance.getEntriesByName("mark")[0]]
});
});
idl_array.test();
</script>
</body>
</html>