mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Auto merge of #21430 - Eijebong:ws-origin, r=jdm
Properly set the origin on websocket messages <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21430) <!-- Reviewable:end -->
This commit is contained in:
commit
aac4a3485f
6 changed files with 17 additions and 17 deletions
|
@ -313,7 +313,7 @@ impl DedicatedWorkerGlobalScope {
|
||||||
scope.reflector().get_jsobject().get());
|
scope.reflector().get_jsobject().get());
|
||||||
rooted!(in(scope.get_cx()) let mut message = UndefinedValue());
|
rooted!(in(scope.get_cx()) let mut message = UndefinedValue());
|
||||||
data.read(scope.upcast(), message.handle_mut());
|
data.read(scope.upcast(), message.handle_mut());
|
||||||
MessageEvent::dispatch_jsval(target, scope.upcast(), message.handle());
|
MessageEvent::dispatch_jsval(target, scope.upcast(), message.handle(), None);
|
||||||
},
|
},
|
||||||
WorkerScriptMsg::Common(msg) => {
|
WorkerScriptMsg::Common(msg) => {
|
||||||
self.upcast::<WorkerGlobalScope>().process_event(msg);
|
self.upcast::<WorkerGlobalScope>().process_event(msg);
|
||||||
|
|
|
@ -82,14 +82,15 @@ impl MessageEvent {
|
||||||
impl MessageEvent {
|
impl MessageEvent {
|
||||||
pub fn dispatch_jsval(target: &EventTarget,
|
pub fn dispatch_jsval(target: &EventTarget,
|
||||||
scope: &GlobalScope,
|
scope: &GlobalScope,
|
||||||
message: HandleValue) {
|
message: HandleValue,
|
||||||
|
origin: Option<&str>) {
|
||||||
let messageevent = MessageEvent::new(
|
let messageevent = MessageEvent::new(
|
||||||
scope,
|
scope,
|
||||||
atom!("message"),
|
atom!("message"),
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
message,
|
message,
|
||||||
DOMString::new(),
|
DOMString::from(origin.unwrap_or("")),
|
||||||
DOMString::new());
|
DOMString::new());
|
||||||
messageevent.upcast::<Event>().fire(target);
|
messageevent.upcast::<Event>().fire(target);
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ use net_traits::request::{RequestInit, RequestMode};
|
||||||
use profile_traits::ipc as ProfiledIpc;
|
use profile_traits::ipc as ProfiledIpc;
|
||||||
use script_runtime::CommonScriptMsg;
|
use script_runtime::CommonScriptMsg;
|
||||||
use script_runtime::ScriptThreadEventCategory::WebSocketEvent;
|
use script_runtime::ScriptThreadEventCategory::WebSocketEvent;
|
||||||
use servo_url::ServoUrl;
|
use servo_url::{ImmutableOrigin, ServoUrl};
|
||||||
use std::borrow::ToOwned;
|
use std::borrow::ToOwned;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use std::ptr;
|
use std::ptr;
|
||||||
|
@ -274,6 +274,10 @@ impl WebSocket {
|
||||||
|
|
||||||
Ok(true)
|
Ok(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn origin(&self) -> ImmutableOrigin {
|
||||||
|
self.url.origin()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketMethods for WebSocket {
|
impl WebSocketMethods for WebSocket {
|
||||||
|
@ -549,7 +553,12 @@ impl TaskOnce for MessageReceivedTask {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
MessageEvent::dispatch_jsval(ws.upcast(), &global, message.handle());
|
MessageEvent::dispatch_jsval(
|
||||||
|
ws.upcast(),
|
||||||
|
&global,
|
||||||
|
message.handle(),
|
||||||
|
Some(&ws.origin().ascii_serialization())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2114,6 +2114,7 @@ impl Window {
|
||||||
this.upcast(),
|
this.upcast(),
|
||||||
this.upcast(),
|
this.upcast(),
|
||||||
message_clone.handle(),
|
message_clone.handle(),
|
||||||
|
None
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
// FIXME(nox): Why are errors silenced here?
|
// FIXME(nox): Why are errors silenced here?
|
||||||
|
|
|
@ -130,7 +130,7 @@ impl Worker {
|
||||||
let _ac = JSAutoCompartment::new(global.get_cx(), target.reflector().get_jsobject().get());
|
let _ac = JSAutoCompartment::new(global.get_cx(), target.reflector().get_jsobject().get());
|
||||||
rooted!(in(global.get_cx()) let mut message = UndefinedValue());
|
rooted!(in(global.get_cx()) let mut message = UndefinedValue());
|
||||||
data.read(&global, message.handle_mut());
|
data.read(&global, message.handle_mut());
|
||||||
MessageEvent::dispatch_jsval(target, &global, message.handle());
|
MessageEvent::dispatch_jsval(target, &global, message.handle(), None);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn dispatch_simple_error(address: TrustedWorkerAddress) {
|
pub fn dispatch_simple_error(address: TrustedWorkerAddress) {
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
[003.html]
|
|
||||||
type: testharness
|
|
||||||
[WebSockets: origin]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
||||||
[003.html?wss]
|
|
||||||
type: testharness
|
|
||||||
[WebSockets: origin]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue