chromium/third_party/blink/web_tests/external/wpt/css/css-view-transitions/nested/resources/compute-test.js

failIfNot(document.startViewTransition, "Missing document.startViewTransition");

function add_rule() {
    const style = document.createElement("style");
    style.innerHTML = "@view-transition { navigation: auto }";
    document.head.append(style);
}

const mode = new URLSearchParams(location.search).get("vtmode");
if (mode === "crossdoc") {
    onload = () => {
        const url = new URL(location.href);
        url.searchParams.set("vtmode", "crossdoc-newpage");
        location.replace(url.href);
    };
    add_rule();
} else if (mode === "crossdoc-newpage") {
    document.documentElement.classList.add("vt-new");
    add_rule();
    takeScreenshot();
} else {
    onload = async() => {
        const transition = document.startViewTransition(() => {
            document.documentElement.classList.add("vt-new");
        });
        transition.finished.then(() => {
            document.documentElement.classList.remove("vt-new");
        });
        transition.ready.then(() => takeScreenshot());
    }
}