aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout_traits/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout_traits/lib.rs')
-rw-r--r--components/layout_traits/lib.rs54
1 files changed, 54 insertions, 0 deletions
diff --git a/components/layout_traits/lib.rs b/components/layout_traits/lib.rs
new file mode 100644
index 00000000000..612ba246e76
--- /dev/null
+++ b/components/layout_traits/lib.rs
@@ -0,0 +1,54 @@
+/* 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/. */
+
+#![comment = "The Servo Parallel Browser Project"]
+#![license = "MPL"]
+
+extern crate gfx;
+extern crate script_traits;
+extern crate servo_msg = "msg";
+extern crate servo_net = "net";
+extern crate servo_util = "util";
+
+// This module contains traits in layout used generically
+// in the rest of Servo.
+// The traits are here instead of in layout so
+// that these modules won't have to depend on layout.
+
+use gfx::font_cache_task::FontCacheTask;
+use gfx::render_task::RenderChan;
+use servo_msg::constellation_msg::{ConstellationChan, PipelineId};
+use servo_msg::constellation_msg::Failure;
+use servo_net::image_cache_task::ImageCacheTask;
+use servo_util::opts::Opts;
+use servo_util::time::TimeProfilerChan;
+use script_traits::{ScriptControlChan, OpaqueScriptLayoutChannel};
+use std::comm::Sender;
+
+/// Messages sent to the layout task from the constellation
+pub enum LayoutControlMsg {
+ ExitNowMsg,
+}
+
+/// A channel wrapper for constellation messages
+pub struct LayoutControlChan(pub Sender<LayoutControlMsg>);
+
+// A static method creating a layout task
+// Here to remove the compositor -> layout dependency
+pub trait LayoutTaskFactory {
+ // FIXME: use a proper static method
+ fn create(_phantom: Option<&mut Self>,
+ id: PipelineId,
+ chan: OpaqueScriptLayoutChannel,
+ pipeline_port: Receiver<LayoutControlMsg>,
+ constellation_chan: ConstellationChan,
+ failure_msg: Failure,
+ script_chan: ScriptControlChan,
+ render_chan: RenderChan,
+ img_cache_task: ImageCacheTask,
+ font_cache_task: FontCacheTask,
+ opts: Opts,
+ time_profiler_chan: TimeProfilerChan,
+ shutdown_chan: Sender<()>);
+}