зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #4096 - Adding a new webidl and websocket.rs file (from servo:websocket); r=Ms2ger
Closes #3813. Source-Repo: https://github.com/servo/servo Source-Revision: 62edb842c7d89f2349c4c030139cbf5a927d1eb1
This commit is contained in:
Родитель
873b4aa8c7
Коммит
fafec6e841
|
@ -38,6 +38,7 @@ pub enum ListenerPhase {
|
|||
#[jstraceable]
|
||||
pub enum EventTargetTypeId {
|
||||
NodeTargetTypeId(NodeTypeId),
|
||||
WebSocketTypeId,
|
||||
WindowTypeId,
|
||||
WorkerTypeId,
|
||||
WorkerGlobalScopeTypeId(WorkerGlobalScopeId),
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
/* 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/. */
|
||||
|
||||
[Constructor(DOMString url)]
|
||||
interface WebSocket : EventTarget {
|
||||
readonly attribute DOMString url;
|
||||
//attribute DOMString port;
|
||||
//attribute DOMString host;
|
||||
//ready state
|
||||
const unsigned short CONNECTING = 0;
|
||||
const unsigned short OPEN = 1;
|
||||
const unsigned short CLOSING = 2;
|
||||
const unsigned short CLOSED = 3;
|
||||
//readonly attribute unsigned short readyState;
|
||||
//readonly attribute unsigned long bufferedAmount;
|
||||
//networking
|
||||
//attribute EventHandler onopen;
|
||||
//attribute EventHandler onerror;
|
||||
//attribute EventHandler onclose;
|
||||
//readonly attribute DOMString extensions;
|
||||
//readonly attribute DOMString protocol;
|
||||
//void send(USVString data);
|
||||
//void send(Blob data);
|
||||
//void send(ArrayBuffer data);
|
||||
//void send(ArrayBufferView data);
|
||||
};
|
|
@ -0,0 +1,49 @@
|
|||
/* 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/. */
|
||||
|
||||
use dom::bindings::codegen::Bindings::WebSocketBinding;
|
||||
use dom::bindings::codegen::Bindings::WebSocketBinding::WebSocketMethods;
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{Temporary, JSRef};
|
||||
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
|
||||
use dom::eventtarget::{EventTarget, WebSocketTypeId};
|
||||
use servo_util::str::DOMString;
|
||||
|
||||
#[dom_struct]
|
||||
pub struct WebSocket {
|
||||
eventtarget: EventTarget,
|
||||
url: DOMString
|
||||
}
|
||||
|
||||
impl WebSocket {
|
||||
pub fn new_inherited(url: DOMString) -> WebSocket {
|
||||
WebSocket {
|
||||
eventtarget: EventTarget::new_inherited(WebSocketTypeId),
|
||||
url: url
|
||||
}
|
||||
}
|
||||
|
||||
pub fn new(global: &GlobalRef, url: DOMString) -> Temporary<WebSocket> {
|
||||
reflect_dom_object(box WebSocket::new_inherited(url),
|
||||
global,
|
||||
WebSocketBinding::Wrap)
|
||||
}
|
||||
|
||||
pub fn Constructor(global: &GlobalRef, url: DOMString) -> Fallible<Temporary<WebSocket>> {
|
||||
Ok(WebSocket::new(global, url))
|
||||
}
|
||||
}
|
||||
|
||||
impl Reflectable for WebSocket {
|
||||
fn reflector<'a>(&'a self) -> &'a Reflector {
|
||||
self.eventtarget.reflector()
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> WebSocketMethods for JSRef<'a, WebSocket> {
|
||||
fn Url(self) -> DOMString {
|
||||
self.url.clone()
|
||||
}
|
||||
}
|
|
@ -203,6 +203,7 @@ pub mod dom {
|
|||
pub mod urlsearchparams;
|
||||
pub mod validitystate;
|
||||
pub mod virtualmethods;
|
||||
pub mod websocket;
|
||||
pub mod window;
|
||||
pub mod worker;
|
||||
pub mod workerglobalscope;
|
||||
|
|
|
@ -164,6 +164,7 @@ var interfaceNamesInGlobalScope = [
|
|||
"UIEvent",
|
||||
"URLSearchParams",
|
||||
"ValidityState",
|
||||
"WebSocket",
|
||||
"Window",
|
||||
"Worker",
|
||||
"WorkerGlobalScope", // #2823
|
||||
|
|
Загрузка…
Ссылка в новой задаче