aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-10-09 09:02:45 -0600
committerbors-servo <metajack+bors@gmail.com>2015-10-09 09:02:45 -0600
commit8c81d9ab28132cff1d792b5c99e98bea6f7870bd (patch)
treeb4aa8e1d843ecfc48acf0148ccbf647191ce6f7a
parent7880a1b25f71c9ae6a9429b46132fe49a3d7f564 (diff)
parent0ffd2f636f89f5829bc858377de8a1cdf0b6550b (diff)
downloadservo-8c81d9ab28132cff1d792b5c99e98bea6f7870bd.tar.gz
servo-8c81d9ab28132cff1d792b5c99e98bea6f7870bd.zip
Auto merge of #7885 - jimberlage:7858/null-message, r=Ms2ger
Creates empty string when passed null This should fix #7858. An empty `USVString` is now used when `data` is `None`. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7885) <!-- Reviewable:end -->
-rw-r--r--components/script/dom/webidls/WebSocket.webidl2
-rw-r--r--components/script/dom/websocket.rs4
-rw-r--r--tests/wpt/metadata/html/dom/interfaces.html.ini12
-rw-r--r--tests/wpt/metadata/websockets/interfaces.html.ini24
-rw-r--r--tests/wpt/metadata/websockets/interfaces/WebSocket/send/001.html.ini5
5 files changed, 3 insertions, 44 deletions
diff --git a/components/script/dom/webidls/WebSocket.webidl b/components/script/dom/webidls/WebSocket.webidl
index 9355b37dde1..e2652a3716f 100644
--- a/components/script/dom/webidls/WebSocket.webidl
+++ b/components/script/dom/webidls/WebSocket.webidl
@@ -28,7 +28,7 @@ interface WebSocket : EventTarget {
//messaging
attribute EventHandler onmessage;
attribute BinaryType binaryType;
- [Throws] void send(optional USVString data);
+ [Throws] void send(USVString data);
//void send(Blob data);
//void send(ArrayBuffer data);
//void send(ArrayBufferView data);
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs
index 228b8ac92c4..a04b64ded41 100644
--- a/components/script/dom/websocket.rs
+++ b/components/script/dom/websocket.rs
@@ -324,7 +324,7 @@ impl WebSocketMethods for WebSocket {
}
// https://html.spec.whatwg.org/multipage/#dom-websocket-send
- fn Send(&self, data: Option<USVString>) -> Fallible<()> {
+ fn Send(&self, data: USVString) -> Fallible<()> {
match self.ready_state.get() {
WebSocketRequestState::Connecting => {
return Err(Error::InvalidState);
@@ -346,7 +346,7 @@ impl WebSocketMethods for WebSocket {
*/
let mut other_sender = self.sender.borrow_mut();
let my_sender = other_sender.as_mut().unwrap();
- let _ = my_sender.lock().unwrap().send_message(Message::Text(data.unwrap().0));
+ let _ = my_sender.lock().unwrap().send_message(Message::Text(data.0));
Ok(())
}
diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini
index a6ac270327b..9a528a172da 100644
--- a/tests/wpt/metadata/html/dom/interfaces.html.ini
+++ b/tests/wpt/metadata/html/dom/interfaces.html.ini
@@ -8733,18 +8733,6 @@
[Location interface: window.location must have own property "reload"]
expected: FAIL
- [WebSocket interface: operation send(DOMString)]
- expected: FAIL
-
- [WebSocket interface: operation send(Blob)]
- expected: FAIL
-
- [WebSocket interface: operation send(ArrayBuffer)]
- expected: FAIL
-
- [WebSocket interface: operation send(ArrayBufferView)]
- expected: FAIL
-
[HTMLOptionElement must be primary interface of new Option()]
expected: FAIL
diff --git a/tests/wpt/metadata/websockets/interfaces.html.ini b/tests/wpt/metadata/websockets/interfaces.html.ini
index 2082bc52dff..6868d95f058 100644
--- a/tests/wpt/metadata/websockets/interfaces.html.ini
+++ b/tests/wpt/metadata/websockets/interfaces.html.ini
@@ -15,18 +15,6 @@
[WebSocket interface: attribute protocol]
expected: FAIL
- [WebSocket interface: operation send(DOMString)]
- expected: FAIL
-
- [WebSocket interface: operation send(Blob)]
- expected: FAIL
-
- [WebSocket interface: operation send(ArrayBuffer)]
- expected: FAIL
-
- [WebSocket interface: operation send(ArrayBufferView)]
- expected: FAIL
-
[Stringification of new WebSocket("ws://foo")]
expected: FAIL
@@ -39,18 +27,6 @@
[WebSocket interface: new WebSocket("ws://foo") must inherit property "protocol" with the proper type (11)]
expected: FAIL
- [WebSocket interface: calling send(DOMString) on new WebSocket("ws://foo") with too few arguments must throw TypeError]
- expected: FAIL
-
- [WebSocket interface: calling send(Blob) on new WebSocket("ws://foo") with too few arguments must throw TypeError]
- expected: FAIL
-
- [WebSocket interface: calling send(ArrayBuffer) on new WebSocket("ws://foo") with too few arguments must throw TypeError]
- expected: FAIL
-
- [WebSocket interface: calling send(ArrayBufferView) on new WebSocket("ws://foo") with too few arguments must throw TypeError]
- expected: FAIL
-
[CloseEvent interface: existence and properties of interface object]
expected: FAIL
diff --git a/tests/wpt/metadata/websockets/interfaces/WebSocket/send/001.html.ini b/tests/wpt/metadata/websockets/interfaces/WebSocket/send/001.html.ini
deleted file mode 100644
index 81dc9b1e553..00000000000
--- a/tests/wpt/metadata/websockets/interfaces/WebSocket/send/001.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[001.html]
- type: testharness
- [WebSockets: send() with no args]
- expected: FAIL
-