OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import random | 5 import random |
6 import unittest | 6 import unittest |
7 | 7 |
8 from metrics.rendering_stats import UI_COMP_NAME, BEGIN_COMP_NAME, END_COMP_NAME | 8 from metrics.rendering_stats import UI_COMP_NAME, BEGIN_COMP_NAME, END_COMP_NAME |
9 from metrics.rendering_stats import GetScrollInputLatencyEvents | 9 from metrics.rendering_stats import GetScrollInputLatencyEvents |
10 from metrics.rendering_stats import ComputeMouseWheelScrollLatency | 10 from metrics.rendering_stats import ComputeMouseWheelScrollLatency |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 # Create 10 main and impl rendering stats events for Action A. | 242 # Create 10 main and impl rendering stats events for Action A. |
243 timer.Advance() | 243 timer.Advance() |
244 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') | 244 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') |
245 ref_stats.AppendNewRange() | 245 ref_stats.AppendNewRange() |
246 for i in xrange(0, 10): | 246 for i in xrange(0, 10): |
247 first = (i == 0) | 247 first = (i == 0) |
248 AddMainThreadRenderingStats(timer, renderer_main, first, None) | 248 AddMainThreadRenderingStats(timer, renderer_main, first, None) |
249 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) | 249 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) |
250 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats) | 250 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats) |
251 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats) | 251 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats) |
| 252 timer.Advance() |
252 renderer_main.EndSlice(timer.Get()) | 253 renderer_main.EndSlice(timer.Get()) |
253 | 254 |
254 # Create 5 main and impl rendering stats events not within any action. | 255 # Create 5 main and impl rendering stats events not within any action. |
255 for i in xrange(0, 5): | 256 for i in xrange(0, 5): |
256 first = (i == 0) | 257 first = (i == 0) |
257 AddMainThreadRenderingStats(timer, renderer_main, first, None) | 258 AddMainThreadRenderingStats(timer, renderer_main, first, None) |
258 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) | 259 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) |
259 AddMainThreadRenderingStats(timer, browser_main, first, None) | 260 AddMainThreadRenderingStats(timer, browser_main, first, None) |
260 AddImplThreadRenderingStats(timer, browser_compositor, first, None) | 261 AddImplThreadRenderingStats(timer, browser_compositor, first, None) |
261 | 262 |
262 # Create 10 main and impl rendering stats events for Action B. | 263 # Create 10 main and impl rendering stats events for Action B. |
263 timer.Advance() | 264 timer.Advance() |
264 renderer_main.BeginSlice('webkit.console', 'ActionB', timer.Get(), '') | 265 renderer_main.BeginSlice('webkit.console', 'ActionB', timer.Get(), '') |
265 ref_stats.AppendNewRange() | 266 ref_stats.AppendNewRange() |
266 for i in xrange(0, 10): | 267 for i in xrange(0, 10): |
267 first = (i == 0) | 268 first = (i == 0) |
268 AddMainThreadRenderingStats(timer, renderer_main, first, None) | 269 AddMainThreadRenderingStats(timer, renderer_main, first, None) |
269 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) | 270 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) |
270 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats) | 271 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats) |
271 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats) | 272 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats) |
| 273 timer.Advance() |
272 renderer_main.EndSlice(timer.Get()) | 274 renderer_main.EndSlice(timer.Get()) |
273 | 275 |
274 # Create 10 main and impl rendering stats events for Action A. | 276 # Create 10 main and impl rendering stats events for Action A. |
275 timer.Advance() | 277 timer.Advance() |
276 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') | 278 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') |
277 ref_stats.AppendNewRange() | 279 ref_stats.AppendNewRange() |
278 for i in xrange(0, 10): | 280 for i in xrange(0, 10): |
279 first = (i == 0) | 281 first = (i == 0) |
280 AddMainThreadRenderingStats(timer, renderer_main, first, None) | 282 AddMainThreadRenderingStats(timer, renderer_main, first, None) |
281 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) | 283 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) |
282 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats) | 284 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats) |
283 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats) | 285 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats) |
| 286 timer.Advance() |
284 renderer_main.EndSlice(timer.Get()) | 287 renderer_main.EndSlice(timer.Get()) |
285 | 288 |
286 browser.FinalizeImport() | 289 browser.FinalizeImport() |
287 renderer.FinalizeImport() | 290 renderer.FinalizeImport() |
288 | 291 |
289 timeline_markers = timeline.FindTimelineMarkers( | 292 timeline_markers = timeline.FindTimelineMarkers( |
290 ['ActionA', 'ActionB', 'ActionA']) | 293 ['ActionA', 'ActionB', 'ActionA']) |
291 timeline_ranges = [ timeline_bounds.Bounds.CreateFromEvent(marker) | 294 timeline_ranges = [ timeline_bounds.Bounds.CreateFromEvent(marker) |
292 for marker in timeline_markers ] | 295 for marker in timeline_markers ] |
293 stats = RenderingStats(renderer, browser, timeline_ranges) | 296 stats = RenderingStats(renderer, browser, timeline_ranges) |
(...skipping 29 matching lines...) Expand all Loading... |
323 # Create 10 input latency stats events for Action A. | 326 # Create 10 input latency stats events for Action A. |
324 timer.Advance() | 327 timer.Advance() |
325 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') | 328 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') |
326 for _ in xrange(0, 10): | 329 for _ in xrange(0, 10): |
327 AddInputLatencyStats(timer, 'MouseWheel', browser_main, | 330 AddInputLatencyStats(timer, 'MouseWheel', browser_main, |
328 renderer_main, ref_latency_stats) | 331 renderer_main, ref_latency_stats) |
329 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, | 332 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, |
330 renderer_main, ref_latency_stats) | 333 renderer_main, ref_latency_stats) |
331 AddInputLatencyStats(timer, 'TouchMove', browser_main, | 334 AddInputLatencyStats(timer, 'TouchMove', browser_main, |
332 renderer_main, ref_latency_stats) | 335 renderer_main, ref_latency_stats) |
| 336 timer.Advance() |
333 renderer_main.EndSlice(timer.Get()) | 337 renderer_main.EndSlice(timer.Get()) |
334 | 338 |
335 # Create 5 input latency stats events not within any action. | 339 # Create 5 input latency stats events not within any action. |
336 for _ in xrange(0, 5): | 340 for _ in xrange(0, 5): |
337 AddInputLatencyStats(timer, 'MouseWheel', browser_main, | 341 AddInputLatencyStats(timer, 'MouseWheel', browser_main, |
338 renderer_main, None) | 342 renderer_main, None) |
339 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, | 343 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, |
340 renderer_main, None) | 344 renderer_main, None) |
341 AddInputLatencyStats(timer, 'TouchMove', browser_main, | 345 AddInputLatencyStats(timer, 'TouchMove', browser_main, |
342 renderer_main, None) | 346 renderer_main, None) |
343 | 347 |
344 # Create 10 input latency stats events for Action B. | 348 # Create 10 input latency stats events for Action B. |
345 timer.Advance() | 349 timer.Advance() |
346 renderer_main.BeginSlice('webkit.console', 'ActionB', timer.Get(), '') | 350 renderer_main.BeginSlice('webkit.console', 'ActionB', timer.Get(), '') |
347 for _ in xrange(0, 10): | 351 for _ in xrange(0, 10): |
348 AddInputLatencyStats(timer, 'MouseWheel', browser_main, | 352 AddInputLatencyStats(timer, 'MouseWheel', browser_main, |
349 renderer_main, ref_latency_stats) | 353 renderer_main, ref_latency_stats) |
350 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, | 354 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, |
351 renderer_main, ref_latency_stats) | 355 renderer_main, ref_latency_stats) |
352 AddInputLatencyStats(timer, 'TouchMove', browser_main, | 356 AddInputLatencyStats(timer, 'TouchMove', browser_main, |
353 renderer_main, ref_latency_stats) | 357 renderer_main, ref_latency_stats) |
| 358 timer.Advance() |
354 renderer_main.EndSlice(timer.Get()) | 359 renderer_main.EndSlice(timer.Get()) |
355 | 360 |
356 # Create 10 input latency stats events for Action A. | 361 # Create 10 input latency stats events for Action A. |
357 timer.Advance() | 362 timer.Advance() |
358 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') | 363 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') |
359 for _ in xrange(0, 10): | 364 for _ in xrange(0, 10): |
360 AddInputLatencyStats(timer, 'MouseWheel', browser_main, | 365 AddInputLatencyStats(timer, 'MouseWheel', browser_main, |
361 renderer_main, ref_latency_stats) | 366 renderer_main, ref_latency_stats) |
362 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, | 367 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, |
363 renderer_main, ref_latency_stats) | 368 renderer_main, ref_latency_stats) |
364 AddInputLatencyStats(timer, 'TouchMove', browser_main, | 369 AddInputLatencyStats(timer, 'TouchMove', browser_main, |
365 renderer_main, ref_latency_stats) | 370 renderer_main, ref_latency_stats) |
| 371 timer.Advance() |
366 renderer_main.EndSlice(timer.Get()) | 372 renderer_main.EndSlice(timer.Get()) |
367 | 373 |
368 browser.FinalizeImport() | 374 browser.FinalizeImport() |
369 renderer.FinalizeImport() | 375 renderer.FinalizeImport() |
370 | 376 |
371 mouse_wheel_scroll_events = [] | 377 mouse_wheel_scroll_events = [] |
372 touch_scroll_events = [] | 378 touch_scroll_events = [] |
373 js_touch_scroll_events = [] | 379 js_touch_scroll_events = [] |
374 | 380 |
375 timeline_markers = timeline.FindTimelineMarkers( | 381 timeline_markers = timeline.FindTimelineMarkers( |
(...skipping 17 matching lines...) Expand all Loading... |
393 self.assertEquals(touch_scroll_events, | 399 self.assertEquals(touch_scroll_events, |
394 ref_latency_stats.touch_scroll_events) | 400 ref_latency_stats.touch_scroll_events) |
395 self.assertEquals(js_touch_scroll_events, | 401 self.assertEquals(js_touch_scroll_events, |
396 ref_latency_stats.js_touch_scroll_events) | 402 ref_latency_stats.js_touch_scroll_events) |
397 self.assertEquals(ComputeMouseWheelScrollLatency(mouse_wheel_scroll_events), | 403 self.assertEquals(ComputeMouseWheelScrollLatency(mouse_wheel_scroll_events), |
398 ref_latency_stats.mouse_wheel_scroll_latency) | 404 ref_latency_stats.mouse_wheel_scroll_latency) |
399 self.assertEquals(ComputeTouchScrollLatency(touch_scroll_events), | 405 self.assertEquals(ComputeTouchScrollLatency(touch_scroll_events), |
400 ref_latency_stats.touch_scroll_latency) | 406 ref_latency_stats.touch_scroll_latency) |
401 self.assertEquals(ComputeTouchScrollLatency(js_touch_scroll_events), | 407 self.assertEquals(ComputeTouchScrollLatency(js_touch_scroll_events), |
402 ref_latency_stats.js_touch_scroll_latency) | 408 ref_latency_stats.js_touch_scroll_latency) |
OLD | NEW |