Commit 7f529cc5 authored by Yutaka Hirano's avatar Yutaka Hirano Committed by Commit Bot

Add tests for ImageBitmap serialization/transfer use counter

This is a follow-up for https://crrev.com/c/1852346.

Bug: 1013087
Change-Id: Icd460a3d1df6818e84624410ca6d9f4e315902d3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1855622
Auto-Submit: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: default avatarHiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#705027}
parent e35c677b
<!DOCTYPE html>
<html>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
const ORIGIN_CLEAN_URL = 'http://127.0.0.1:8000/security/resources/abe.png'
const NON_ORIGIN_CLEAN_URL = 'http://localhost:8000/security/resources/abe.png'
async function createImageBitmapFor(url) {
const img = document.createElement('img');
img.src = url;
try {
await new Promise((resolve, reject) => {
img.addEventListener('load', resolve, {once: true});
img.addEventListener('error', reject, {once: true});
});
} finally {
img.remove();
}
return createImageBitmap(img);
}
promise_test(async (t) => {
const FEATURE = 3056;
const bitmap = await createImageBitmapFor(ORIGIN_CLEAN_URL);
assert_false(internals.isUseCounted(document, FEATURE));
postMessage(bitmap, '*');
assert_true(internals.isUseCounted(document, FEATURE));
}, 'origin-clean, serialization');
promise_test(async (t) => {
const FEATURE = 3057;
const bitmap = await createImageBitmapFor(NON_ORIGIN_CLEAN_URL);
assert_false(internals.isUseCounted(document, FEATURE));
postMessage(bitmap, '*');
assert_true(internals.isUseCounted(document, FEATURE));
}, 'non-origin-clean, serialization');
promise_test(async (t) => {
const FEATURE = 3058;
const bitmap = await createImageBitmapFor(ORIGIN_CLEAN_URL);
assert_false(internals.isUseCounted(document, FEATURE));
postMessage(bitmap, '*', [bitmap]);
assert_true(internals.isUseCounted(document, FEATURE));
}, 'origin-clean, transfer');
promise_test(async (t) => {
const FEATURE = 3059;
const bitmap = await createImageBitmapFor(NON_ORIGIN_CLEAN_URL);
assert_false(internals.isUseCounted(document, FEATURE));
postMessage(bitmap, '*', [bitmap]);
assert_true(internals.isUseCounted(document, FEATURE));
}, 'non-origin-clean, transfer');
</script>
</body>
</html>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment