chromium/third_party/blink/perf_tests/svg/Cowboy_transform.html

<!DOCTYPE html>
<div>
    <object id="svg-content" data="resources/Cowboy.svg" width="400px" height="400px" type="image/svg+xml">
    </object>
</div>
<script src="../resources/runner.js"></script>
<script>
var svgContent;
var startTime;
var loop_iterations = 5;
var ANIMATION_ITERATIONS = 5;
var animation_loop;
var offset;
var state;
var delta;
var results = [];
var now = function(){
    return window.performance ? performance.now() : Date.now();
};
var init = function(){
    animation_loop = ANIMATION_ITERATIONS;
    offset = 0;
    state = 'zoomin';
    delta = 1;
    startTime = now();
    requestAnimationFrame(step);
};
var step = function(){
    animation_loop--;
    if (animation_loop==0){
        animation_loop = ANIMATION_ITERATIONS;
        switch(state){
            case 'zoomin':
                state='scroll';
                delta = 0;
                break;
            case 'scroll':
                state='zoomout';
                delta = 2;
                break;
            case 'zoomout':
                loop_iterations--;
                results.push(now()-startTime);
                if (loop_iterations>0)
                    init();
                else{
                    PerfTestRunner.logStatistics(results, 'ms', "Time:");
                    if (testRunner) testRunner.notifyDone();
                }
                return;
        }
    }
    switch(state){
        case 'zoomin':
            delta += 0.2;
            svgContent.style.transform='matrix('+delta+',0,0,'+delta+',0,0)';
            break;
        case 'scroll':
            if (animation_loop>ANIMATION_ITERATIONS/2) delta += 80;
            else delta -= 80;
            svgContent.style.transform='matrix(2,0,0,2,'+delta+',0)';
            break;
        case 'zoomout':
            delta -= 0.2;
            svgContent.style.transform='matrix('+delta+',0,0,'+delta+',0,0)';
            break;
    }
    requestAnimationFrame(step);
};
window.onload = function(){
    svgContent = document.getElementById('svg-content').contentDocument.documentElement;
    init();
}
</script>