- From: Mark Foltz via GitHub <sysbot+gh@w3.org>
- Date: Tue, 10 Nov 2015 19:23:08 +0000
- To: public-secondscreen@w3.org
Since the only state change that would need further explanation is the
one that transitions from connected to closed, what about firing a
separate `CloseEvent` with a result code, similar to WebSockets? [1]
We could use this to also convey the last message sent if the socket
closed with a write error, which would resolve #149 and no longer
require a separate `error` event.
Specific proposal:
```
partial interface PresentationConnection : EventTarget {
attribute EventHandler onclosed;
}
enum PresentationConnectionCloseReason {
"user_requested", // User navigated, closed tab
"page_requested", // Page called .close()
"send_error", // Failed to send a message
"read_error" // Unable to read further messages
}
[Constructor(DOMString type, PresentationConnectionCloseEventInit
eventInitDict)]
interface PresentationConnectionCloseEvent : Event {
[SameObject]
readonly attribute PresentationConnectionCloseReason closeReason;
// Includes the message that failed to be sent if closeReason ==
"send_error"
readonly attribute DOMString errorMessage;
};
dictionary PresentationConnectionAvailableEventInit : EventInit {
PresentationConnectionCloseReason closeReason;
DOMString errorMessage;
};
```
[1] https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent
--
GitHub Notif of comment by mfoltzgoogle
See
https://github.com/w3c/presentation-api/issues/217#issuecomment-155538174
Received on Tuesday, 10 November 2015 19:23:15 UTC