<!DOCTYPE html>
<style>
.greenbox {
width: 100px;
height: 100px;
background-color: #00ff00;
}
</style>
<script src="/web-animations/testcommon.js"></script>
<script src="../common.js"></script>
<script id="iframe_worklet" type="text/worklet">
registerAnimator("iframe_animator", class {
animate(currentTime, effect) {
effect.localTime = 600;
}
});
registerAnimator("duplicate_animator", class {
animate(currentTime, effect) {
effect.localTime = 800;
}
});
</script>
<div id="iframe_target" class="greenbox"></div>
<script>
runInAnimationWorklet(
document.getElementById('iframe_worklet').textContent
).then(_ => {
const target = document.getElementById('iframe_target');
// Only create an animation for iframe_animator.
const effect = new KeyframeEffect(target, [{ opacity: 0 }], { duration: 1000 });
const animation = new WorkletAnimation('iframe_animator', effect);
animation.play();
// wait until local times are synced back to the main thread.
waitForAnimationFrameWithCondition(_ => {
return getComputedStyle(target).opacity != '1';
}).then(_ => {
window.parent.postMessage(getComputedStyle(target).opacity, '*');
});
});
</script>