Index: Source/core/timing/Performance.idl |
diff --git a/Source/core/timing/Performance.idl b/Source/core/timing/Performance.idl |
index 2c04c8a2c45554cb3b5e7cffbc466fb768024c9b..6a8fab6b0030ec60e72d6f7d0230919d69f66bae 100644 |
--- a/Source/core/timing/Performance.idl |
+++ b/Source/core/timing/Performance.idl |
@@ -29,33 +29,53 @@ |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
-// See: http://www.w3.org/TR/navigation-timing/ |
+// https://w3c.github.io/hr-time/#the-performance-interface |
+ |
+// TODO(philipj): This interface should be [Exposed=(Window,Worker)]. Doing that |
+// would allow the WorkerPerformance interface to be merged into this. |
+// TODO(philipj): None of the optional DOMString arguments in this interface |
+// should have a default value. |
interface Performance : EventTarget { |
- readonly attribute PerformanceNavigation navigation; |
- readonly attribute PerformanceTiming timing; |
- readonly attribute MemoryInfo memory; |
+ DOMHighResTimeStamp now(); |
- [MeasureAs=UnprefixedPerformanceTimeline] sequence<PerformanceEntry> getEntries(); |
- [MeasureAs=UnprefixedPerformanceTimeline] sequence<PerformanceEntry> getEntriesByType(DOMString entryType); |
- [MeasureAs=UnprefixedPerformanceTimeline] sequence<PerformanceEntry> getEntriesByName(DOMString name, optional DOMString entryType = null); |
+ // Performance Timeline |
+ // https://w3c.github.io/performance-timeline/#the-performance-interface |
+ // TODO(philipj): getEntries() should take an optional FilterOptions argument. |
+ [MeasureAs=UnprefixedPerformanceTimeline] PerformanceEntryList getEntries(); |
+ [MeasureAs=UnprefixedPerformanceTimeline] PerformanceEntryList getEntriesByType(DOMString entryType); |
+ [MeasureAs=UnprefixedPerformanceTimeline] PerformanceEntryList getEntriesByName(DOMString name, optional DOMString entryType = null); |
+ // Resource Timing |
+ // https://w3c.github.io/resource-timing/#extensions-performance-interface |
+ // TODO(philipj): Unprefix these APIs. |
[MeasureAs=PrefixedPerformanceClearResourceTimings] void webkitClearResourceTimings(); |
[MeasureAs=PrefixedPerformanceSetResourceTimingBufferSize] void webkitSetResourceTimingBufferSize(unsigned long maxSize); |
- |
- [MeasureAs=PerformanceFrameTiming,RuntimeEnabled=FrameTimingSupport] void clearFrameTimings(); |
- [MeasureAs=PerformanceFrameTiming,RuntimeEnabled=FrameTimingSupport] void setFrameTimingBufferSize(unsigned long maxSize); |
- |
attribute EventHandler onwebkitresourcetimingbufferfull; |
- [RuntimeEnabled=FrameTimingSupport] attribute EventHandler onframetimingbufferfull; |
+ // Navigation Timing |
+ // http://www.w3.org/TR/navigation-timing/#sec-window.performance-attribute |
+ // TODO(philipj): The Navigation Timing Rec. defines the (not partial) |
+ // Performance interface, while https://w3c.github.io/navigation-timing/ has |
+ // changed the interface in an incompatible way: |
+ // https://github.com/w3c/navigation-timing/issues/22 |
+ [Measure] readonly attribute PerformanceTiming timing; |
+ [Measure] readonly attribute PerformanceNavigation navigation; |
- // See http://www.w3.org/TR/2012/CR-user-timing-20120726/ |
- [RaisesException,MeasureAs=UnprefixedUserTiming] void mark(DOMString markName); |
+ // User Timing |
+ // https://w3c.github.io/user-timing/#extensions-performance-interface |
+ [MeasureAs=UnprefixedUserTiming, RaisesException] void mark(DOMString markName); |
[MeasureAs=UnprefixedUserTiming] void clearMarks(optional DOMString markName = null); |
- [RaisesException,MeasureAs=UnprefixedUserTiming] void measure(DOMString measureName, optional DOMString startMark = null, optional DOMString endMark = null); |
+ [MeasureAs=UnprefixedUserTiming, RaisesException] void measure(DOMString measureName, optional DOMString startMark = null, optional DOMString endMark = null); |
[MeasureAs=UnprefixedUserTiming] void clearMeasures(optional DOMString measureName = null); |
- // See http://www.w3.org/TR/hr-time/ for details. |
- double now(); |
+ // Frame Timing |
+ // https://w3c.github.io/frame-timing/#extensions-performance-interface |
+ [RuntimeEnabled=FrameTimingSupport, MeasureAs=PerformanceFrameTiming] void clearFrameTimings(); |
+ [RuntimeEnabled=FrameTimingSupport, MeasureAs=PerformanceFrameTiming] void setFrameTimingBufferSize(unsigned long maxSize); |
+ [RuntimeEnabled=FrameTimingSupport] attribute EventHandler onframetimingbufferfull; |
+ |
+ // TODO(philipj): There is no spec for the Memory Info API, see blink-dev: |
+ // https://groups.google.com/a/chromium.org/d/msg/blink-dev/g5YRCGpC9vs/b4OJz71NmPwJ |
+ [Measure] readonly attribute MemoryInfo memory; |
}; |