• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "description": "Tough scheduler latency test cases",
3  "smoothness": {
4    "action": "scroll"
5  },
6  "pages": [
7    {
8      "url": "file://tough_scheduling_cases/simple_text_page.html",
9      "why": "Simple scrolling baseline",
10      "navigate_steps": [
11        { "action": "navigate" },
12        { "action": "set_synthetic_delays" }
13      ]
14    },
15    {
16      "url": "file://tough_scheduling_cases/simple_text_page.html?main_busy",
17      "why": "Simulate oversubscribed main thread",
18      "navigate_steps": [
19        { "action": "navigate" },
20        { "action": "set_synthetic_delays",
21          "delays": {
22            "cc.BeginMainFrame": { "target_duration": 0.008 }
23          }
24        }
25      ]
26    },
27    {
28      "url": "file://tough_scheduling_cases/simple_text_page.html?main_very_busy",
29      "why": "Simulate oversubscribed main thread",
30      "navigate_steps": [
31        { "action": "navigate" },
32        { "action": "set_synthetic_delays",
33          "delays": {
34            "cc.BeginMainFrame": { "target_duration": 0.024 }
35          }
36        }
37      ]
38    },
39    {
40      "url": "file://tough_scheduling_cases/simple_text_page.html?medium_layers",
41      "why": "Simulate a page with a a few graphics layers",
42      "navigate_steps": [
43        { "action": "navigate" },
44        { "action": "set_synthetic_delays",
45          "delays": {
46            "cc.BeginMainFrame": { "target_duration": 0.004 },
47            "cc.DrawAndSwap": { "target_duration": 0.004 },
48            "gpu.SwapBuffers": { "target_duration": 0.004 }
49          }
50        }
51      ]
52    },
53    {
54      "url": "file://tough_scheduling_cases/simple_text_page.html?many_layers",
55      "why": "Simulate a page with many graphics layers",
56      "navigate_steps": [
57        { "action": "navigate" },
58        { "action": "set_synthetic_delays",
59          "delays": {
60            "cc.BeginMainFrame": { "target_duration": 0.012 },
61            "cc.DrawAndSwap": { "target_duration": 0.012 },
62            "gpu.SwapBuffers": { "target_duration": 0.012 }
63          }
64        }
65      ]
66    },
67    {
68      "url": "file://tough_scheduling_cases/simple_text_page.html?medium_raster",
69      "why": "Simulate a page with expensive recording and rasterization",
70      "navigate_steps": [
71        { "action": "navigate" },
72        { "action": "set_synthetic_delays",
73          "delays": {
74            "cc.BeginMainFrame": { "target_duration": 0.004 },
75            "cc.RasterRequiredForActivation": { "target_duration": 0.004 },
76            "gpu.AsyncTexImage": { "target_duration": 0.004 }
77          }
78        }
79      ]
80    },
81    {
82      "url": "file://tough_scheduling_cases/simple_text_page.html?heavy_raster",
83      "why": "Simulate a page with expensive recording and rasterization",
84      "navigate_steps": [
85        { "action": "navigate" },
86        { "action": "set_synthetic_delays",
87          "delays": {
88            "cc.BeginMainFrame": { "target_duration": 0.024 },
89            "cc.RasterRequiredForActivation": { "target_duration": 0.024 },
90            "gpu.AsyncTexImage": { "target_duration": 0.024 }
91          }
92        }
93      ]
94    },
95    {
96      "url": "file://tough_scheduling_cases/touch_handler_scrolling.html",
97      "why": "Touch handler scrolling baseline",
98      "navigate_steps": [
99        { "action": "navigate" },
100        { "action": "set_synthetic_delays" }
101      ]
102    },
103    {
104      "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?medium_handler",
105      "why": "Medium cost touch handler",
106      "navigate_steps": [
107        { "action": "navigate" },
108        { "action": "set_synthetic_delays",
109          "delays": {
110            "blink.HandleInputEvent": { "target_duration": 0.008 }
111          }
112        }
113      ]
114    },
115    {
116      "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?slow_handler",
117      "why": "Slow touch handler",
118      "navigate_steps": [
119        { "action": "navigate" },
120        { "action": "set_synthetic_delays",
121          "delays": {
122            "blink.HandleInputEvent": { "target_duration": 0.024 }
123          }
124        }
125      ]
126    },
127    {
128      "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?janky_handler",
129      "why": "Touch handler that often takes a long time",
130      "navigate_steps": [
131        { "action": "navigate" },
132        { "action": "set_synthetic_delays",
133          "delays": {
134            "blink.HandleInputEvent": { "target_duration": 0.024, "mode": "alternating" }
135          }
136        }
137      ]
138    },
139    {
140      "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?occasionally_janky_handler",
141      "why": "Touch handler that occasionally takes a long time",
142      "navigate_steps": [
143        { "action": "navigate" },
144        { "action": "set_synthetic_delays",
145          "delays": {
146            "blink.HandleInputEvent": { "target_duration": 0.024, "mode": "oneshot" }
147          }
148        }
149      ]
150    },
151    {
152      "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?super_slow_handler",
153      "why": "Super expensive touch handler causes browser to scroll after a timeout",
154      "navigate_steps": [
155        { "action": "navigate" },
156        { "action": "set_synthetic_delays",
157          "delays": {
158            "blink.HandleInputEvent": { "target_duration": 0.2 }
159          }
160        }
161      ]
162    },
163    {
164      "url": "file://tough_scheduling_cases/div_touch_handler.html",
165      "why": "Super expensive touch handler that only occupies a part of the page",
166      "navigate_steps": [
167        { "action": "navigate" },
168        { "action": "set_synthetic_delays",
169          "delays": {
170            "blink.HandleInputEvent": { "target_duration": 0.2 }
171          }
172        }
173      ]
174    },
175    {
176      "url": "file://tough_scheduling_cases/raf.html",
177      "why": "requestAnimationFrame scrolling baseline",
178      "navigate_steps": [
179        { "action": "navigate" },
180        { "action": "set_synthetic_delays" }
181      ]
182    },
183    {
184      "url": "file://tough_scheduling_cases/raf_canvas.html",
185      "why": "Test canvas blocking behavior",
186      "navigate_steps": [
187        { "action": "navigate" },
188        { "action": "set_synthetic_delays" }
189      ]
190    },
191    {
192      "url": "file://tough_scheduling_cases/raf.html?medium_handler",
193      "why": "Test a moderately heavy requestAnimationFrame handler",
194      "navigate_steps": [
195        { "action": "navigate" },
196        { "action": "set_synthetic_delays",
197          "delays": {
198            "cc.BeginMainFrame": { "target_duration": 0.004 },
199            "cc.RasterRequiredForActivation": { "target_duration": 0.004 },
200            "gpu.AsyncTexImage": { "target_duration": 0.004 }
201          }
202        }
203      ]
204    },
205    {
206      "url": "file://tough_scheduling_cases/raf.html?heavy_handler",
207      "why": "Test a moderately heavy requestAnimationFrame handler",
208      "navigate_steps": [
209        { "action": "navigate" },
210        { "action": "set_synthetic_delays",
211          "delays": {
212            "cc.BeginMainFrame": { "target_duration": 0.024 },
213            "cc.RasterRequiredForActivation": { "target_duration": 0.024 },
214            "gpu.AsyncTexImage": { "target_duration": 0.024 }
215          }
216        }
217      ]
218    },
219    {
220      "url": "file://tough_scheduling_cases/raf.html?gpu_bound",
221      "why": "Simulate a heavily GPU bound page",
222      "navigate_steps": [
223        { "action": "navigate" },
224        { "action": "set_synthetic_delays",
225          "delays": {
226            "gpu.SwapBuffers": { "target_duration": 0.1 }
227          }
228        }
229      ]
230    },
231    {
232      "url": "file://tough_scheduling_cases/raf_touch_animation.html",
233      "why": "Stress test for the scheduler",
234      "navigate_steps": [
235        { "action": "navigate" },
236        { "action": "set_synthetic_delays" }
237      ]
238    },
239    {
240      "url": "file://tough_scheduling_cases/raf_touch_animation.html?medium",
241      "why": "Medium stress test for the scheduler",
242      "navigate_steps": [
243        { "action": "navigate" },
244        { "action": "set_synthetic_delays",
245          "delays": {
246            "cc.BeginMainFrame": { "target_duration": 0.004 },
247            "cc.DrawAndSwap": { "target_duration": 0.004 }
248          }
249        }
250      ]
251    },
252    {
253      "url": "file://tough_scheduling_cases/raf_touch_animation.html?heavy",
254      "why": "Heavy stress test for the scheduler",
255      "navigate_steps": [
256        { "action": "navigate" },
257        { "action": "set_synthetic_delays",
258          "delays": {
259            "cc.BeginMainFrame": { "target_duration": 0.012 },
260            "cc.DrawAndSwap": { "target_duration": 0.012 }
261          }
262        }
263      ]
264    }
265  ]
266}
267