44
55import type * as puppeteer from 'puppeteer-core' ;
66
7- import { getBrowserAndPages } from '../../conductor/puppeteer-state.js' ;
87import type { DevToolsPage } from '../../e2e_non_hosted/shared/frontend-helper.js' ;
98import type { InspectedPage } from '../../e2e_non_hosted/shared/target-helper.js' ;
109import {
1110 $ ,
1211 click ,
13- drainFrontendTaskQueue ,
14- summonSearchBox ,
1512 waitFor ,
1613 waitForAria ,
1714 waitForElementWithTextContent ,
@@ -63,6 +60,7 @@ export async function navigateToPerformanceTab(
6360
6461 // Make sure the landing page is shown.
6562 await devToolsPage . waitFor ( '.timeline-landing-page' ) ;
63+ await devToolsPage . timeout ( 100 ) ;
6664 await expectVeEvents (
6765 [ veClick ( 'Toolbar: main > PanelTabHeader: timeline' ) , veImpressionForPerformancePanel ( ) ] , undefined ,
6866 devToolsPage ) ;
@@ -89,39 +87,36 @@ export async function openCaptureSettings(
8987 'Panel: timeline' , devToolsPage ) ;
9088}
9189
92- export async function searchForComponent ( frontend : puppeteer . Page , searchEntry : string ) {
93- await waitFor ( 'devtools-performance-timeline-summary' ) ;
94- await summonSearchBox ( ) ;
95- // TODO: it should actually wait for rendering to finish.
96- await drainFrontendTaskQueue ( ) ;
97- await waitFor ( '.search-bar' ) ;
98- // TODO: it should actually wait for rendering to finish.
99- await drainFrontendTaskQueue ( ) ;
100- await frontend . keyboard . type ( searchEntry ) ;
101- await drainFrontendTaskQueue ( ) ;
102- await frontend . keyboard . press ( 'Tab' ) ;
103- // TODO: it should actually wait for rendering to finish.
104- await drainFrontendTaskQueue ( ) ;
105- await drainFrontendTaskQueue ( ) ;
106- await drainFrontendTaskQueue ( ) ;
107- await expectVeEvents ( [
108- veKeyDown ( '' ) ,
109- veImpressionsUnder ( 'Panel: timeline' , [ veImpression (
110- 'Toolbar' , 'search' ,
111- [
112- veImpression ( 'TextField' , 'search' ) ,
113- veImpression ( 'Action' , 'regular-expression' ) ,
114- veImpression ( 'Action' , 'match-case' ) ,
115- veImpression ( 'Action' , 'select-previous' ) ,
116- veImpression ( 'Action' , 'select-next' ) ,
117- veImpression ( 'Action' , 'close-search' ) ,
118- ] ) ] ) ,
119- veChange ( 'Panel: timeline > Toolbar: search > TextField: search' ) ,
120- ] ) ;
90+ export async function searchForComponent (
91+ searchEntry : string , devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) {
92+ await devToolsPage . waitFor ( 'devtools-performance-timeline-summary' ) ;
93+ await devToolsPage . timeout ( 100 ) ;
94+ await devToolsPage . summonSearchBox ( ) ;
95+ await devToolsPage . waitFor ( '.search-bar' ) ;
96+ await devToolsPage . page . keyboard . type ( searchEntry ) ;
97+ await devToolsPage . timeout ( 100 ) ;
98+ await devToolsPage . page . keyboard . press ( 'Tab' ) ;
99+ await devToolsPage . timeout ( 100 ) ;
100+ await expectVeEvents (
101+ [
102+ veKeyDown ( '' ) ,
103+ veImpressionsUnder ( 'Panel: timeline' , [ veImpression (
104+ 'Toolbar' , 'search' ,
105+ [
106+ veImpression ( 'TextField' , 'search' ) ,
107+ veImpression ( 'Action' , 'regular-expression' ) ,
108+ veImpression ( 'Action' , 'match-case' ) ,
109+ veImpression ( 'Action' , 'select-previous' ) ,
110+ veImpression ( 'Action' , 'select-next' ) ,
111+ veImpression ( 'Action' , 'close-search' ) ,
112+ ] ) ] ) ,
113+ veChange ( 'Panel: timeline > Toolbar: search > TextField: search' ) ,
114+ ] ,
115+ undefined , devToolsPage ) ;
121116}
122117
123- export async function navigateToBottomUpTab ( ) {
124- await click ( BOTTOM_UP_SELECTOR ) ;
118+ export async function navigateToBottomUpTab ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) {
119+ await devToolsPage . click ( BOTTOM_UP_SELECTOR ) ;
125120 await expectVeEvents (
126121 [
127122 veClick ( 'Section: timeline.flame-chart-view > Toolbar: sidebar > PanelTabHeader: bottom-up' ) ,
@@ -154,11 +149,11 @@ export async function navigateToBottomUpTab() {
154149 ] ) ,
155150
156151 ] ,
157- 'Panel: timeline' ) ;
152+ 'Panel: timeline' , devToolsPage ) ;
158153}
159154
160- export async function navigateToCallTreeTab ( ) {
161- await click ( CALL_TREE_SELECTOR ) ;
155+ export async function navigateToCallTreeTab ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) {
156+ await devToolsPage . click ( CALL_TREE_SELECTOR ) ;
162157 await expectVeEvents (
163158 [
164159 veClick ( 'Section: timeline.flame-chart-view > Toolbar: sidebar > PanelTabHeader: call-tree' ) ,
@@ -192,7 +187,7 @@ export async function navigateToCallTreeTab() {
192187 ] ,
193188 ) ,
194189 ] ,
195- 'Panel: timeline' ) ;
190+ 'Panel: timeline' , devToolsPage ) ;
196191}
197192
198193export async function setFilter ( filter : string ) {
@@ -270,8 +265,9 @@ export async function getTotalTimeFromSummary(): Promise<number> {
270265 return parseInt ( totalText , 10 ) ;
271266}
272267
273- export async function getTotalTimeFromPie ( ) : Promise < number > {
274- const pieChartTotal = await waitFor ( '.pie-chart-total' ) ;
268+ export async function getTotalTimeFromPie ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) :
269+ Promise < number > {
270+ const pieChartTotal = await devToolsPage . waitFor ( '.pie-chart-total' ) ;
275271 const totalText = await pieChartTotal . evaluate ( node => node . textContent as string ) ;
276272 return parseInt ( totalText , 10 ) ;
277273}
@@ -300,6 +296,7 @@ export async function retrieveSelectedAndExpandedActivityItems(frontend: puppete
300296export async function navigateToSelectorStatsTab (
301297 devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) {
302298 await devToolsPage . click ( SELECTOR_STATS_SELECTOR ) ;
299+ await devToolsPage . timeout ( 100 ) ;
303300 await expectVeEvents (
304301 [
305302 veClick ( 'Toolbar: sidebar > PanelTabHeader: selector-stats' ) ,
@@ -319,10 +316,8 @@ export async function navigateToSelectorStatsTab(
319316}
320317
321318export async function selectRecalculateStylesEvent ( ) {
322- const { frontend} = getBrowserAndPages ( ) ;
323-
324319 await waitForFunction ( async ( ) => {
325- await searchForComponent ( frontend , RECALCULATE_STYLE_TITLE ) ;
320+ await searchForComponent ( RECALCULATE_STYLE_TITLE , getBrowserAndPagesWrappers ( ) . devToolsPage ) ;
326321 const title = await $ ( '.timeline-details-chip-title' ) ;
327322 if ( ! title ) {
328323 return false ;
0 commit comments