diff options
Diffstat (limited to 'browser/base/content/test/general/browser_web_channel.html')
-rw-r--r-- | browser/base/content/test/general/browser_web_channel.html | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/browser/base/content/test/general/browser_web_channel.html b/browser/base/content/test/general/browser_web_channel.html deleted file mode 100644 index f117ccca2..000000000 --- a/browser/base/content/test/general/browser_web_channel.html +++ /dev/null @@ -1,189 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> - <title>web_channel_test</title> -</head> -<body> -<script> - var IFRAME_SRC_ROOT = "http://mochi.test:8888/browser/browser/base/content/test/general/browser_web_channel_iframe.html"; - - window.onload = function() { - var testName = window.location.search.replace(/^\?/, ""); - - switch (testName) { - case "generic": - test_generic(); - break; - case "twoway": - test_twoWay(); - break; - case "multichannel": - test_multichannel(); - break; - case "iframe": - test_iframe(); - break; - case "iframe_pre_redirect": - test_iframe_pre_redirect(); - break; - case "unsolicited": - test_unsolicited(); - break; - case "bubbles": - test_bubbles(); - break; - case "object": - test_object(); - break; - default: - throw new Error(`INVALID TEST NAME ${testName}`); - } - }; - - function test_generic() { - var event = new window.CustomEvent("WebChannelMessageToChrome", { - detail: JSON.stringify({ - id: "generic", - message: { - something: { - nested: "hello", - }, - } - }) - }); - - window.dispatchEvent(event); - } - - function test_twoWay() { - var firstMessage = new window.CustomEvent("WebChannelMessageToChrome", { - detail: JSON.stringify({ - id: "twoway", - message: { - command: "one", - }, - }) - }); - - window.addEventListener("WebChannelMessageToContent", function(e) { - var secondMessage = new window.CustomEvent("WebChannelMessageToChrome", { - detail: JSON.stringify({ - id: "twoway", - message: { - command: "two", - detail: e.detail.message, - }, - }), - }); - - if (!e.detail.message.error) { - window.dispatchEvent(secondMessage); - } - }, true); - - window.dispatchEvent(firstMessage); - } - - function test_multichannel() { - var event1 = new window.CustomEvent("WebChannelMessageToChrome", { - detail: JSON.stringify({ - id: "wrongchannel", - message: {}, - }) - }); - - var event2 = new window.CustomEvent("WebChannelMessageToChrome", { - detail: JSON.stringify({ - id: "multichannel", - message: {}, - }) - }); - - window.dispatchEvent(event1); - window.dispatchEvent(event2); - } - - function test_iframe() { - // Note that this message is the response to the message sent - // by the iframe! This is bad, as this page is *not* trusted. - window.addEventListener("WebChannelMessageToContent", function(e) { - // the test parent will fail if the echo message is received. - echoEventToChannel(e, "echo"); - }); - - // only attach the iframe for the iframe test to avoid - // interfering with other tests. - var iframe = document.createElement("iframe"); - iframe.setAttribute("src", IFRAME_SRC_ROOT + "?iframe"); - document.body.appendChild(iframe); - } - - function test_iframe_pre_redirect() { - var iframe = document.createElement("iframe"); - iframe.setAttribute("src", IFRAME_SRC_ROOT + "?iframe_pre_redirect"); - document.body.appendChild(iframe); - } - - function test_unsolicited() { - // echo any unsolicted events back to chrome. - window.addEventListener("WebChannelMessageToContent", function(e) { - echoEventToChannel(e, "echo"); - }, true); - } - - function test_bubbles() { - var event = new window.CustomEvent("WebChannelMessageToChrome", { - detail: JSON.stringify({ - id: "not_a_window", - message: { - command: "start" - } - }) - }); - - var nonWindowTarget = document.getElementById("not_a_window"); - - nonWindowTarget.addEventListener("WebChannelMessageToContent", function(e) { - echoEventToChannel(e, "not_a_window"); - }, true); - - - nonWindowTarget.dispatchEvent(event); - } - - function test_object() { - let objectMessage = new window.CustomEvent("WebChannelMessageToChrome", { - detail: { - id: "objects", - message: { type: "object" } - } - }); - - let stringMessage = new window.CustomEvent("WebChannelMessageToChrome", { - detail: JSON.stringify({ - id: "objects", - message: { type: "string" } - }) - }); - // Test fails if objectMessage is received, we send stringMessage to know - // when we should stop listening for objectMessage - window.dispatchEvent(objectMessage); - window.dispatchEvent(stringMessage); - } - - function echoEventToChannel(e, channelId) { - var echoedEvent = new window.CustomEvent("WebChannelMessageToChrome", { - detail: JSON.stringify({ - id: channelId, - message: e.detail.message, - }) - }); - - e.target.dispatchEvent(echoedEvent); - } -</script> - -<div id="not_a_window"></div> -</body> -</html> |