diff options
author | Keith Yeung <kungfukeith11@gmail.com> | 2016-12-11 03:52:08 -0800 |
---|---|---|
committer | Gregory Terzian <gterzian@users.noreply.github.com> | 2019-10-19 14:12:22 +0800 |
commit | c3b17c1201441c9a24c4b272108aea0196fbf1b9 (patch) | |
tree | 0de5b1ba2b8579338ffcf5639e3e06797b9d95ff /components/script/task_manager.rs | |
parent | 605ddbecd4dfbbb67849cf63774b2d7635fc3601 (diff) | |
download | servo-c3b17c1201441c9a24c4b272108aea0196fbf1b9.tar.gz servo-c3b17c1201441c9a24c4b272108aea0196fbf1b9.zip |
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
Diffstat (limited to 'components/script/task_manager.rs')
-rw-r--r-- | components/script/task_manager.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/components/script/task_manager.rs b/components/script/task_manager.rs index 40c713df5d1..a8908ea00a2 100644 --- a/components/script/task_manager.rs +++ b/components/script/task_manager.rs @@ -10,6 +10,7 @@ use crate::task_source::history_traversal::HistoryTraversalTaskSource; use crate::task_source::media_element::MediaElementTaskSource; use crate::task_source::networking::NetworkingTaskSource; use crate::task_source::performance_timeline::PerformanceTimelineTaskSource; +use crate::task_source::port_message::PortMessageQueue; use crate::task_source::remote_event::RemoteEventTaskSource; use crate::task_source::user_interaction::UserInteractionTaskSource; use crate::task_source::websocket::WebsocketTaskSource; @@ -47,6 +48,8 @@ pub struct TaskManager { #[ignore_malloc_size_of = "task sources are hard"] performance_timeline_task_source: PerformanceTimelineTaskSource, #[ignore_malloc_size_of = "task sources are hard"] + port_message_queue: PortMessageQueue, + #[ignore_malloc_size_of = "task sources are hard"] user_interaction_task_source: UserInteractionTaskSource, #[ignore_malloc_size_of = "task sources are hard"] remote_event_task_source: RemoteEventTaskSource, @@ -62,6 +65,7 @@ impl TaskManager { media_element_task_source: MediaElementTaskSource, networking_task_source: NetworkingTaskSource, performance_timeline_task_source: PerformanceTimelineTaskSource, + port_message_queue: PortMessageQueue, user_interaction_task_source: UserInteractionTaskSource, remote_event_task_source: RemoteEventTaskSource, websocket_task_source: WebsocketTaskSource, @@ -73,6 +77,7 @@ impl TaskManager { media_element_task_source, networking_task_source, performance_timeline_task_source, + port_message_queue, user_interaction_task_source, remote_event_task_source, websocket_task_source, @@ -138,6 +143,14 @@ impl TaskManager { task_source_functions!( self, + port_message_queue_with_canceller, + port_message_queue, + PortMessageQueue, + PortMessage + ); + + task_source_functions!( + self, remote_event_task_source_with_canceller, remote_event_task_source, RemoteEventTaskSource, |