forked from mirrors/gecko-dev
		
	As the things we do in those tests are not really "block" autoplay, which is not to allow autoplay starts, what we do is actually delaying them until tab goes to foreground or user clicking `play tab` icon on the tab. In order to distinguish them from the real blocking-autoplay, and reflect what we really do in those tests, rename all of them with prefix "browser_delay_autoplay_*". Differential Revision: https://phabricator.services.mozilla.com/D44921 --HG-- rename : toolkit/content/tests/browser/browser_block_autoplay_media.js => toolkit/content/tests/browser/browser_delay_autoplay_media.js rename : toolkit/content/tests/browser/browser_block_autoplay_media_pausedAfterPlay.js => toolkit/content/tests/browser/browser_delay_autoplay_media_pausedAfterPlay.js rename : toolkit/content/tests/browser/browser_block_multipleMedia.js => toolkit/content/tests/browser/browser_delay_autoplay_multipleMedia.js rename : toolkit/content/tests/browser/browser_block_notInTreeAudio.js => toolkit/content/tests/browser/browser_delay_autoplay_notInTreeAudio.js rename : toolkit/content/tests/browser/browser_block_autoplay_playAfterTabVisible.js => toolkit/content/tests/browser/browser_delay_autoplay_playAfterTabVisible.js rename : toolkit/content/tests/browser/browser_block_playMediaInMuteTab.js => toolkit/content/tests/browser/browser_delay_autoplay_playMediaInMuteTab.js rename : toolkit/content/tests/browser/browser_block_plugIn.js => toolkit/content/tests/browser/browser_delay_autoplay_plugIn.js rename : toolkit/content/tests/browser/browser_block_silentAudioTrack_media.js => toolkit/content/tests/browser/browser_delay_autoplay_silentAudioTrack_media.js rename : toolkit/content/tests/browser/browser_block_webAudio.js => toolkit/content/tests/browser/browser_delay_autoplay_webAudio.js extra : moz-landing-system : lando
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const PAGE =
 | 
						|
  "https://example.com/browser/toolkit/content/tests/browser/file_silentAudioTrack.html";
 | 
						|
 | 
						|
async function click_unblock_icon(tab) {
 | 
						|
  let icon = tab.soundPlayingIcon;
 | 
						|
 | 
						|
  await hover_icon(icon, document.getElementById("tabbrowser-tab-tooltip"));
 | 
						|
  EventUtils.synthesizeMouseAtCenter(icon, { button: 0 });
 | 
						|
  leave_icon(icon);
 | 
						|
}
 | 
						|
 | 
						|
add_task(async function setup_test_preference() {
 | 
						|
  await SpecialPowers.pushPrefEnv({
 | 
						|
    set: [
 | 
						|
      ["media.useAudioChannelService.testing", true],
 | 
						|
      ["media.block-autoplay-until-in-foreground", true],
 | 
						|
    ],
 | 
						|
  });
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function unblock_icon_should_disapear_after_resume_tab() {
 | 
						|
  info("- open new background tab -");
 | 
						|
  let tab = BrowserTestUtils.addTab(window.gBrowser, "about:blank");
 | 
						|
  BrowserTestUtils.loadURI(tab.linkedBrowser, PAGE);
 | 
						|
  await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
 | 
						|
 | 
						|
  info("- tab should display unblocking icon -");
 | 
						|
  await waitForTabBlockEvent(tab, true);
 | 
						|
 | 
						|
  info("- select tab as foreground tab -");
 | 
						|
  await BrowserTestUtils.switchTab(window.gBrowser, tab);
 | 
						|
 | 
						|
  info("- should not display unblocking icon -");
 | 
						|
  await waitForTabBlockEvent(tab, false);
 | 
						|
 | 
						|
  info("- should not display sound indicator icon -");
 | 
						|
  await waitForTabPlayingEvent(tab, false);
 | 
						|
 | 
						|
  info("- remove tab -");
 | 
						|
  BrowserTestUtils.removeTab(tab);
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function should_not_show_sound_indicator_after_resume_tab() {
 | 
						|
  info("- open new background tab -");
 | 
						|
  let tab = BrowserTestUtils.addTab(window.gBrowser, "about:blank");
 | 
						|
  BrowserTestUtils.loadURI(tab.linkedBrowser, PAGE);
 | 
						|
  await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
 | 
						|
 | 
						|
  info("- tab should display unblocking icon -");
 | 
						|
  await waitForTabBlockEvent(tab, true);
 | 
						|
 | 
						|
  info("- click play tab icon -");
 | 
						|
  await click_unblock_icon(tab);
 | 
						|
 | 
						|
  info("- should not display unblocking icon -");
 | 
						|
  await waitForTabBlockEvent(tab, false);
 | 
						|
 | 
						|
  info("- should not display sound indicator icon -");
 | 
						|
  await waitForTabPlayingEvent(tab, false);
 | 
						|
 | 
						|
  info("- remove tab -");
 | 
						|
  BrowserTestUtils.removeTab(tab);
 | 
						|
});
 |