1. Enforce receiver checks on IDL interfaces. 2. Avoid prototype manipulation on constructing IDL interfaces with `ReflectConstruct`. 3. `defineReplaceableAttribute` should create IDL getter/setter. 4. Corrected `PerformanceResourceTiming` to inherit the public interface `PerformanceEntry` instead of the internal interface `InternalPerformanceResourceTiming`. 5. `detail` is not a specified attribute on `PerfomanceEntry`. Node.js specific extensions are moved to a subclass of `PerformanceEntry` as `PerformanceNodeEntry`. PR-URL: https://github.com/nodejs/node/pull/44483 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Minwoo Jung <nodecorelab@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
35 lines
2 KiB
HTML
35 lines
2 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<title>This test validates the value of encodedBodySize in certain situations.</title>
|
|
<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
|
|
<script>
|
|
function test_resource_timing_for_content_length({actualContentLength, lengthHeader}, title) {
|
|
promise_test(async t => {
|
|
const content = new Array(actualContentLength).fill('x').join('')
|
|
const url = `resources/resource-timing-content-length.py?content=${content}&length=${lengthHeader}`
|
|
fetch(url)
|
|
const entry = await new Promise(resolve => new PerformanceObserver((entryList, observer) => {
|
|
observer.disconnect()
|
|
resolve(entryList.getEntries()[0])
|
|
}).observe({entryTypes: ['resource']}))
|
|
|
|
const expectedContentLength = Number.isInteger(lengthHeader) ? Math.min(actualContentLength, lengthHeader) : actualContentLength
|
|
assert_equals(entry.encodedBodySize, expectedContentLength)
|
|
}, title);
|
|
}
|
|
|
|
test_resource_timing_for_content_length({actualContentLength: 3, lengthHeader: 'auto'},
|
|
"encodedBodySize should be equal to the actual byte size of the content")
|
|
test_resource_timing_for_content_length({actualContentLength: 13, lengthHeader: 'none'},
|
|
"encodedBodySize should be equal to the actual byte size of the content when no header present")
|
|
test_resource_timing_for_content_length({actualContentLength: 7, lengthHeader: 3},
|
|
"encodedBodySize should be equal to the actual byte size of the content when header value is lower than actual content")
|
|
test_resource_timing_for_content_length({actualContentLength: 8, lengthHeader: 40},
|
|
"encodedBodySize should be equal to the actual byte size of the content when header value is higher than actual content")
|
|
</script>
|
|
</html>
|