mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 02:09:05 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
// ExtensionContent.sys.mjs needs to know when it's running from xpcshell,
 | 
						|
// to use the right timeout for content scripts executed at document_idle.
 | 
						|
ExtensionTestUtils.mockAppInfo();
 | 
						|
 | 
						|
const server = createHttpServer();
 | 
						|
server.registerDirectory("/data/", do_get_file("data"));
 | 
						|
 | 
						|
const BASE_URL = `http://localhost:${server.identity.primaryPort}/data`;
 | 
						|
 | 
						|
add_task(async function test_contentscript_shadowDOM() {
 | 
						|
  function backgroundScript() {
 | 
						|
    browser.test.assertTrue(
 | 
						|
      "openOrClosedShadowRoot" in document.documentElement,
 | 
						|
      "Should have openOrClosedShadowRoot in Element in background script."
 | 
						|
    );
 | 
						|
  }
 | 
						|
 | 
						|
  function contentScript() {
 | 
						|
    let host = document.getElementById("host");
 | 
						|
    browser.test.assertTrue(
 | 
						|
      "openOrClosedShadowRoot" in host,
 | 
						|
      "Should have openOrClosedShadowRoot in Element."
 | 
						|
    );
 | 
						|
    let shadowRoot = host.openOrClosedShadowRoot;
 | 
						|
    browser.test.assertEq(
 | 
						|
      shadowRoot.mode,
 | 
						|
      "closed",
 | 
						|
      "Should have closed ShadowRoot."
 | 
						|
    );
 | 
						|
    browser.test.sendMessage("contentScript");
 | 
						|
  }
 | 
						|
 | 
						|
  let extension = ExtensionTestUtils.loadExtension({
 | 
						|
    manifest: {
 | 
						|
      content_scripts: [
 | 
						|
        {
 | 
						|
          matches: ["http://*/*/file_shadowdom.html"],
 | 
						|
          js: ["content_script.js"],
 | 
						|
        },
 | 
						|
      ],
 | 
						|
    },
 | 
						|
    background: backgroundScript,
 | 
						|
    files: {
 | 
						|
      "content_script.js": contentScript,
 | 
						|
    },
 | 
						|
  });
 | 
						|
 | 
						|
  await extension.startup();
 | 
						|
 | 
						|
  let contentPage = await ExtensionTestUtils.loadContentPage(
 | 
						|
    `${BASE_URL}/file_shadowdom.html`
 | 
						|
  );
 | 
						|
  await extension.awaitMessage("contentScript");
 | 
						|
 | 
						|
  await contentPage.close();
 | 
						|
  await extension.unload();
 | 
						|
});
 |