mirror of
https://github.com/servo/servo.git
synced 2025-06-06 00:25:37 +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());
|
||||
rooted!(in(scope.get_cx()) let mut message = UndefinedValue());
|
||||
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) => {
|
||||
self.upcast::<WorkerGlobalScope>().process_event(msg);
|
||||
|
|
|
@ -82,14 +82,15 @@ impl MessageEvent {
|
|||
impl MessageEvent {
|
||||
pub fn dispatch_jsval(target: &EventTarget,
|
||||
scope: &GlobalScope,
|
||||
message: HandleValue) {
|
||||
message: HandleValue,
|
||||
origin: Option<&str>) {
|
||||
let messageevent = MessageEvent::new(
|
||||
scope,
|
||||
atom!("message"),
|
||||
false,
|
||||
false,
|
||||
message,
|
||||
DOMString::new(),
|
||||
DOMString::from(origin.unwrap_or("")),
|
||||
DOMString::new());
|
||||
messageevent.upcast::<Event>().fire(target);
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ use net_traits::request::{RequestInit, RequestMode};
|
|||
use profile_traits::ipc as ProfiledIpc;
|
||||
use script_runtime::CommonScriptMsg;
|
||||
use script_runtime::ScriptThreadEventCategory::WebSocketEvent;
|
||||
use servo_url::ServoUrl;
|
||||
use servo_url::{ImmutableOrigin, ServoUrl};
|
||||
use std::borrow::ToOwned;
|
||||
use std::cell::Cell;
|
||||
use std::ptr;
|
||||
|
@ -274,6 +274,10 @@ impl WebSocket {
|
|||
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
pub fn origin(&self) -> ImmutableOrigin {
|
||||
self.url.origin()
|
||||
}
|
||||
}
|
||||
|
||||
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(),
|
||||
message_clone.handle(),
|
||||
None
|
||||
);
|
||||
});
|
||||
// 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());
|
||||
rooted!(in(global.get_cx()) let mut message = UndefinedValue());
|
||||
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) {
|
||||
|
|
|
@ -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