chrome_test_utils.html revision 46b43bff003ceda46cf9a5d40a47f7674996d2e0
1<!DOCTYPE html> 2<!-- 3Copyright (c) 2015 The Chromium Authors. All rights reserved. 4Use of this source code is governed by a BSD-style license that can be 5found in the LICENSE file. 6--> 7<link rel="import" href="/tracing/base/base.html"> 8<link rel="import" href="/tracing/core/test_utils.html"> 9<link rel="import" href="/tracing/extras/chrome/chrome_process_helper.html"> 10<link rel="import" href="/tracing/model/model.html"> 11 12<script> 13'use strict'; 14 15/** 16 * @fileoverview Base class for trace data Auditors. 17 */ 18tr.exportTo('tr.e.chrome', function() { 19 function ChromeTestUtils() { 20 } 21 22 ChromeTestUtils.newChromeModel = function(customizeModelCallback) { 23 return tr.c.TestUtils.newModel(function(model) { 24 console.log(model); 25 model.browserProcess = model.getOrCreateProcess(1); 26 model.browserMain = model.browserProcess.getOrCreateThread(2); 27 model.browserMain.name = 'CrBrowserMain'; 28 29 model.rendererProcess = model.getOrCreateProcess(2); 30 model.rendererMain = model.rendererProcess.getOrCreateThread(3); 31 model.rendererMain.name = 'CrRendererMain'; 32 33 model.rendererCompositor = model.rendererProcess.getOrCreateThread(4); 34 model.rendererCompositor.name = 'Compositor'; 35 36 model.rasterWorker1 = model.rendererProcess.getOrCreateThread(5); 37 model.rasterWorker1.name = 'CompositorTileWorker1'; 38 39 customizeModelCallback(model); 40 }); 41 } 42 43 ChromeTestUtils.addEvent = function(thread, dict) { 44 var slice = tr.c.TestUtils.newAsyncSliceEx(dict); 45 thread.asyncSliceGroup.push(slice); 46 return slice; 47 } 48 49 ChromeTestUtils.addInputEvent = function(model, typeName, dict) { 50 dict.title = 'InputLatency::' + typeName; 51 dict.isTopLevel = (dict.isTopLevel === undefined); 52 dict.startThread = model.browserMain; 53 var slice = tr.c.TestUtils.newAsyncSliceEx(dict); 54 model.rendererMain.asyncSliceGroup.push(slice); 55 return slice; 56 } 57 58 ChromeTestUtils.addFlingAnimationEvent = function(model, dict) { 59 dict.title = 'InputHandlerProxy::HandleGestureFling::started'; 60 var slice = tr.c.TestUtils.newAsyncSliceEx(dict); 61 model.rendererCompositor.asyncSliceGroup.push(slice); 62 return slice; 63 } 64 65 ChromeTestUtils.addFrameEvent = function(model, dict) { 66 dict.title = tr.e.audits.IMPL_RENDERING_STATS; 67 dict.type = tr.model.ThreadSlice; 68 var slice = tr.c.TestUtils.newSliceEx(dict); 69 model.rendererMain.asyncSliceGroup.push(slice); 70 return slice; 71 } 72 73 ChromeTestUtils.addLoadingEvent = function(model, dict) { 74 dict.title = 'WebContentsImpl Loading'; 75 var slice = tr.c.TestUtils.newAsyncSliceEx(dict); 76 model.rendererMain.asyncSliceGroup.push(slice); 77 return slice; 78 } 79 80 ChromeTestUtils.addNetworkEvent = function(model, dict) { 81 dict.cat = 'netlog'; 82 dict.title = 'Generic Network event'; 83 var slice = tr.c.TestUtils.newAsyncSliceEx(dict); 84 model.browserMain.asyncSliceGroup.push(slice); 85 return slice; 86 } 87 88 ChromeTestUtils.addCommitLoadEvent = function(model, dict) { 89 dict.title = 'RenderFrameImpl::didCommitProvisionalLoad'; 90 var slice = tr.c.TestUtils.newAsyncSliceEx(dict); 91 model.rendererMain.asyncSliceGroup.push(slice); 92 return slice; 93 } 94 95 ChromeTestUtils.addStartProvisionalLoadEvent = function(model, dict) { 96 dict.title = 'RenderFrameImpl::didStartProvisionalLoad'; 97 var slice = tr.c.TestUtils.newAsyncSliceEx(dict); 98 model.rendererMain.asyncSliceGroup.push(slice); 99 return slice; 100 } 101 102 ChromeTestUtils.addFailProvisionalLoadEvent = function(model, dict) { 103 dict.title = 'RenderFrameImpl::didFailProvisionalLoad'; 104 var slice = tr.c.TestUtils.newAsyncSliceEx(dict); 105 model.rendererMain.asyncSliceGroup.push(slice); 106 return slice; 107 } 108 109 ChromeTestUtils.addMainRunnerEvent = function(model, dict) { 110 dict.title = 'ContentMainRunnerImpl::Initialize'; 111 var slice = tr.c.TestUtils.newAsyncSliceEx(dict); 112 model.rendererMain.asyncSliceGroup.push(slice); 113 } 114 115 return { 116 ChromeTestUtils: ChromeTestUtils 117 }; 118}); 119</script> 120