{
  "results": [
    {
      "test": "/webmessaging/postMessage_objects.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Messages can be structured objects, e.g., nested objects.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/017.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "origin of the script that invoked the method, about:blank",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_Document.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: postMessage with Document object: Throw a DataCloneError if message could not be cloned.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/013.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "loop in object in structured clone",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving 'example.org'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving broken url",
          "status": "FAIL",
          "message": "assert_throws: should have failed to resolve function \"function() {\n    postMessage('', 'http://foo bar', []);\n  }\" did not throw"
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/020.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "cross-origin test",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "special value '/'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving a same origin targetOrigin",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/message-channels/close.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Message sent to closed port should not arrive.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Message sent from closed port should not arrive.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Message sent to closed port from transferred port should not arrive.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Inflight messages should be delivered even when sending port is closed afterwards.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Close in onmessage should not cancel inflight messages.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "close() detaches a MessagePort (but not the one its entangled with)",
          "status": "FAIL",
          "message": "assert_throws: function \"() => self.postMessage(null, \"*\", [c.port1])\" did not throw"
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/007.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "targetOrigin '*'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/025.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "MessagePort constructor properties",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Worker MessageChannel's port should be an instance of MessagePort",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Worker MessagePort should not be [[Callable]]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-options/undefined-transferable.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "undefined as transferable",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/015.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "different origin",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/006.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving a same origin targetOrigin with trailing slash",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_Date.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Messages can contain JavaScript values (e.g., Dates).",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/021.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "cross-origin test",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving url with stuff in host-specific",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_arrays.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Messages can be structured objects, e.g., arrays.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/MessagePort_onmessage_start.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "MessageChannel: port.onmessage enables message queue",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/015.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "different origin",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-options/no-target-origin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "no targetOrigin",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/Channel_postMessage_Blob.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Messages can contain Blobs.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/027.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Cloning objects, preserving sharing",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/broadcastchannel/origin.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Serialization of BroadcastChannel origin",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/MessagePort_initial_disabled.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "MessageChannel: port message queue is initially disabled",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/010.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "undefined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "false",
          "status": "PASS",
          "message": null
        },
        {
          "name": "true",
          "status": "PASS",
          "message": null
        },
        {
          "name": "1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "NaN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Infinity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "date",
          "status": "PASS",
          "message": null
        },
        {
          "name": "regex",
          "status": "PASS",
          "message": null
        },
        {
          "name": "self",
          "status": "PASS",
          "message": null
        },
        {
          "name": "array",
          "status": "PASS",
          "message": null
        },
        {
          "name": "object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "error",
          "status": "PASS",
          "message": null
        },
        {
          "name": "unreached",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-options/unknown-parameter.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "unknown parameter",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-options/host-specific-origin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving url with stuff in host-specific",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving 'example.org'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/broadcastchannel/interface.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should throw if no name is provided",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Null name should not throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Undefined name should not throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Non-empty name should not throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Non-string name should not throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "postMessage without parameters should throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "postMessage with null should not throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "close should not throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "close should not throw when called multiple times",
          "status": "PASS",
          "message": null
        },
        {
          "name": "postMessage after close should throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "BroadcastChannel should have an onmessage event",
          "status": "PASS",
          "message": null
        },
        {
          "name": "postMessage should throw with uncloneable data",
          "status": "PASS",
          "message": null
        },
        {
          "name": "postMessage should throw InvalidStateError after close, even with uncloneable data",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/broadcastchannel/sandbox.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Creating BroadcastChannel in an opaque origin",
          "status": "FAIL",
          "message": "assert_equals: expected \"Created\" but got \"Exception: NotSupportedError\""
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/018.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "origin of the script that invoked the method, javascript:",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/019.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "origin of the script that invoked the method, scheme/host/port",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-options/one-arg.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "just one argument",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/broadcastchannel/blobs.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Blobs work on BroadcastChannel",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Blobs work with workers on BroadcastChannel",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_solidus_xorigin.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: If the targetOrigin argument is a single literal U+002F SOLIDUS character (/), and the Document of the Window object on which the method was invoked does not have the same origin as the entry script's document, then abort these steps silently.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_origin_mismatch.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Same-origin: If the origin of the target window doesn't match the given origin, the message is discarded.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/message-channels/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "cross-document channel",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/012.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "loop in array in structured clone",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_Function.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: postMessage with Function object: Throw a DataCloneError if message could not be cloned.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/message-channels/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "without start()",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/021.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "cross-origin test",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/Channel_postMessage_event_properties.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: The postMessage() method - Create an event that uses the MessageEvent interface, with the name message, which does not bubble and is not cancelable.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/016.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "origin of the script that invoked the method, data:",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/Channel_postMessage_DataCloneErr.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Throw a DataCloneError when a host object (e.g. a DOM node) is used with postMessage.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/Channel_postMessage_clone_port_error.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Throw a DataCloneError if transfer array in postMessage contains source port.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/011.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "posting an imagedata (from a cloned canvas) in an array",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/010.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "undefined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "false",
          "status": "PASS",
          "message": null
        },
        {
          "name": "true",
          "status": "PASS",
          "message": null
        },
        {
          "name": "1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "NaN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Infinity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "date",
          "status": "PASS",
          "message": null
        },
        {
          "name": "regex",
          "status": "PASS",
          "message": null
        },
        {
          "name": "self",
          "status": "PASS",
          "message": null
        },
        {
          "name": "array",
          "status": "PASS",
          "message": null
        },
        {
          "name": "object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "error",
          "status": "PASS",
          "message": null
        },
        {
          "name": "unreached",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-options/null-transfer.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "null transfer",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/013.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "loop in object in structured clone",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-options/message-channel-transferable.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "MessageChannel's ports as MessagePort objects",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/event.ports.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: event.ports returns the MessagePort array sent with the message.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MessageChannel is supported.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/message-channels/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "basic messagechannel test",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/event.source.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Same-origin: event.source returns the WindowProxy of the source window.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/event.data.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: event.data returns the data of the message.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/message-channels/user-activation.tentative.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "user activation messagechannel test",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/014.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "structured clone vs reference",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/Transferred_objects_unusable.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MessageChannel is supported.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/025.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "1 as ports",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/MessageEvent.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "mozInitMessageEvent on the prototype",
          "status": "PASS",
          "message": null
        },
        {
          "name": "mozInitMessageEvent on the instance",
          "status": "PASS",
          "message": null
        },
        {
          "name": "msInitMessageEvent on the prototype",
          "status": "PASS",
          "message": null
        },
        {
          "name": "msInitMessageEvent on the instance",
          "status": "PASS",
          "message": null
        },
        {
          "name": "oInitMessageEvent on the prototype",
          "status": "PASS",
          "message": null
        },
        {
          "name": "oInitMessageEvent on the instance",
          "status": "PASS",
          "message": null
        },
        {
          "name": "webkitInitMessageEvent on the prototype",
          "status": "PASS",
          "message": null
        },
        {
          "name": "webkitInitMessageEvent on the instance",
          "status": "PASS",
          "message": null
        },
        {
          "name": "initMessageEvent with no arguments",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/MessageEvent_onmessage_postMessage_infinite_loop.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "onmessage calling source postMessage",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/006.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving a same origin targetOrigin with trailing slash",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/008.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "just one argument",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_ArrayBuffer.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: postMessage with ArrayBuffer object.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "ArrayBuffer is supported.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving url with stuff in host-specific",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/016.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "origin of the script that invoked the method, data:",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_origin_mismatch_xorigin.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Cross-origin: If the origin of the target window doesn't match the given origin, the message is discarded.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-options/broken-origin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving broken url",
          "status": "FAIL",
          "message": "assert_throws: should have failed to resolve function \"function() {\n    postMessage('', {targetOrigin: 'http://foo bar'});\n  }\" did not throw"
        }
      ]
    },
    {
      "test": "/webmessaging/Channel_postMessage_ports_readonly_array.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: The postMessage() method - Make new ports into a read only array.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-options/slash-origin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "special value '/'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/023.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Object cloning: own properties only, don't follow prototype",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_asterisk_xorigin.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: To send the message to the target regardless of origin, set the target origin to '*'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/023.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "null ports",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/020.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "cross-origin test",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/message-channels/worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "MessageChannel/MessagePort created and used after a worker self.close()",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/027.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "MessageChannel's ports as MessagePort objects",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Old-style array objects",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/026.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Cloning objects with getter properties",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/012.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "loop in array in structured clone",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/007.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "targetOrigin '*'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_MessagePorts_sorigin.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: postMessage to same-origin iframe with MessagePort array containing 100 ports.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MessageChannel is supported.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/014.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "structured clone vs reference",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "special value '/'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/017.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "origin of the script that invoked the method, about:blank",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/MessageEvent_properties.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " MessageEvent interface and properties ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_MessagePorts_xorigin.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: postMessage to cross-origin iframe with MessagePort array containing 100 ports.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MessageChannel is supported.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/message-channels/dictionary-transferrable.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "basic messagechannel with transfer",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_dup_transfer_objects.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: postMessage with duplicate transfer objects raises DataCloneError exception.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_invalid_targetOrigin.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: If the value of the targetOrigin argument is neither a single U+002A ASTERISK character (*), a single U+002F SOLIDUS character (/), nor an absolute URL, then throw a SyntaxError exception and abort the overall set of steps.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/broadcastchannel/workers.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "BroadcastChannel works in workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "BroadcastChannel works in shared workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Closing and re-opening a channel works.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "BroadcastChannel created after a worker self.close()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "BroadcastChannel used after a worker self.close()",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving broken url",
          "status": "FAIL",
          "message": "assert_throws: should have failed to resolve function \"function() {\n    postMessage('', 'http://foo bar');\n  }\" did not throw"
        }
      ]
    },
    {
      "test": "/webmessaging/Channel_postMessage_clone_port.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Test Description: When the user agent is to clone a port original port, with the clone being owned by owner, it must return a new MessagePort object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Data sent through remote port is received by the new cloned port",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/024.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "undefined as ports",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/018.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "origin of the script that invoked the method, javascript:",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/024.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Object cloning: throw an exception if function values encountered",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/009.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "zero arguments",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/019.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "origin of the script that invoked the method, scheme/host/port",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/message-channels/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "onmessage implied start()",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/026.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "object with length as transferable",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/worker_postMessage_user_activation.tentative.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Post Message from a worker",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving a same origin targetOrigin",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/broadcastchannel/basics.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "postMessage results in correct event",
          "status": "PASS",
          "message": null
        },
        {
          "name": "messages are delivered in port creation order",
          "status": "PASS",
          "message": null
        },
        {
          "name": "messages aren't delivered to a closed port",
          "status": "PASS",
          "message": null
        },
        {
          "name": "closing and creating channels during message delivery works correctly",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Closing a channel in onmessage doesn't cancel already queued events",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/messageerror.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "The default value of onmessageerror is null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The onmessageerror content attribute must be compiled into the onmessageerror property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The onmessageerror content attribute must execute when an event is dispatched on the window",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/MessageEvent-trusted.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "With a MessageChannel and its MessagePorts",
          "status": "PASS",
          "message": null
        },
        {
          "name": "With a BroadcastChannel",
          "status": "PASS",
          "message": null
        },
        {
          "name": "With window",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/028.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Cloning objects, preserving sharing #2",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/event.origin.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: event.origin returns the origin of the message.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/postMessage_solidus_sorigin.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: To restrict the message to same-origin targets only, without needing to explicitly state the origin, set the target origin to '/'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/Channel_postMessage_target_source.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: The postMessage() method - Let target port be the port with which source port is entangled, if any.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/event.source.xorigin.sub.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Cross-origin: event.source returns the WindowProxy of the source window.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/with-ports/011.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "posting an imagedata (from a cloned canvas) in an array",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/webmessaging/without-ports/029.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check that getters don't linger after deletion wrt cloning",
          "status": "PASS",
          "message": null
        }
      ]
    }
  ]
}