| { |
| "description": "Tough scheduler latency test cases", |
| "smoothness": { |
| "action": "scroll" |
| }, |
| "pages": [ |
| { |
| "url": "file://tough_scheduling_cases/simple_text_page.html", |
| "why": "Simple scrolling baseline", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays" } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/simple_text_page.html?main_busy", |
| "why": "Simulate oversubscribed main thread", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "cc.BeginMainFrame": { "target_duration": 0.008 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/simple_text_page.html?main_very_busy", |
| "why": "Simulate oversubscribed main thread", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "cc.BeginMainFrame": { "target_duration": 0.024 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/simple_text_page.html?medium_layers", |
| "why": "Simulate a page with a a few graphics layers", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "cc.BeginMainFrame": { "target_duration": 0.004 }, |
| "cc.DrawAndSwap": { "target_duration": 0.004 }, |
| "gpu.SwapBuffers": { "target_duration": 0.004 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/simple_text_page.html?many_layers", |
| "why": "Simulate a page with many graphics layers", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "cc.BeginMainFrame": { "target_duration": 0.012 }, |
| "cc.DrawAndSwap": { "target_duration": 0.012 }, |
| "gpu.SwapBuffers": { "target_duration": 0.012 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/simple_text_page.html?medium_raster", |
| "why": "Simulate a page with expensive recording and rasterization", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "cc.BeginMainFrame": { "target_duration": 0.004 }, |
| "cc.RasterRequiredForActivation": { "target_duration": 0.004 }, |
| "gpu.AsyncTexImage": { "target_duration": 0.004 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/simple_text_page.html?heavy_raster", |
| "why": "Simulate a page with expensive recording and rasterization", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "cc.BeginMainFrame": { "target_duration": 0.024 }, |
| "cc.RasterRequiredForActivation": { "target_duration": 0.024 }, |
| "gpu.AsyncTexImage": { "target_duration": 0.024 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/touch_handler_scrolling.html", |
| "why": "Touch handler scrolling baseline", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays" } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?medium_handler", |
| "why": "Medium cost touch handler", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "blink.HandleInputEvent": { "target_duration": 0.008 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?slow_handler", |
| "why": "Slow touch handler", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "blink.HandleInputEvent": { "target_duration": 0.024 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?janky_handler", |
| "why": "Touch handler that often takes a long time", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "blink.HandleInputEvent": { "target_duration": 0.024, "mode": "alternating" } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?occasionally_janky_handler", |
| "why": "Touch handler that occasionally takes a long time", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "blink.HandleInputEvent": { "target_duration": 0.024, "mode": "oneshot" } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?super_slow_handler", |
| "why": "Super expensive touch handler causes browser to scroll after a timeout", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "blink.HandleInputEvent": { "target_duration": 0.2 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/div_touch_handler.html", |
| "why": "Super expensive touch handler that only occupies a part of the page", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "blink.HandleInputEvent": { "target_duration": 0.2 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/raf.html", |
| "why": "requestAnimationFrame scrolling baseline", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays" } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/raf_canvas.html", |
| "why": "Test canvas blocking behavior", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays" } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/raf.html?medium_handler", |
| "why": "Test a moderately heavy requestAnimationFrame handler", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "cc.BeginMainFrame": { "target_duration": 0.004 }, |
| "cc.RasterRequiredForActivation": { "target_duration": 0.004 }, |
| "gpu.AsyncTexImage": { "target_duration": 0.004 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/raf.html?heavy_handler", |
| "why": "Test a moderately heavy requestAnimationFrame handler", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "cc.BeginMainFrame": { "target_duration": 0.024 }, |
| "cc.RasterRequiredForActivation": { "target_duration": 0.024 }, |
| "gpu.AsyncTexImage": { "target_duration": 0.024 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/raf.html?gpu_bound", |
| "why": "Simulate a heavily GPU bound page", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "gpu.SwapBuffers": { "target_duration": 0.1 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/raf_touch_animation.html", |
| "why": "Stress test for the scheduler", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays" } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/raf_touch_animation.html?medium", |
| "why": "Medium stress test for the scheduler", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "cc.BeginMainFrame": { "target_duration": 0.004 }, |
| "cc.DrawAndSwap": { "target_duration": 0.004 } |
| } |
| } |
| ] |
| }, |
| { |
| "url": "file://tough_scheduling_cases/raf_touch_animation.html?heavy", |
| "why": "Heavy stress test for the scheduler", |
| "navigate_steps": [ |
| { "action": "navigate" }, |
| { "action": "set_synthetic_delays", |
| "delays": { |
| "cc.BeginMainFrame": { "target_duration": 0.012 }, |
| "cc.DrawAndSwap": { "target_duration": 0.012 } |
| } |
| } |
| ] |
| } |
| ] |
| } |