@@ -29,7 +29,7 @@ test.beforeEach(async ({ page }) => {
2929
3030test . describe ( "leaks" , ( ) => {
3131 // This originally has a timeout of 120000
32- test ( "doesn't leak elements" , async ( { page } ) => {
32+ test ( "doesn't leak elements" , async ( { page, browserName } ) => {
3333 let viewer = await page . $ ( "perspective-viewer" ) ;
3434 await page . evaluate ( async ( viewer ) => {
3535 window . __TABLE__ = await viewer . getTable ( ) ;
@@ -38,9 +38,12 @@ test.describe("leaks", () => {
3838
3939 // From a helpful blog
4040 // https://media-codings.com/articles/automatically-detect-memory-leaks-with-puppeteer
41- await page . evaluate ( ( ) => window . gc ( ) ) ;
42- const heap1 = await page . evaluate (
43- ( ) => performance . memory . usedJSHeapSize
41+ if ( browserName !== "firefox" ) {
42+ await page . evaluate ( ( ) => window . gc ( ) ) ;
43+ }
44+
45+ const heap1 = await page . evaluate ( ( ) =>
46+ window . chrome ? performance . memory . usedJSHeapSize : 1
4447 ) ;
4548
4649 for ( var i = 0 ; i < 500 ; i ++ ) {
@@ -61,9 +64,12 @@ test.describe("leaks", () => {
6164 // TODO this is very generous memory allowance suggests we
6265 // leak ~0.1% per instance.
6366 // TODO: Not yet sure how to access window.gc() in Playwright
64- await page . evaluate ( ( ) => window . gc ( ) ) ;
65- const heap2 = await page . evaluate (
66- ( ) => performance . memory . usedJSHeapSize
67+ if ( browserName !== "firefox" ) {
68+ await page . evaluate ( ( ) => window . gc ( ) ) ;
69+ }
70+
71+ const heap2 = await page . evaluate ( ( ) =>
72+ window . chrome ? performance . memory . usedJSHeapSize : 1
6773 ) ;
6874
6975 expect ( ( heap2 - heap1 ) / heap1 ) . toBeLessThan ( 1 ) ;
@@ -77,16 +83,22 @@ test.describe("leaks", () => {
7783 await compareContentsToSnapshot ( contents , [ "does-not-leak.txt" ] ) ;
7884 } ) ;
7985
80- test ( "doesn't leak views when setting group by" , async ( { page } ) => {
86+ test ( "doesn't leak views when setting group by" , async ( {
87+ page,
88+ browserName,
89+ } ) => {
8190 let viewer = await page . $ ( "perspective-viewer" ) ;
8291 await page . evaluate ( async ( viewer ) => {
8392 window . __TABLE__ = await viewer . getTable ( ) ;
8493 await viewer . reset ( ) ;
8594 } , viewer ) ;
8695
87- await page . evaluate ( ( ) => window . gc ( ) ) ;
88- const heap1 = await page . evaluate (
89- ( ) => performance . memory . usedJSHeapSize
96+ if ( browserName !== "firefox" ) {
97+ await page . evaluate ( ( ) => window . gc ( ) ) ;
98+ }
99+
100+ const heap1 = await page . evaluate ( ( ) =>
101+ window . chrome ? performance . memory . usedJSHeapSize : 1
90102 ) ;
91103
92104 for ( var i = 0 ; i < 500 ; i ++ ) {
@@ -108,9 +120,12 @@ test.describe("leaks", () => {
108120 } , viewer ) ;
109121 }
110122
111- await page . evaluate ( ( ) => window . gc ( ) ) ;
112- const heap2 = await page . evaluate (
113- ( ) => performance . memory . usedJSHeapSize
123+ if ( browserName !== "firefox" ) {
124+ await page . evaluate ( ( ) => window . gc ( ) ) ;
125+ }
126+
127+ const heap2 = await page . evaluate ( ( ) =>
128+ window . chrome ? performance . memory . usedJSHeapSize : 1
114129 ) ;
115130 expect ( ( heap2 - heap1 ) / heap1 ) . toBeLessThan ( 0.5 ) ;
116131
@@ -125,16 +140,22 @@ test.describe("leaks", () => {
125140 ] ) ;
126141 } ) ;
127142
128- test ( "doesn't leak views when setting filters" , async ( { page } ) => {
143+ test ( "doesn't leak views when setting filters" , async ( {
144+ page,
145+ browserName,
146+ } ) => {
129147 let viewer = await page . $ ( "perspective-viewer" ) ;
130148 await page . evaluate ( async ( viewer ) => {
131149 window . __TABLE__ = await viewer . getTable ( ) ;
132150 await viewer . reset ( ) ;
133151 } , viewer ) ;
134152
135- await page . evaluate ( ( ) => window . gc ( ) ) ;
136- const heap1 = await page . evaluate (
137- ( ) => performance . memory . usedJSHeapSize
153+ if ( browserName !== "firefox" ) {
154+ await page . evaluate ( ( ) => window . gc ( ) ) ;
155+ }
156+
157+ const heap1 = await page . evaluate ( ( ) =>
158+ window . chrome ? performance . memory . usedJSHeapSize : 1
138159 ) ;
139160
140161 for ( var i = 0 ; i < 500 ; i ++ ) {
@@ -146,12 +167,15 @@ test.describe("leaks", () => {
146167 } , viewer ) ;
147168 }
148169
149- await page . evaluate ( ( ) => window . gc ( ) ) ;
150- const heap2 = await page . evaluate (
151- ( ) => performance . memory . usedJSHeapSize
170+ if ( browserName !== "firefox" ) {
171+ await page . evaluate ( ( ) => window . gc ( ) ) ;
172+ }
173+
174+ const heap2 = await page . evaluate ( ( ) =>
175+ window . chrome ? performance . memory . usedJSHeapSize : 1
152176 ) ;
153- expect ( ( heap2 - heap1 ) / heap1 ) . toBeLessThan ( 0.5 ) ;
154177
178+ expect ( ( heap2 - heap1 ) / heap1 ) . toBeLessThan ( 0.5 ) ;
155179 const contents = await page . evaluate ( async ( viewer ) => {
156180 await viewer . restore ( {
157181 filter : [ [ "Sales" , "<" , 10 ] ] ,
0 commit comments