First parameter to MessagePort / DedicatedWorkerGlobalScope.postMessage() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=158540

Reviewed by Geoffrey Garen.

Source/WebCore:

First parameter to MessagePort / DedicatedWorkerGlobalScope.postMessage() should be mandatory:
- https://html.spec.whatwg.org/multipage/comms.html#messageport
- https://html.spec.whatwg.org/multipage/workers.html#dedicated-workers-and-the-dedicatedworkerglobalscope-interface

Previously, WebKit send a bogus MessageEvent whose data attribute is undefined. This would
cause a testharness error when running the following W3C test:
- http://w3c-test.org/workers/interfaces.worker

Firefox and Chrome already correctly throw in this case. Our Window.postMessage() API is also
already throwing in this case.

Test: fast/workers/postMessage-missing-parameter.html

* bindings/js/JSMessagePortCustom.h:
(WebCore::handlePostMessage):

LayoutTests:

Add test coverage.

* fast/files/workers/inline-worker-via-blob-url.html:
* fast/workers/postMessage-missing-parameter-expected.txt: Added.
* fast/workers/postMessage-missing-parameter.html: Added.
* fast/workers/worker-messageport-expected.txt:
* fast/workers/worker-messageport.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@201835 268f45cc-cd09-0410-ab3c-d52691b4dbfc
8 files changed