From 7b3cf27c69f1ed2d5372e2f1e50ce2aab84e05a7 Mon Sep 17 00:00:00 2001 From: chansuke Date: Sun, 9 Sep 2018 22:21:35 +0900 Subject: Add task source for media element --- components/script/task_source/media_element.rs | 51 ++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 components/script/task_source/media_element.rs (limited to 'components/script/task_source/media_element.rs') diff --git a/components/script/task_source/media_element.rs b/components/script/task_source/media_element.rs new file mode 100644 index 00000000000..711af86ba08 --- /dev/null +++ b/components/script/task_source/media_element.rs @@ -0,0 +1,51 @@ +/* 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::inheritance::Castable; +use dom::bindings::refcounted::Trusted; +use dom::event::SimpleEventTask; +use dom::eventtarget::EventTarget; +use dom::window::Window; +use msg::constellation_msg::PipelineId; +use script_runtime::{CommonScriptMsg, ScriptThreadEventCategory}; +use script_thread::MainThreadScriptMsg; +use servo_atoms::Atom; +use servo_channel::Sender; +use std::fmt; +use std::result::Result; +use task::{TaskCanceller, TaskOnce}; +use task_source::{TaskSource, TaskSourceName}; + +#[derive(Clone, JSTraceable)] +pub struct MediaElementTaskSource(pub Sender, pub PipelineId); + +impl fmt::Debug for MediaElementTaskSource { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "MediaElementTaskSource(...)") + } +} + +impl TaskSource for MediaElementTaskSource { + const NAME: TaskSourceName = TaskSourceName::MediaElement; + + fn queue_with_canceller(&self, task: T, canceller: &TaskCanceller) -> Result<(), ()> + where + T: TaskOnce + 'static, + { + let msg = MainThreadScriptMsg::Common(CommonScriptMsg::Task( + ScriptThreadEventCategory::ScriptEvent, + Box::new(canceller.wrap_task(task)), + Some(self.1), + MediaElementTaskSource::NAME, + )); + self.0.send(msg).map_err(|_| ()) + } +} + +impl MediaElementTaskSource { + pub fn queue_simple_event(&self, target: &EventTarget, name: Atom, window: &Window) { + let target = Trusted::new(target); + let _ = self.queue(SimpleEventTask { target, name }, window.upcast()); + } +} -- cgit v1.2.3 From 45f7199eee82c66637ec68287eafa40a651001c4 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Thu, 1 Nov 2018 23:45:06 +0100 Subject: `cargo fix --edition` --- components/script/task_source/media_element.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'components/script/task_source/media_element.rs') diff --git a/components/script/task_source/media_element.rs b/components/script/task_source/media_element.rs index 711af86ba08..63d0f3da81b 100644 --- a/components/script/task_source/media_element.rs +++ b/components/script/task_source/media_element.rs @@ -2,20 +2,20 @@ * 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::inheritance::Castable; -use dom::bindings::refcounted::Trusted; -use dom::event::SimpleEventTask; -use dom::eventtarget::EventTarget; -use dom::window::Window; +use crate::dom::bindings::inheritance::Castable; +use crate::dom::bindings::refcounted::Trusted; +use crate::dom::event::SimpleEventTask; +use crate::dom::eventtarget::EventTarget; +use crate::dom::window::Window; use msg::constellation_msg::PipelineId; -use script_runtime::{CommonScriptMsg, ScriptThreadEventCategory}; -use script_thread::MainThreadScriptMsg; +use crate::script_runtime::{CommonScriptMsg, ScriptThreadEventCategory}; +use crate::script_thread::MainThreadScriptMsg; use servo_atoms::Atom; use servo_channel::Sender; use std::fmt; use std::result::Result; -use task::{TaskCanceller, TaskOnce}; -use task_source::{TaskSource, TaskSourceName}; +use crate::task::{TaskCanceller, TaskOnce}; +use crate::task_source::{TaskSource, TaskSourceName}; #[derive(Clone, JSTraceable)] pub struct MediaElementTaskSource(pub Sender, pub PipelineId); -- cgit v1.2.3 From 76e59a46d3aff701b2e8dfbaf047f6d5c3edcced Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Thu, 1 Nov 2018 17:23:56 +0100 Subject: Sort `use` statements --- components/script/task_source/media_element.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'components/script/task_source/media_element.rs') diff --git a/components/script/task_source/media_element.rs b/components/script/task_source/media_element.rs index 63d0f3da81b..d57368ecae1 100644 --- a/components/script/task_source/media_element.rs +++ b/components/script/task_source/media_element.rs @@ -7,15 +7,15 @@ use crate::dom::bindings::refcounted::Trusted; use crate::dom::event::SimpleEventTask; use crate::dom::eventtarget::EventTarget; use crate::dom::window::Window; -use msg::constellation_msg::PipelineId; use crate::script_runtime::{CommonScriptMsg, ScriptThreadEventCategory}; use crate::script_thread::MainThreadScriptMsg; +use crate::task::{TaskCanceller, TaskOnce}; +use crate::task_source::{TaskSource, TaskSourceName}; +use msg::constellation_msg::PipelineId; use servo_atoms::Atom; use servo_channel::Sender; use std::fmt; use std::result::Result; -use crate::task::{TaskCanceller, TaskOnce}; -use crate::task_source::{TaskSource, TaskSourceName}; #[derive(Clone, JSTraceable)] pub struct MediaElementTaskSource(pub Sender, pub PipelineId); -- cgit v1.2.3 From 9a7eeb349a8aa657e063665ac92387ab8ef3ce28 Mon Sep 17 00:00:00 2001 From: Bastien Orivel Date: Wed, 7 Nov 2018 19:48:07 +0100 Subject: Update crossbeam-channel to 0.3 --- components/script/task_source/media_element.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/task_source/media_element.rs') diff --git a/components/script/task_source/media_element.rs b/components/script/task_source/media_element.rs index d57368ecae1..aa49828d9b6 100644 --- a/components/script/task_source/media_element.rs +++ b/components/script/task_source/media_element.rs @@ -11,9 +11,9 @@ use crate::script_runtime::{CommonScriptMsg, ScriptThreadEventCategory}; use crate::script_thread::MainThreadScriptMsg; use crate::task::{TaskCanceller, TaskOnce}; use crate::task_source::{TaskSource, TaskSourceName}; +use crossbeam_channel::Sender; use msg::constellation_msg::PipelineId; use servo_atoms::Atom; -use servo_channel::Sender; use std::fmt; use std::result::Result; -- cgit v1.2.3 From a1a14459c141afc6ac6771b8a6c9ca374537edf2 Mon Sep 17 00:00:00 2001 From: Jan Andre Ikenmeyer Date: Mon, 19 Nov 2018 14:47:12 +0100 Subject: Update MPL license to https (part 3) --- components/script/task_source/media_element.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/task_source/media_element.rs') diff --git a/components/script/task_source/media_element.rs b/components/script/task_source/media_element.rs index aa49828d9b6..c0a902b373b 100644 --- a/components/script/task_source/media_element.rs +++ b/components/script/task_source/media_element.rs @@ -1,6 +1,6 @@ /* 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/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use crate::dom::bindings::inheritance::Castable; use crate::dom::bindings::refcounted::Trusted; -- cgit v1.2.3