mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
begin messageport, transferable objects, impl
Accept transfer argument for StructuredCloneData::write Allow structured clone reads to return a boolean Add Transferable trait Add basic skeletons to MessagePort Implement transfer and transfer-receiving steps on MessagePort Use transfer and transfer_receive in StructuredClone callbacks Implement MessageChannel Freeze the array object for the MessageEvent ports attribute Implement transfer argument on window.postMessage Use ReentrantMutex instead for MessagePortInternal Accept origin as a parameter in dispatch_jsval Fix BorrowMut crash with pending_port_message Detach port on closure and check for detached during transfer Enable webmessaging tests fix webidl fix
This commit is contained in:
parent
605ddbecd4
commit
c3b17c1201
37 changed files with 801 additions and 81 deletions
29
components/script/dom/bindings/transferable.rs
Normal file
29
components/script/dom/bindings/transferable.rs
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* 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/. */
|
||||
|
||||
//! Trait representing the concept of [transferable objects]
|
||||
//! (https://html.spec.whatwg.org/multipage/#transferable-objects).
|
||||
use crate::dom::bindings::reflector::DomObject;
|
||||
use js::jsapi::{JSContext, JSStructuredCloneReader, MutableHandleObject};
|
||||
use std::os::raw;
|
||||
|
||||
pub trait Transferable : DomObject {
|
||||
fn transfer(
|
||||
&self,
|
||||
closure: *mut raw::c_void,
|
||||
content: *mut *mut raw::c_void,
|
||||
extra_data: *mut u64,
|
||||
) -> bool;
|
||||
fn transfer_receive(
|
||||
cx: *mut JSContext,
|
||||
r: *mut JSStructuredCloneReader,
|
||||
closure: *mut raw::c_void,
|
||||
content: *mut raw::c_void,
|
||||
extra_data: u64,
|
||||
return_object: MutableHandleObject,
|
||||
) -> bool;
|
||||
fn detached(&self) -> Option<bool> { None }
|
||||
fn set_detached(&self, _value: bool) { }
|
||||
fn transferable(&self) -> bool { false }
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue