Webapps/Interop/WebMessaging

From W3C Wiki
Jump to: navigation, search

This is the DRAFT Implementation Report for the 01-May-2012 Web Messaging Candidate Recommendation.

Browsers used:

  • Chrome; Version 28.0.1500.95
  • FireFox Nightly; 25.0a1 (2013-08-02)
  • IE; v11.0.9431.0 Preview KB2841134
  • Opera; 12.16


Test Results
Test Name Chrome FireFox IE Opera Comments
Channel_MessagePort_initial_disabled.htm Pass Not Run ^2 Pass Pass ^2: ReferenceError: MessageChannel is not defined;
Channel_MessagePort_onmessage_start.htm Pass Not Run ^2 Pass Pass ^2: ReferenceError: MessageChannel is not defined;
Channel_postMessage_DataCloneErr.htm Pass Fail ^2 Pass Pass ^2: MessageChannel is not defined;
Channel_postMessage_clone_port.htm Pass Not Run ^2 Pass Pass ^2: ReferenceError: MessageChannel is not defined;
Channel_postMessage_clone_port_error.htm Fail ^1 Fail ^2 Pass Pass ^1: Test Description: Throw a DataCloneError if transfer array in postMessage contains source port.: "assert_throws: function "function () { channel.port1.postMessa..." threw object "Error: InvalidStateError: DOM Exception 11" that is not a DOMException DATA_CLONE_ERR: property "code" is equal to 11, expected 25";

^2: MessageChannel is not defined;

Channel_postMessage_event_properties.htm Pass Not Run ^2 Pass Pass ^2: ReferenceError: MessageChannel is not defined;
Channel_postMessage_ports_readonly_array.htm Pass Not Run ^2 Pass Fail ^4 ^2: ReferenceError: MessageChannel is not defined;

^4: The postMessage() method - Make new ports into a read only array.: "assert_equals: ports is a read only array with length == 1. expected 1 but got 3";

Channel_postMessage_target_source.htm Pass Not Run ^2 Pass Pass ^2: ReferenceError: MessageChannel is not defined;
MessageEvent_properties.htm Pass Fail ^2 Pass Pass ^2: Create an event that uses the MessageEvent interface, with the event type message, which does not bubble, is not cancelable, and has no default action.: "assert_array_equals: ActualResult property 3, expected false but got true";
Transferred_objects_unusable.htm Pass 1 Not Run, 1 Fail ^2 Pass 1 Pass, 1 Fail ^4 ^2: MessageChannel not supported;

^4: MessageChannel is supported.: "INVALID_STATE_ERR(stack: <anonymous function>([arguments not available])@http://w3c-test.org/webmessaging/Transferred_objects_unusable.htm:43 ..." ;

event.data.htm Pass Pass Pass Pass
event.origin.htm Pass Pass Pass Pass
event.ports.htm Pass 1 Not Run, 1 Fail ^2 Pass Pass ^2: 1) MessagePort not supported; 2) MessageChannel not supported;
event.source.htm Pass Pass Pass Pass
event.source.xorigin.htm Pass Pass Pass Pass
message-channels/001.html Pass Fail ^2 Pass Pass ^2: MessageChannel not supported;
message-channels/002.html Pass Fail ^2 Pass Pass ^2: MessageChannel not supported;
message-channels/003.html Pass Fail ^2 Pass Pass ^2: MessageChannel not supported;
message-channels/004.html Pass Fail ^2 Pass Pass ^2: MessageChannel not supported;
postMessage_ArrayBuffer.htm Pass Pass Pass Pass
postMessage_Date.htm Pass Pass Pass Pass
postMessage_Document.htm Pass Pass Pass Pass
postMessage_Function.htm Pass Pass Pass Pass
postMessage_MessagePorts_sorigin.htm Pass 1 Not Run, 1 Fail ^2 Pass Pass ^2: MessagePorts and MessageChannel not supported;
postMessage_MessagePorts_xorigin.htm Pass 1 Not Run, 1 Fail ^2 Pass Pass ^2: MessagePorts and MessageChannel not supported;
postMessage_arrays.htm Pass Pass Pass Pass
postMessage_asterisk_xorigin.htm Pass Pass Pass Pass
postMessage_dup_transfer_objects.htm Fail ^1 Fail ^2 Pass Pass ^1: Test Description: postMessage with duplicate transfer objects raises DataCloneError exception.: "assert_throws: function "function () { assert_own_prop..." threw object "Error: InvalidStateError: DOM Exception 11" that is not a DOMException DATA_CLONE_ERR: property "code" is equal to 11, expected 25";

^2: postMessage with duplicate transfer objects raises DataCloneError exception: MessageChannel not supported;

postMessage_invalid_targetOrigin.htm Pass Pass Pass Pass
postMessage_objects.htm Pass Pass Pass Pass
postMessage_origin_mismatch.htm Pass Pass Pass Pass
postMessage_origin_mismatch_xorigin.htm Pass Pass Pass Pass
postMessage_solidus_sorigin.htm Pass Not Run ^2 Pass Pass ^2: Harness encountered an error: "SyntaxError: An invalid or illegal string was specified";
postMessage_solidus_xorigin.htm Pass Fail ^2 Pass Pass ^2: assert_equals: e.data expected "NoExceptionRaised" but got "ExceptionRaised";
with-ports/001.html Fail ^1 Pass Fail ^3 Pass ^1: resolving broken url: "assert_throws: should have failed to resolve function "function () { postMessage(, 'http://foo bar', []); }" did not throw";

^3: resolving broken url: assert_throws: should have failed to resolve function "function() { postMessage(, 'http://foo bar', []); }" did not throw”;

with-ports/002.html Pass Pass Pass Pass
with-ports/003.html Pass Pass Pass Pass
with-ports/004.html Pass Fail ^2 Pass Pass ^2: special value '/': "An invalid or illegal string was specified";
with-ports/005.html Pass Pass Pass Pass
with-ports/006.html Pass Pass Pass Pass
with-ports/007.html Pass Pass Pass Pass
with-ports/010.html 13 Pass, 2 Fail ^1 13 Pass, 2 Fail ^2 13 Pass, 2 Fail ^3 13 Pass, 2 Fail ^4 ^1: 1) array: "assert_array_equals: array property 0, property expected to be $expected but was $actual"; 2) object: "assert_equals: object expected true but got false";

^2: 1) array: "assert_array_equals: array property 8, expected true but got false"; 2) object: "assert_equals: object expected true but got false";

^3: 1) array: assert_array_equals: array property 8, expected true but got false; 2) object: assert_equals: object expected true but got false;

^4: 1) array: "assert_array_equals: array property 8, expected true but got false"; 2) object: "assert_equals: object expected true but got false";

with-ports/011.html Pass Pass Pass Pass
with-ports/012.html Pass Pass Pass Pass
with-ports/013.html Pass Pass Pass Pass
with-ports/014.html Pass Pass Pass Pass
with-ports/015.html Pass Pass Pass Pass
with-ports/016.html Pass Fail ^2 Fail ^3 Pass ^2: origin of the script that invoked the method, data: "actual is undefined(stack: assert_array_equals@http://w3c-test.org/resources/testharness.js:737 window[0].onmessage ...";

^3: origin of the script that invoked the method, data: Permission denied”;

with-ports/017.html Pass Fail ^2 Pass Pass ^2: origin of the script that invoked the method, about:blank: "actual is undefined(stack: assert_array_equals@http://w3c-test.org/resources/testharness.js:737 window[0].onmessage ...";
with-ports/018.html Pass Fail ^2 Pass Pass ^2: origin of the script that invoked the method, javascript: "actual is undefined(stack: assert_array_equals@http://w3c-test.org/resources/testharness.js:737 window[0].onmessage ...";
with-ports/019.html Pass Fail ^2 Pass Pass ^2: origin of the script that invoked the method, scheme/host/port: "actual is undefined(stack: assert_array_equals@http://w3c-test.org/resources/testharness.js:737 window[0].onmessage";
with-ports/020.html Pass Pass Pass Pass
with-ports/021.html Pass Pass Pass Pass
with-ports/023.html Pass Fail ^2 Fail ^3 Pass ^2: null ports: "actual is undefined(stack: assert_array_equals@http://w3c-test.org/resources/testharness.js:737 onmessage ...";

^3: null ports: Unable to get property 'length' of undefined or null reference;

with-ports/024.html Pass Fail ^2 Fail ^3 Pass ^2: undefined as ports: "actual is undefined(stack: assert_array_equals@http://w3c-test.org/resources/testharness.js:737 onmessage<@http://w3c-test.org/webmessaging/with-ports/024.html:10";

^3: undefined as ports: DataCloneError

with-ports/025.html Fail ^1 Fail ^2 Fail ^3 Pass ^1: 1 as ports: "Type error(stack: TypeError: Type error at Object.<anonymous> (http://w3c-test.org/webmessaging/with-ports/025.html:8:3) at ...";

^2: 1 as ports: "The object could not be cloned.";

^3: 1 as ports: DataCloneError;

with-ports/026.html Fail ^1 Fail ^2 Fail ^3 Fail ^4 ^1: object with length as transferable: "nvalidStateError: DOM Exception 11(stack: Error: An attempt was made to use an object that is not, or is no longer, usable. at Object.<anonymous> (http://w3c-test.org/webmessaging/with-ports/026.html:8:3) at ...";

^2: object with length as transferable: "The object could not be cloned.";

^3: object with length as transferable: DataCloneError;

^4: object with length as transferable: "assert_array_equals: lengths differ, expected 1 got 0";

with-ports/027.html Pass Fail ^2 Fail ^3 Pass ^2: message channel as ports: "MessageChannel is not defined(stack: @http://w3c-test.org/webmessaging/with-ports/027.html:8";

^3: message channel as ports: Unable to get property 'length' of undefined or null reference;

without-ports/001.html Fail ^1 Pass Fail ^3 Pass ^1: resolving broken url: "assert_throws: should have failed to resolve function "function () { postMessage(, 'http://foo bar'); }" did not throw";

^3: resolving broken url: assert_throws: should have failed to resolve function "function() { postMessage(, 'http://foo bar'); }" did not throw;

without-ports/002.html Pass Pass Pass Pass
without-ports/003.html Pass Pass Pass Pass
without-ports/004.html Pass Fail ^2 Pass Pass ^2: special value '/': "An invalid or illegal string was specified";
without-ports/005.html Pass Pass Pass Pass
without-ports/006.html Pass Pass Pass Pass
without-ports/007.html Pass Pass Pass Pass
without-ports/008.html Fail ^1 Fail ^2 Fail ^3 Fail ^4 ^1: just one argument: "assert_throws: function "function () { postMessage(); }" threw object "Error: SyntaxError: DOM Exception 12" that is not a DOMException NOT_SUPPORTED_ERR: property "code" is equal to 12, expected 9";

^2: just one argument: "assert_throws: function "function () { postMessage(); }" threw object "[Exception... "Not enough arguments [nsIDOMWindow.postMes..." that is not a DOMException NOT_SUPPORTED_ERR: property "code" is equal to undefined, expected 9";

^3: just one argument: assert_throws: function "function() { postMessage(); }" threw object "TypeError: Argument not optional" that is not a DOMException NOT_SUPPORTED_ERR: property "code" is equal to undefined, expected 9;

^4: just one argument: "assert_throws: function "function() { postMessage(); }" threw object "Error: WRONG_ARGUMENTS_ERR" that is not a DOMException NOT_SUPPORTED_ERR: property "code" is equal to 6, expected 9";

without-ports/009.html Fail ^1 Fail ^2 Fail ^3 Fail ^4 ^1: zero arguments: "assert_throws: function "function () { postMessage(); }" threw object "Error: SyntaxError: DOM Exception 12" that is not a DOMException NOT_SUPPORTED_ERR: property "code" is equal to 12, expected 9";

^2: zero arguments: "assert_throws: function "function () { postMessage(); }" threw object "[Exception... "Not enough arguments [nsIDOMWindow.postMes..." that is not a DOMException NOT_SUPPORTED_ERR: property "code" is equal to undefined, expected 9";

^3: zero arguments: assert_throws: function "function() { postMessage(); }" threw object "TypeError: Argument not optional" that is not a DOMException NOT_SUPPORTED_ERR: property "code" is equal to undefined, expected 9;

^4: zero arguments: "assert_throws: function "function() { postMessage(); }" threw object "Error: WRONG_ARGUMENTS_ERR" that is not a DOMException NOT_SUPPORTED_ERR: property "code" is equal to 6, expected 9";

without-ports/010.html 13 Pass, 2 Fail ^1 13 Pass, 2 Fail ^2 13 Pass, 2 Fail ^3 13 Pass, 2 Fail ^4 ^1: 1) array: "assert_array_equals: array property 0, property expected to be $expected but was $actual;" 2) object: "assert_equals: object expected true but got false";

^2: 1) array: "assert_array_equals: array property 8, expected true but got false"; 2) object: "assert_equals: object expected true but got false";

^3: 1) array: assert_array_equals: array property 8, expected true but got false; 2) object: assert_equals: object expected true but got false;

^4: 1) array: "assert_array_equals: array property 8, expected true but got false"; 2) object: "assert_equals: object expected true but got false";

without-ports/011.html Pass Pass Pass Pass
without-ports/012.html Pass Pass Pass Pass
without-ports/013.html Pass Pass Pass Pass
without-ports/014.html Pass Pass Pass Pass
without-ports/015.html Pass Pass Pass Pass
without-ports/016.html Pass Fail ^2 Fail ^3 Pass ^2: origin of the script that invoked the method, data: "actual is undefined(stack: assert_array_equals@http://w3c-test.org/resources/testharness.js:737 window[0].onmessage";

^3: origin of the script that invoked the method, data: Permission denied

without-ports/017.html Pass Fail ^2 Fail ^3 Pass ^2: origin of the script that invoked the method, about:blank: "actual is undefined(stack: assert_array_equals@http://w3c-test.org/resources/testharness.js:737 window[0].onmessage";

^3: origin of the script that invoked the method, about:blank: Unable to get property 'length' of undefined or null reference;

without-ports/018.html Pass Pass Pass Pass
without-ports/019.html Pass Fail ^2 Fail ^3 Pass ^2: origin of the script that invoked the method, scheme/host/port: "actual is undefined(stack: assert_array_equals@http://w3c-test.org/resources/testharness.js:737 window[0].onmessage";

^3: origin of the script that invoked the method, scheme/host/port: Unable to get property 'length' of undefined or null reference;

without-ports/020.html Pass Pass Pass Pass
without-ports/021.html Pass Pass Pass Pass
without-ports/023.html Pass Fail ^2 Pass Pass ^2: Object cloning: own properties only, don't follow prototype: "MessageChannel is not defined ...";
without-ports/024.html Pass Fail ^2 Pass Pass ^2: Object cloning: throw an exception if function values encountered: "MessageChannel is not defined ...";
without-ports/025.html Fail ^1 Fail ^2 Pass Fail ^4 ^1: MessagePort constructor properties: "assert_true: Worker MessageChannel's port not an instance of MessagePort expected true got false";

^2: MessagePort constructor properties: "MessageChannel is not defined";

^4: MessagePort constructor properties: "assert_throws: MessagePort is Callable function "function () { var p = new MessagePort();}" threw object "DOMException: NOT_SUPPORTED_ERR" ("DOMException") expected object "TypeError" ("TypeError")";

without-ports/026.html Fail ^1 Fail ^2 Fail ^3 Pass ^1: Cloning objects with getter properties: "assert_unreached: Reached unreachable code";

^2: Cloning objects with getter properties: "assert_unreached: Reached unreachable code";

^3: Cloning objects with getter properties: assert_unreached: Reached unreachable code;

without-ports/027.html Pass Pass Pass Pass
without-ports/028.html Pass Fail ^2 Pass Pass ^2: Cloning objects, preserving sharing #2: "assert_equals: expected object "[object Uint8ClampedArray]" but got object "[object ImageData]"";