| // Copyright 2017 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. |
| |
| (async function() { |
| TestRunner.addResult(`Test that tracing model correctly finds the main browser thread in the trace.\n`); |
| await TestRunner.loadModule('performance_test_runner'); |
| |
| var sessionId = 1; |
| |
| var testCases = { |
| 'chrome': [ |
| { |
| 'cat': '__metadata', |
| 'name': 'process_name', |
| 'ph': 'M', |
| 'pid': 1, |
| 'tid': 2, |
| 'ts': 0, |
| 'args': {'name': 'Renderer'} |
| }, |
| { |
| 'cat': '__metadata', |
| 'name': 'thread_name', |
| 'ph': 'M', |
| 'pid': 1, |
| 'tid': 2, |
| 'ts': 0, |
| 'args': {'name': 'CrRendererMain'} |
| }, |
| { |
| 'cat': 'disabled-by-default-devtools.timeline', |
| 'ph': 'I', |
| 'name': 'TracingStartedInPage', |
| 'pid': 1, |
| 'tid': 2, |
| 'ts': 100000, |
| 'tts': 606543, |
| 'args': {'sessionId': sessionId, 'page': '0x4age111'} |
| }, |
| { |
| 'cat': '__metadata', |
| 'name': 'process_name', |
| 'ph': 'M', |
| 'pid': 3, |
| 'tid': 4, |
| 'ts': 0, |
| 'args': {'name': 'Browser'} |
| }, |
| { |
| 'cat': '__metadata', |
| 'name': 'thread_name', |
| 'ph': 'M', |
| 'pid': 3, |
| 'tid': 4, |
| 'ts': 0, |
| 'args': {'name': 'CrBrowserMain'} |
| }, |
| { |
| 'cat': 'disabled-by-default-devtools.timeline', |
| 'ph': 'I', |
| 'name': 'TracingStartedInPage', |
| 'pid': 1, |
| 'tid': 2, |
| 'ts': 100000, |
| 'tts': 606543, |
| 'args': {'sessionId': sessionId, 'page': '0x4age111'} |
| }, |
| ], |
| 'headless': [ |
| { |
| 'cat': '__metadata', |
| 'name': 'process_name', |
| 'ph': 'M', |
| 'pid': 1, |
| 'tid': 2, |
| 'ts': 0, |
| 'args': {'name': 'Renderer'} |
| }, |
| { |
| 'cat': '__metadata', |
| 'name': 'thread_name', |
| 'ph': 'M', |
| 'pid': 1, |
| 'tid': 2, |
| 'ts': 0, |
| 'args': {'name': 'CrRendererMain'} |
| }, |
| { |
| 'cat': 'disabled-by-default-devtools.timeline', |
| 'ph': 'I', |
| 'name': 'TracingStartedInPage', |
| 'pid': 1, |
| 'tid': 2, |
| 'ts': 100000, |
| 'tts': 606543, |
| 'args': {'sessionId': sessionId, 'page': '0x4age111'} |
| }, |
| { |
| 'cat': '__metadata', |
| 'name': 'process_name', |
| 'ph': 'M', |
| 'pid': 3, |
| 'tid': 4, |
| 'ts': 0, |
| 'args': {'name': 'HeadlessBrowser'} |
| }, |
| { |
| 'cat': '__metadata', |
| 'name': 'thread_name', |
| 'ph': 'M', |
| 'pid': 3, |
| 'tid': 4, |
| 'ts': 0, |
| 'args': {'name': 'CrBrowserMain'} |
| }, |
| { |
| 'cat': 'disabled-by-default-devtools.timeline', |
| 'ph': 'I', |
| 'name': 'TracingStartedInPage', |
| 'pid': 1, |
| 'tid': 2, |
| 'ts': 100000, |
| 'tts': 606543, |
| 'args': {'sessionId': sessionId, 'page': '0x4age111'} |
| }, |
| ], |
| 'weird-names': [ |
| { |
| 'cat': '__metadata', |
| 'name': 'process_name', |
| 'ph': 'M', |
| 'pid': 1, |
| 'tid': 2, |
| 'ts': 0, |
| 'args': {'name': 'Renderer'} |
| }, |
| { |
| 'cat': '__metadata', |
| 'name': 'thread_name', |
| 'ph': 'M', |
| 'pid': 1, |
| 'tid': 2, |
| 'ts': 0, |
| 'args': {'name': 'CrRendererMain'} |
| }, |
| { |
| 'cat': 'disabled-by-default-devtools.timeline', |
| 'ph': 'I', |
| 'name': 'TracingStartedInPage', |
| 'pid': 1, |
| 'tid': 2, |
| 'ts': 100000, |
| 'tts': 606543, |
| 'args': {'sessionId': sessionId, 'page': '0x4age111'} |
| }, |
| {'cat': '__metadata', 'name': 'process_name', 'ph': 'M', 'pid': 3, 'tid': 4, 'ts': 0, 'args': {'name': 'Foo'}}, |
| {'cat': '__metadata', 'name': 'thread_name', 'ph': 'M', 'pid': 3, 'tid': 4, 'ts': 0, 'args': {'name': 'Bar'}}, |
| { |
| 'cat': 'disabled-by-default-devtools.timeline', |
| 'ph': 'I', |
| 'name': 'TracingStartedInBrowser', |
| 'pid': 3, |
| 'tid': 4, |
| 'ts': 100000, |
| 'tts': 606543, |
| 'args': {'frameTreeNodeId': 1234} |
| }, |
| ] |
| }; |
| for (var testCase of Object.keys(testCases)) { |
| var model = PerformanceTestRunner.createTracingModel(testCases[testCase]); |
| var browserMain = SDK.TracingModel.browserMainThread(model); |
| if (!browserMain) { |
| TestRunner.addResult(`${testCase} failed, no browser main thread found`); |
| continue; |
| } |
| TestRunner.addResult(`${testCase}: main browser thread is ${browserMain.name()} (#${browserMain.id()})`); |
| } |
| TestRunner.completeTest(); |
| })(); |