forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const baseURL = getRootDirectory(gTestPath).replace(
 | |
|   "chrome://mochitests/content",
 | |
|   "http://example.com"
 | |
| );
 | |
| 
 | |
| const testFileURL = `${baseURL}file_lazyload_telemetry.html`;
 | |
| 
 | |
| const { TelemetryTestUtils } = ChromeUtils.import(
 | |
|   "resource://testing-common/TelemetryTestUtils.jsm"
 | |
| );
 | |
| 
 | |
| function OtherLazyLoadDataIsReported() {
 | |
|   const snapshot = Services.telemetry.getSnapshotForHistograms("main", false)
 | |
|     .content;
 | |
|   return snapshot.LAZYLOAD_IMAGE_TOTAL;
 | |
| }
 | |
| 
 | |
| function pageLoadIsReported() {
 | |
|   const snapshot = Services.telemetry.getSnapshotForHistograms("main", false)
 | |
|     .parent;
 | |
|   return snapshot.FX_LAZYLOAD_IMAGE_PAGE_LOAD_MS;
 | |
| }
 | |
| 
 | |
| add_task(async function testTelemetryCollection() {
 | |
|   Services.telemetry.getHistogramById("FX_LAZYLOAD_IMAGE_PAGE_LOAD_MS").clear();
 | |
| 
 | |
|   const testTab = await BrowserTestUtils.openNewForegroundTab(
 | |
|     gBrowser,
 | |
|     "data:text/html,<body><iframe src='" + testFileURL + "'></iframe></body>",
 | |
|     true
 | |
|   );
 | |
| 
 | |
|   await BrowserTestUtils.waitForCondition(pageLoadIsReported);
 | |
| 
 | |
|   gBrowser.removeTab(testTab);
 | |
| 
 | |
|   // Running this test also causes some other LAZYLOAD related data
 | |
|   // to be collected. Wait for them to be collected to avoid firing
 | |
|   // them at an unexpected time.
 | |
|   await BrowserTestUtils.waitForCondition(OtherLazyLoadDataIsReported);
 | |
| 
 | |
|   const snapshot = Services.telemetry.getSnapshotForHistograms("main", false);
 | |
| 
 | |
|   ok(
 | |
|     snapshot.parent.FX_LAZYLOAD_IMAGE_PAGE_LOAD_MS.sum > 0,
 | |
|     "lazyload image page load telemetry"
 | |
|   );
 | |
| });
 | 
