blob: 5ff273daa34c57ffc15f893c7acfa34586dc9ef8 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2015 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<link rel="import" href="/tracing/base/base.html">
<link rel="import" href="/tracing/core/test_utils.html">
<link rel="import" href="/tracing/model/model.html">
<script>
'use strict';
/**
* @fileoverview Base class for trace data Auditors.
*/
tr.exportTo('tr.e.chrome', function() {
function ChromeTestUtils() {
}
ChromeTestUtils.newChromeModel = function(customizeModelCallback) {
return tr.c.TestUtils.newModel(function(model) {
model.browserProcess = model.getOrCreateProcess(1);
model.browserMain = model.browserProcess.getOrCreateThread(2);
model.browserMain.name = 'CrBrowserMain';
model.rendererProcess = model.getOrCreateProcess(2);
model.rendererMain = model.rendererProcess.getOrCreateThread(3);
model.rendererMain.name = 'CrRendererMain';
model.rendererCompositor = model.rendererProcess.getOrCreateThread(4);
model.rendererCompositor.name = 'Compositor';
model.rasterWorker1 = model.rendererProcess.getOrCreateThread(5);
model.rasterWorker1.name = 'CompositorTileWorker1';
customizeModelCallback(model);
});
};
ChromeTestUtils.addEvent = function(thread, dict) {
var slice = tr.c.TestUtils.newAsyncSliceEx(dict);
thread.asyncSliceGroup.push(slice);
return slice;
};
ChromeTestUtils.addNavigationStartEvent = function(model, dict) {
dict.title = 'NavigationTiming navigationStart';
var event = tr.c.TestUtils.newInstantEvent(dict);
model.instantEvents.push(event);
return event;
};
ChromeTestUtils.addFirstContentfulPaintEvent = function(model, dict) {
dict.title = 'firstContentfulPaint';
var event = tr.c.TestUtils.newInstantEvent(dict);
model.instantEvents.push(event);
return event;
};
ChromeTestUtils.addInputEvent = function(model, typeName, dict) {
dict.title = 'InputLatency::' + typeName;
dict.isTopLevel = (dict.isTopLevel === undefined);
dict.startThread = model.browserMain;
var slice = tr.c.TestUtils.newAsyncSliceEx(dict);
model.browserMain.asyncSliceGroup.push(slice);
return slice;
};
ChromeTestUtils.addFlingAnimationEvent = function(model, dict) {
dict.title = 'InputHandlerProxy::HandleGestureFling::started';
var slice = tr.c.TestUtils.newAsyncSliceEx(dict);
model.rendererCompositor.asyncSliceGroup.push(slice);
return slice;
};
ChromeTestUtils.addRenderingEvent = function(model, dict) {
dict.title = dict.title || 'DummyEvent';
dict.type = tr.model.ThreadSlice;
var slice = tr.c.TestUtils.newSliceEx(dict);
model.rendererMain.sliceGroup.pushSlice(slice);
return slice;
};
ChromeTestUtils.addFrameEvent = function(model, dict) {
dict.title = tr.model.helpers.IMPL_RENDERING_STATS;
dict.type = tr.model.ThreadSlice;
var slice = tr.c.TestUtils.newSliceEx(dict);
model.rendererMain.asyncSliceGroup.push(slice);
return slice;
};
ChromeTestUtils.addLoadingEvent = function(model, dict) {
dict.title = 'WebContentsImpl Loading';
var slice = tr.c.TestUtils.newAsyncSliceEx(dict);
model.rendererMain.asyncSliceGroup.push(slice);
return slice;
};
ChromeTestUtils.addNetworkEvent = function(model, dict) {
dict.cat = 'netlog';
dict.title = 'Generic Network event';
var slice = tr.c.TestUtils.newAsyncSliceEx(dict);
model.browserMain.asyncSliceGroup.push(slice);
return slice;
};
ChromeTestUtils.addCommitLoadEvent = function(model, dict) {
dict.title = 'RenderFrameImpl::didCommitProvisionalLoad';
var slice = tr.c.TestUtils.newAsyncSliceEx(dict);
model.rendererMain.sliceGroup.pushSlice(slice);
return slice;
};
ChromeTestUtils.addCreateChildFrameEvent = function(model, dict) {
dict.title = 'RenderFrameImpl::createChildFrame';
var slice = tr.c.TestUtils.newAsyncSliceEx(dict);
model.rendererMain.sliceGroup.pushSlice(slice);
return slice;
};
ChromeTestUtils.addStartProvisionalLoadEvent = function(model, dict) {
dict.title = 'RenderFrameImpl::didStartProvisionalLoad';
var slice = tr.c.TestUtils.newAsyncSliceEx(dict);
model.rendererMain.sliceGroup.pushSlice(slice);
return slice;
};
ChromeTestUtils.addFailProvisionalLoadEvent = function(model, dict) {
dict.title = 'RenderFrameImpl::didFailProvisionalLoad';
var slice = tr.c.TestUtils.newAsyncSliceEx(dict);
model.rendererMain.sliceGroup.pushSlice(slice);
return slice;
};
ChromeTestUtils.addFinishLoadEvent = function(model, dict) {
dict.title = 'RenderFrameImpl::didFinishLoad';
var slice = tr.c.TestUtils.newSliceEx(dict);
model.rendererMain.sliceGroup.pushSlice(slice);
return slice;
};
ChromeTestUtils.addLoadFinishedEvent = function(model, dict) {
dict.title = 'LoadFinished';
var slice = tr.c.TestUtils.newSliceEx(dict);
model.rendererMain.sliceGroup.pushSlice(slice);
return slice;
};
ChromeTestUtils.addCreateThreadsEvent = function(model, dict) {
dict.title = 'BrowserMainLoop::CreateThreads';
var slice = tr.c.TestUtils.newSliceEx(dict);
model.rendererMain.sliceGroup.pushSlice(slice);
return slice;
};
return {
ChromeTestUtils: ChromeTestUtils
};
});
</script>