mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1181038 - Add performance timing worker. r=jgraham
This adds the file and fixes the path to make the test run. We do not support performance timing on workers yet. I filed Bug 1203749 for that. Update web-platform-tests expected data
This commit is contained in:
parent
39992da3c8
commit
4486a197c7
@ -1,5 +1,5 @@
|
||||
[performance-timeline.https.html]
|
||||
type: testharness
|
||||
[Test Performance Timeline API in Service Worker]
|
||||
[Resource Timing]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
<script>
|
||||
|
||||
service_worker_test(
|
||||
'../workers/resources/performance-timeline-worker.js',
|
||||
'resources/performance-timeline-worker.js',
|
||||
'Test Performance Timeline API in Service Worker');
|
||||
|
||||
</script>
|
||||
|
@ -0,0 +1 @@
|
||||
Hello world
|
@ -0,0 +1,56 @@
|
||||
importScripts('/resources/testharness.js');
|
||||
|
||||
promise_test(function(test) {
|
||||
var durationMsec = 100;
|
||||
return new Promise(function(resolve) {
|
||||
performance.mark('startMark');
|
||||
setTimeout(resolve, durationMsec);
|
||||
}).then(function() {
|
||||
performance.mark('endMark');
|
||||
performance.measure('measure', 'startMark', 'endMark');
|
||||
var startMark = performance.getEntriesByName('startMark')[0];
|
||||
var endMark = performance.getEntriesByName('endMark')[0];
|
||||
var measure = performance.getEntriesByType('measure')[0];
|
||||
assert_equals(measure.startTime, startMark.startTime);
|
||||
assert_approx_equals(endMark.startTime - startMark.startTime,
|
||||
measure.duration, 0.001);
|
||||
//XXXnsm: Timers aren't always precise. on treeherder sometimes the
|
||||
//measured duration is like 99.5 something. Let's just measure the
|
||||
//ballpark.
|
||||
assert_greater_than(measure.duration, durationMsec - 1);
|
||||
assert_equals(performance.getEntriesByType('mark').length, 2);
|
||||
assert_equals(performance.getEntriesByType('measure').length, 1);
|
||||
performance.clearMarks('startMark');
|
||||
performance.clearMeasures('measure');
|
||||
assert_equals(performance.getEntriesByType('mark').length, 1);
|
||||
assert_equals(performance.getEntriesByType('measure').length, 0);
|
||||
});
|
||||
}, 'User Timing');
|
||||
|
||||
promise_test(function(test) {
|
||||
return fetch('dummy.txt')
|
||||
.then(function(resp) {
|
||||
return resp.text();
|
||||
})
|
||||
.then(function(text) {
|
||||
var expectedResources = ['testharness.js', 'dummy.txt'];
|
||||
assert_equals(performance.getEntriesByType('resource').length, expectedResources.length);
|
||||
for (var i = 0; i < expectedResources.length; i++) {
|
||||
var entry = performance.getEntriesByType('resource')[i];
|
||||
assert_true(entry.name.endsWith(expectedResources[i]));
|
||||
assert_equals(entry.workerStart, 0);
|
||||
assert_greater_than(entry.startTime, 0);
|
||||
assert_greater_than(entry.responseEnd, entry.startTime);
|
||||
}
|
||||
return new Promise(function(resolve) {
|
||||
performance.onresourcetimingbufferfull = resolve;
|
||||
performance.setResourceTimingBufferSize(expectedResources.length);
|
||||
});
|
||||
})
|
||||
.then(function() {
|
||||
performance.clearResourceTimings();
|
||||
assert_equals(performance.getEntriesByType('resource').length, 0);
|
||||
})
|
||||
}, 'Resource Timing');
|
||||
|
||||
done();
|
Loading…
Reference in New Issue
Block a user