Closed Bug 1359017 Opened 7 years ago Closed 7 years ago

Implement messageerror event

Categories

(Core :: DOM: Core & HTML, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
firefox57 --- fixed

People

(Reporter: annevk, Assigned: baku)

References

(Blocks 1 open bug)

Details

(Keywords: dev-doc-complete)

Attachments

(5 files, 3 obsolete files)

Change to HTML: https://github.com/whatwg/html/pull/2530.

Change to service workers: https://github.com/w3c/ServiceWorker/pull/1130.

Tests: https://github.com/w3c/web-platform-tests/issues/5567.

(https://github.com/w3c/web-platform-tests/pull/5003 has more tests as part of SharedArrayBuffer postMessage() integration.)
Does this block shipping SAB? (marking P1 assuming it does)
Flags: needinfo?(annevk)
Priority: -- → P1
This does not block shipping SAB and should not need to be P1.  Until the changes above land there isn't any standard that says how SAB should be handled by HTML/DOM, apart from the sketches in the ECMAScript SAB proposal, and the browsers more or less implement those sketches.  (Last I heard we at least seem to agree on a useful minimum level of support, which is that a parent can postMessage a SAB to a child dedicated worker.)

The messageerror, along with subtle aspects of sharing semantics, need to be implemented eventually but currently blocks only future standards conformance.
I disagree with that characterization (since it means we can typically just ship something based on a sketch, while our actual process is that we can't), but it's probably okay to not block on this as it's an edge case.
Flags: needinfo?(annevk)
Priority: P1 → P2
Attached patch part 1 - MessagePort (obsolete) — Splinter Review
Assignee: nobody → amarchesini
Attachment #8905866 - Flags: review?(masayuki)
Attachment #8905866 - Attachment is obsolete: true
Attachment #8905866 - Flags: review?(masayuki)
Attachment #8905867 - Flags: review?(masayuki)
Attached patch part 2 - BroadcastChannel (obsolete) — Splinter Review
Attachment #8905869 - Flags: review?(masayuki)
Attached patch part 3 - workersSplinter Review
Attachment #8905871 - Flags: review?(masayuki)
Attachment #8905867 - Attachment description: messagePort.patch → part 1 - MessagePort
Attachment #8905869 - Attachment description: broadcastChannel.patch → part 2 - BroadcastChannel
Attached patch part 4 - WindowEventHandlers (obsolete) — Splinter Review
Attachment #8905874 - Flags: review?(masayuki)
Blocks: 1360190
Attached patch part 5 - WPTSplinter Review
Attachment #8905905 - Flags: review?(masayuki)
Comment on attachment 8905867 [details] [diff] [review]
part 1 - MessagePort

First, I just roughly read around MessagePort spec for this review, so, I don't understand the detail.

>@@ -689,17 +689,17 @@ MessagePort::Entangled(nsTArray<ClonedMe
>     // only clear after `messages` have gone out of scope.
>     mMessagesForTheOtherPort.Clear();
>   }
> 
>   // We must convert the messages into SharedMessagePortMessages to avoid leaks.
>   FallibleTArray<RefPtr<SharedMessagePortMessage>> data;
>   if (NS_WARN_IF(!SharedMessagePortMessage::FromMessagesToSharedChild(aMessages,
>                                                                       data))) {
>-    // OOM, we cannot continue.
>+    DispatchError();

I see "messageerror" event should be fired when an error like OOM occurs while PostMessage() creates queue. However, I don't see this condition. Please check if this should be fired in this time.

>@@ -743,17 +743,17 @@ MessagePort::MessagesReceived(nsTArray<C
>              mState == eStateDisentangledForClose);
>   MOZ_ASSERT(mMessagesForTheOtherPort.IsEmpty());
> 
>   RemoveDocFromBFCache();
> 
>   FallibleTArray<RefPtr<SharedMessagePortMessage>> data;
>   if (NS_WARN_IF(!SharedMessagePortMessage::FromMessagesToSharedChild(aMessages,
>                                                                       data))) {
>-    // OOM, We cannot continue.
>+    DispatchError();

So, I think that this is what the spec says.

>diff --git a/dom/webidl/MessagePort.webidl b/dom/webidl/MessagePort.webidl
>--- a/dom/webidl/MessagePort.webidl
>+++ b/dom/webidl/MessagePort.webidl
>@@ -12,10 +12,11 @@ interface MessagePort : EventTarget {
>   [Throws]
>   void postMessage(any message, optional sequence<object> transferable = []);
> 
>   void start();
>   void close();
> 
>   // event handlers
>   attribute EventHandler onmessage;
>+  attribute EventHandler onmessageerror;

In strictly speaking, this change needs DOM peer's review.


r=me except webidl change and dispatching "messageerror" event from MessagePort::Entangled() is correct (or remove it if it's incorrect).
Attachment #8905867 - Flags: review?(masayuki)
Attachment #8905867 - Flags: review?(bugs)
Attachment #8905867 - Flags: review+
Comment on attachment 8905869 [details] [diff] [review]
part 2 - BroadcastChannel

>+void
>+BroadcastChannelChild::DispatchError()
>+{
>+  MessageEventInit init;
>+  init.mBubbles = false;
>+  init.mCancelable = false;

Don't you need |init.mOrigin = mOrigin;| here? The spec says that |origin attribute initialized to the serialization of sourceSettings's origin|.

>diff --git a/dom/webidl/BroadcastChannel.webidl b/dom/webidl/BroadcastChannel.webidl
>--- a/dom/webidl/BroadcastChannel.webidl
>+++ b/dom/webidl/BroadcastChannel.webidl
>@@ -1,21 +1,22 @@
> /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
> /* This Source Code Form is subject to the terms of the Mozilla Public
>  * License, v. 2.0. If a copy of the MPL was not distributed with this
>  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
>  *
>  * For more information on this interface, please see
>- * http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#broadcasting-to-other-browsing-contexts
>+ * https://html.spec.whatwg.org/#broadcastchannel
>  */
> 
> [Constructor(DOMString channel),
>  Exposed=(Window,Worker)]
> interface BroadcastChannel : EventTarget {
>   readonly attribute DOMString name;
> 
>   [Throws]
>   void postMessage(any message);
> 
>   void close();
> 
>-           attribute EventHandler onmessage;
>+  attribute EventHandler onmessage;
>+  attribute EventHandler onmessageerror;
> };

Unfortunately, this needs DOM peer's review.

r=masayuki if you set mOrigin to the MessageEventInit before initializing the messageerror event. (or ignore this if I'm wrong.)

But except the webidl part.
Attachment #8905869 - Flags: review?(masayuki)
Attachment #8905869 - Flags: review?(bugs)
Attachment #8905869 - Flags: review+
Comment on attachment 8905871 [details] [diff] [review]
part 3 - workers

>diff --git a/dom/webidl/DedicatedWorkerGlobalScope.webidl b/dom/webidl/DedicatedWorkerGlobalScope.webidl
>--- a/dom/webidl/DedicatedWorkerGlobalScope.webidl
>+++ b/dom/webidl/DedicatedWorkerGlobalScope.webidl
>@@ -19,9 +19,10 @@ interface DedicatedWorkerGlobalScope : W
>   readonly attribute DOMString name;
> 
>   [Throws]
>   void postMessage(any message, optional sequence<object> transfer = []);
> 
>   void close();
> 
>   attribute EventHandler onmessage;
>+  attribute EventHandler onmessageerror;
> };
>diff --git a/dom/webidl/Worker.webidl b/dom/webidl/Worker.webidl
>--- a/dom/webidl/Worker.webidl
>+++ b/dom/webidl/Worker.webidl
>@@ -17,16 +17,17 @@
>  Exposed=(Window,DedicatedWorker,SharedWorker,System)]
> interface Worker : EventTarget {
>   void terminate();
> 
>   [Throws]
>   void postMessage(any message, optional sequence<object> transfer = []);
> 
>   attribute EventHandler onmessage;
>+  attribute EventHandler onmessageerror;
> };

Those changes look okay to me, but I don't have the permission, unfortunately.

>diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp
>@@ -809,16 +809,31 @@ private:
>                               !aWorkerPrivate->GetParent());
>     }
> 
>     MOZ_ASSERT(aWorkerPrivate == GetWorkerPrivateFromContext(aCx));
> 
>     return DispatchDOMEvent(aCx, aWorkerPrivate, aWorkerPrivate->GlobalScope(),
>                             false);
>   }
>+
>+  void
>+  DispatchError(DOMEventTargetHelper* aTarget)
>+  {
>+    MessageEventInit init;
>+    init.mBubbles = false;
>+    init.mCancelable = false;
>+
>+    RefPtr<Event> event =
>+      MessageEvent::Constructor(aTarget, NS_LITERAL_STRING("messageerror"), init);
>+    event->SetTrusted(true);

Hmm, in the spec <https://html.spec.whatwg.org/multipage/workers.html>, "messageerror" event is just declared. I guess you see newer editor's draft or something. So, up to you about if and when this should be dispatched.

And please check if you actually don't need to set other attributes of MessageEventInit too. According to the "message" event dispatcher, this is correct, though.

>+    bool dummy;
>+    aTarget->DispatchEvent(event, &dummy);

Hmm, this *might* be dangerous, aTarget isn't guaranteed that this won't be destroyed during this call of |Dispatch()|. However, dispatching "message" event doesn't grab the aTarget with local strong pointer. So, I assume that this is safe. Otherwise, please grab it with local variable and make it safe at the "message" event dispatcher too.
Attachment #8905871 - Flags: review?(masayuki)
Attachment #8905871 - Flags: review?(bugs)
Attachment #8905871 - Flags: review+
Comment on attachment 8905874 [details] [diff] [review]
part 4 - WindowEventHandlers

>diff --git a/dom/base/PostMessageEvent.cpp b/dom/base/PostMessageEvent.cpp
>--- a/dom/base/PostMessageEvent.cpp
>+++ b/dom/base/PostMessageEvent.cpp
>@@ -138,60 +138,81 @@ PostMessageEvent::Run()
>         nsContentUtils::eDOM_PROPERTIES,
>         "TargetPrincipalDoesNotMatch",
>         params, ArrayLength(params));
> 
>       return NS_OK;
>     }
>   }
> 
>-  ErrorResult rv;
>+  IgnoredErrorResult rv;
>   JS::Rooted<JS::Value> messageData(cx);
>-  nsCOMPtr<nsPIDOMWindowInner> window = targetWindow->AsInner();
>+  nsCOMPtr<mozilla::dom::EventTarget> eventTarget = do_QueryObject(targetWindow);

This class in in mozilla::dom namespace. Omit it.

>   if (NS_WARN_IF(rv.Failed())) {
>-    return rv.StealNSResult();
>+    DispatchError(targetWindow, eventTarget);

I'm not 100% sure if dispatching messagerror event here. However, looks like reasonable.

>+    return NS_OK;
>   }
> 
>   // Create the event
>+  RefPtr<MessageEvent> event = new MessageEvent(eventTarget, nullptr, nullptr);

Looks like that you can put off creating this event immediately before calling InitMessageEvent().

> 
> 
>   Nullable<WindowProxyOrMessagePortOrServiceWorker> source;
>   source.SetValue().SetAsWindowProxy() = mSource ? mSource->AsOuter() : nullptr;
> 
>   Sequence<OwningNonNull<MessagePort>> ports;
>   if (!TakeTransferredPortsAsSequence(ports)) {
>+    DispatchError(targetWindow, eventTarget);

I'm not 100% sure if dispatching messagerror event here. However, looks like reasonable.

>+    return NS_OK;
>   }
> 
>   event->InitMessageEvent(nullptr, NS_LITERAL_STRING("message"),
>                           false /*non-bubbling */, false /*cancelable */,
>                           messageData, mCallerOrigin,
>                           EmptyString(), source, ports);
> 
>+  Dispatch(targetWindow, event);
>+  return NS_OK;
>+}
>+
>+void
>+PostMessageEvent::DispatchError(nsGlobalWindow* aTargetWindow,
>+                                mozilla::dom::EventTarget* aEventTarget)
>+{
>+  MessageEventInit init;
>+  init.mBubbles = false;
>+  init.mCancelable = false;

Don't you need to set mOrigin to mCallerOrigin?


And this needs DOM peer's review for webidl part.
Attachment #8905874 - Flags: review?(masayuki)
Attachment #8905874 - Flags: review?(bugs)
Attachment #8905874 - Flags: review+
Comment on attachment 8905905 [details] [diff] [review]
part 5 - WPT

Really nice.

And please rewrite commit messages (including previous patches) before landing for explaining what the patches do and why we need the patches.
Attachment #8905905 - Flags: review?(masayuki) → review+
Attachment #8905867 - Flags: review?(bugs) → review+
Attachment #8905869 - Flags: review?(bugs) → review+
Comment on attachment 8905869 [details] [diff] [review]
part 2 - BroadcastChannel

Hmm, this isn't right. The case when messageerror is dispatch to broadcastchannel, .origin should be set to some value.
Attachment #8905869 - Flags: review+ → review-
Comment on attachment 8905874 [details] [diff] [review]
part 4 - WindowEventHandlers

"fire an event named messageerror at targetWindow, using MessageEvent, with the origin attribute initialized to origin and the source attribute initialized to source, and then abort these steps."

I don't see origin nor source attributes initialized
Attachment #8905874 - Flags: review?(bugs) → review-
Attachment #8905871 - Flags: review?(bugs) → review+
Attachment #8905869 - Attachment is obsolete: true
Attachment #8906752 - Flags: review?(bugs)
Attachment #8905874 - Attachment is obsolete: true
Attachment #8906757 - Flags: review?(bugs)
Attachment #8906752 - Flags: review?(bugs) → review+
Comment on attachment 8906757 [details] [diff] [review]
part 4 - WindowEventHandlers

Are there some wpt tests for all this stuff?
Attachment #8906757 - Flags: review?(bugs) → review+
We certainly don't want to land this before we pass the tests dealing with SharedArrayBuffer, I think.
Possibly land after FF57 branching?
> Are there some wpt tests for all this stuff?

See patch 5.
(In reply to Olli Pettay [:smaug] from comment #20)
> We certainly don't want to land this before we pass the tests dealing with
> SharedArrayBuffer, I think.
> Possibly land after FF57 branching?

SharedArrayBuffer and onmessageerror requires a big refactoring of StructuredClone algorithm. I think the 2 parts are not completely related and they can land separately. I'll ping you on IRC about this.
Pushed by amarchesini@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/78cd991b074f
onmessageerror for MessagePort in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/8936320bf355
onmessageerror for BroadcastChannel in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/65146cc073d4
onmessageerror for Workers in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/e28d6869f6a0
onmessageerror for WindowEventHandlers in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/cfa7187f70e2
WPTs for onmessageerror, r=masayuki
Pushed by amarchesini@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/a8d6f6fd7bda
onmessageerror for MessagePort in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/354139a05e75
onmessageerror for BroadcastChannel in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/9248962260f9
onmessageerror for Workers in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/7b45c1aebf7f
onmessageerror for WindowEventHandlers in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/43d65c965f0d
WPTs for onmessageerror, r=masayuki
Backed out for failing wpt's /html/dom/reflection-forms.html:

https://hg.mozilla.org/integration/mozilla-inbound/rev/c147e40c83dad4c219095fe695a7e87f1d65054c
https://bugzilla.mozilla.org/show_bug.cgi?id=1359017
https://hg.mozilla.org/integration/mozilla-inbound/rev/18167b57d0762f92204099950b476df86ed76339
https://hg.mozilla.org/integration/mozilla-inbound/rev/37abc7027f1d66db0a2ffee7afa08b705a4bbc6b
https://hg.mozilla.org/integration/mozilla-inbound/rev/14293eee37445e85557d5b2ca1763a6e36a20b34
https://hg.mozilla.org/integration/mozilla-inbound/rev/a1dfff8f131db045f60c4b70642f0b537d42c77c

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=43d65c965f0d1f53486cc779981a1e20272cf2f5&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=130553012&repo=mozilla-inbound

[task 2017-09-13T04:45:08.360459Z] 04:45:08     INFO - TEST-START | /html/dom/reflection-forms.html
[task 2017-09-13T04:45:08.381145Z] 04:45:08     INFO - Setting pref dom.forms.inputmode (true)
[task 2017-09-13T04:45:08.643719Z] 04:45:08     INFO - PID 4146 | ++DOCSHELL 0xcd25a400 == 4 [pid = 4192] [id = {4b3ad8fb-eb16-4cda-881e-8779267422cd}]
[task 2017-09-13T04:45:08.644606Z] 04:45:08     INFO - PID 4146 | ++DOMWINDOW == 14 (0xcd25a800) [pid = 4192] [serial = 20] [outer = (nil)]
[task 2017-09-13T04:45:08.660171Z] 04:45:08     INFO - PID 4146 | [Parent 4146] WARNING: [nsFrameLoader] ReallyStartLoadingInternal tried but couldn't show remote browser.
[task 2017-09-13T04:45:08.660920Z] 04:45:08     INFO - PID 4146 | : file /builds/worker/workspace/build/src/dom/base/nsFrameLoader.cpp, line 895
[task 2017-09-13T04:45:08.668893Z] 04:45:08     INFO - PID 4146 | ++DOMWINDOW == 15 (0xcd25b400) [pid = 4192] [serial = 21] [outer = 0xcd25a800]
[task 2017-09-13T04:45:08.757323Z] 04:45:08     INFO - PID 4146 | [Child 4192] WARNING: stylo: ServoStyleSets cannot respond to document state changes yet (only matters for chrome documents). See bug 1290285.: file /builds/worker/workspace/build/src/layout/base/PresShell.cpp, line 4297
[task 2017-09-13T04:45:08.758267Z] 04:45:08     INFO - PID 4146 | [Child 4192] WARNING: stylo: ServoStyleSets cannot respond to document state changes yet (only matters for chrome documents). See bug 1290285.: file /builds/worker/workspace/build/src/layout/base/PresShell.cpp, line 4297
[task 2017-09-13T04:45:08.834222Z] 04:45:08     INFO - PID 4146 | 1505277908829	Marionette	DEBUG	Register listener.js for window 2147483668
[task 2017-09-13T04:45:08.971438Z] 04:45:08     INFO - PID 4146 | ++DOMWINDOW == 16 (0xcd25c400) [pid = 4192] [serial = 22] [outer = 0xcd25a800]
[task 2017-09-13T04:45:09.032622Z] 04:45:09     INFO - PID 4146 | [Child 4192] WARNING: stylo: ServoStyleSets cannot respond to document state changes yet (only matters for chrome documents). See bug 1290285.: file /builds/worker/workspace/build/src/layout/base/PresShell.cpp, line 4297
[task 2017-09-13T04:45:09.412308Z] 04:45:09     INFO - PID 4146 | [Child 4192] WARNING: stylo: Web Components not supported yet: file /builds/worker/workspace/build/src/dom/base/nsDocument.cpp, line 6413
[task 2017-09-13T04:45:09.412599Z] 04:45:09     INFO - PID 4146 | [Child 4192] WARNING: stylo: Web Components not supported yet: file /builds/worker/workspace/build/src/dom/base/nsDocument.cpp, line 6413
[task 2017-09-13T04:45:09.448343Z] 04:45:09     INFO - PID 4146 | [Child 4192] WARNING: stylo: ServoStyleSets cannot respond to document state changes yet (only matters for chrome documents). See bug 1290285.: file /builds/worker/workspace/build/src/layout/base/PresShell.cpp, line 4297
[task 2017-09-13T04:45:09.485497Z] 04:45:09     INFO - PID 4146 | --DOMWINDOW == 15 (0xd8654400) [pid = 4192] [serial = 6] [outer = (nil)] [url = http://web-platform.test:8000/html/dom/interfaces.html]
[task 2017-09-13T04:45:09.486496Z] 04:45:09     INFO - PID 4146 | --DOMWINDOW == 14 (0xd6d16000) [pid = 4192] [serial = 12] [outer = (nil)] [url = about:blank]
[task 2017-09-13T04:45:11.564705Z] 04:45:11     INFO - PID 4146 | [Child 4192] ###!!! ASSERTION: Empty string?: 'len || Type() == eCSSDeclaration || Type() == eEnum', file /builds/worker/workspace/build/src/dom/base/nsAttrValue.cpp, line 1797
[task 2017-09-13T04:45:11.807418Z] 04:45:11     INFO - PID 4146 | [Child 4192] ###!!! ASSERTION: Empty string?: 'len || Type() == eCSSDeclaration || Type() == eEnum', file /builds/worker/workspace/build/src/dom/base/nsAttrValue.cpp, line 1797
[task 2017-09-13T04:45:19.697409Z] 04:45:19     INFO - 
[task 2017-09-13T04:45:19.698902Z] 04:45:19     INFO - TEST-PASS | /html/dom/reflection-forms.html | select.tabIndex: setAttribute() to "\n7" 
[task 2017-09-13T04:45:19.699824Z] 04:45:19     INFO - TEST-PASS | /html/dom/reflection-forms.html | select.tabIndex: setAttribute() to "\r7" 
[task 2017-09-13T04:45:19.701075Z] 04:45:19     INFO - TEST-PASS | /html/dom/reflection-forms.html | select.tabIndex: setAttribute() to 1.5 
[task 2017-09-13T04:45:19.702029Z] 04:45:19     INFO - TEST-PASS | /html/dom/reflection-forms.html | select.tabIndex: setAttribute() to object "2" 
[task 2017-09-13T04:45:19.703375Z] 04:45:19     INFO - TEST-PASS | /html/dom/reflection-forms.html | select.tabIndex: IDL set to -36 
[task 2017-09-13T04:45:19.704292Z] 04:45:19     INFO - TEST-PASS | /html/dom/reflection-forms.html | select.tabIndex: IDL set to -1 
[task 2017-09-13T04:45:19.705216Z] 04:45:19     INFO - TEST-PASS | /html/dom/reflection-forms.html | select.tabIndex: IDL set to 0 
[task 2017-09-13T04:45:19.706497Z] 04:45:19     INFO - TEST-PASS | /html/dom/reflection-forms.html | select.tabIndex: IDL set to 1 
[task 2017-09-13T04:45:19.707863Z] 04:45:19     INFO - TEST-PASS | /html/dom/reflection-forms.html | select.tabIndex: IDL set to 2147483647 
[task 2017-09-13T04:45:19.709177Z] 04:45:19     INFO - TEST-PASS | /html/dom/reflection-forms.html | select.tabIndex: IDL set to -2147483648 
[task 2017-09-13T04:45:19.710511Z] 04:45:19     INFO - TEST-UNEXPECTED-FAIL | /html/dom/reflection-forms.html | select.autocomplete: typeof IDL attribute - assert_equals: expected "string" but got "undefined"
[task 2017-09-13T04:45:19.711873Z] 04:45:19     INFO - ReflectionTests.reflects/<@http://web-platform.test:8000/html/dom/reflection.js:620:9
[task 2017-09-13T04:45:19.713161Z] 04:45:19     INFO - Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:1485:20
[task 2017-09-13T04:45:19.714504Z] 04:45:19     INFO - test@http://web-platform.test:8000/resources/testharness.js:511:9
[task 2017-09-13T04:45:19.715471Z] 04:45:19     INFO - ReflectionHarness.test@http://web-platform.test:8000/html/dom/new-harness.js:6:3
[task 2017-09-13T04:45:19.717001Z] 04:45:19     INFO - ReflectionTests.reflects@http://web-platform.test:8000/html/dom/reflection.js:619:5
[task 2017-09-13T04:45:19.717898Z] 04:45:19     INFO - @http://web-platform.test:8000/html/dom/reflection.js:908:9
[task 2017-09-13T04:45:19.718043Z] 04:45:19     INFO - 

etc. etc.

Missing wpt manifest update?
Pushed by amarchesini@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/827df1e72041
onmessageerror for MessagePort in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/0516aaf25173
onmessageerror for BroadcastChannel in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/31af77b6355f
onmessageerror for Workers in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/065b12d3c1f3
onmessageerror for WindowEventHandlers in case StructuredClone algorithm fails when deserializing, r=masayuki, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/39c093e6dda9
onmessageerror WPTs pass, r=masayuki
Blocks: 1399446
All good. Thanks!
Flags: needinfo?(amarchesini)
Looks good, but not sure how the example in https://developer.mozilla.org/en-US/docs/Web/Events/messageerror relates. At some point you might want to link "deserialize" as well in case folks don't quite know what that means.
(In reply to Anne (:annevk) from comment #32)
> Looks good, but not sure how the example in
> https://developer.mozilla.org/en-US/docs/Web/Events/messageerror relates.

Heh, classic copy and paste error ;-)

> At
> some point you might want to link "deserialize" as well in case folks don't
> quite know what that means.

We have glossary entries for (de)serialization. I'll link to them tomorrow.
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.