mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Move ScriptMsg from msg crate into script_traits
This commit is contained in:
parent
8ba470d79f
commit
5507be2653
30 changed files with 121 additions and 109 deletions
|
@ -7,18 +7,28 @@ authors = ["The Servo Project Developers"]
|
|||
name = "script_traits"
|
||||
path = "lib.rs"
|
||||
|
||||
[dependencies.canvas_traits]
|
||||
path = "../canvas_traits"
|
||||
|
||||
[dependencies.msg]
|
||||
path = "../msg"
|
||||
|
||||
[dependencies.net_traits]
|
||||
path = "../net_traits"
|
||||
|
||||
[dependencies.offscreen_gl_context]
|
||||
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
||||
features = ["texture_surface"]
|
||||
|
||||
[dependencies.plugins]
|
||||
path = "../plugins"
|
||||
|
||||
[dependencies.profile_traits]
|
||||
path = "../profile_traits"
|
||||
|
||||
[dependencies.style_traits]
|
||||
path = "../style_traits"
|
||||
|
||||
[dependencies.util]
|
||||
path = "../util"
|
||||
|
||||
|
|
|
@ -11,18 +11,23 @@
|
|||
#![deny(missing_docs)]
|
||||
|
||||
extern crate app_units;
|
||||
extern crate canvas_traits;
|
||||
extern crate devtools_traits;
|
||||
extern crate euclid;
|
||||
extern crate ipc_channel;
|
||||
extern crate libc;
|
||||
extern crate msg;
|
||||
extern crate net_traits;
|
||||
extern crate offscreen_gl_context;
|
||||
extern crate profile_traits;
|
||||
extern crate serde;
|
||||
extern crate style_traits;
|
||||
extern crate time;
|
||||
extern crate url;
|
||||
extern crate util;
|
||||
|
||||
mod script_msg;
|
||||
|
||||
use app_units::Au;
|
||||
use devtools_traits::ScriptToDevtoolsControlMsg;
|
||||
use euclid::length::Length;
|
||||
|
@ -31,7 +36,6 @@ use euclid::rect::Rect;
|
|||
use ipc_channel::ipc::{IpcReceiver, IpcSender};
|
||||
use libc::c_void;
|
||||
use msg::compositor_msg::{Epoch, LayerId, ScriptToCompositorMsg};
|
||||
use msg::constellation_msg::ScriptMsg as ConstellationMsg;
|
||||
use msg::constellation_msg::{ConstellationChan, Failure, PipelineId, WindowSizeData};
|
||||
use msg::constellation_msg::{Key, KeyModifiers, KeyState, LoadData, SubpageId};
|
||||
use msg::constellation_msg::{MouseButton, MouseEventType};
|
||||
|
@ -45,6 +49,8 @@ use std::any::Any;
|
|||
use util::ipc::OptionalOpaqueIpcSender;
|
||||
use util::mem::HeapSizeOf;
|
||||
|
||||
pub use script_msg::ScriptMsg;
|
||||
|
||||
/// The address of a node. Layout sends these back. They must be validated via
|
||||
/// `from_untrusted_node_address` before they can be used, because we do not trust layout.
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
|
@ -249,7 +255,7 @@ pub struct InitialScriptState {
|
|||
/// A port on which messages sent by the constellation to script can be received.
|
||||
pub control_port: IpcReceiver<ConstellationControlMsg>,
|
||||
/// A channel on which messages can be sent to the constellation from script.
|
||||
pub constellation_chan: ConstellationChan<ConstellationMsg>,
|
||||
pub constellation_chan: ConstellationChan<ScriptMsg>,
|
||||
/// A channel to schedule timer events.
|
||||
pub scheduler_chan: IpcSender<TimerEventRequest>,
|
||||
/// Information that script sends out when it panics.
|
||||
|
|
69
components/script_traits/script_msg.rs
Normal file
69
components/script_traits/script_msg.rs
Normal file
|
@ -0,0 +1,69 @@
|
|||
/* 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 canvas_traits::CanvasMsg;
|
||||
use euclid::point::Point2D;
|
||||
use euclid::size::Size2D;
|
||||
use ipc_channel::ipc::IpcSender;
|
||||
use msg::constellation_msg::{AnimationState, IframeLoadInfo, NavigationDirection};
|
||||
use msg::constellation_msg::{Failure, MozBrowserEvent, PipelineId};
|
||||
use msg::constellation_msg::{LoadData, SubpageId};
|
||||
use msg::constellation_msg::{MouseButton, MouseEventType};
|
||||
use offscreen_gl_context::GLContextAttributes;
|
||||
use style_traits::viewport::ViewportConstraints;
|
||||
use url::Url;
|
||||
use util::cursor::Cursor;
|
||||
|
||||
/// Messages from the script to the constellation.
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub enum ScriptMsg {
|
||||
/// Indicates whether this pipeline is currently running animations.
|
||||
ChangeRunningAnimationsState(PipelineId, AnimationState),
|
||||
/// Requests that a new 2D canvas thread be created. (This is done in the constellation because
|
||||
/// 2D canvases may use the GPU and we don't want to give untrusted content access to the GPU.)
|
||||
CreateCanvasPaintTask(Size2D<i32>, IpcSender<(IpcSender<CanvasMsg>, usize)>),
|
||||
/// Requests that a new WebGL thread be created. (This is done in the constellation because
|
||||
/// WebGL uses the GPU and we don't want to give untrusted content access to the GPU.)
|
||||
CreateWebGLPaintTask(Size2D<i32>,
|
||||
GLContextAttributes,
|
||||
IpcSender<Result<(IpcSender<CanvasMsg>, usize), String>>),
|
||||
/// Dispatched after the DOM load event has fired on a document
|
||||
/// Causes a `load` event to be dispatched to any enclosing frame context element
|
||||
/// for the given pipeline.
|
||||
DOMLoad(PipelineId),
|
||||
/// Script task failure.
|
||||
Failure(Failure),
|
||||
/// Notifies the constellation that this frame has received focus.
|
||||
Focus(PipelineId),
|
||||
/// Re-send a mouse button event that was sent to the parent window.
|
||||
ForwardMouseButtonEvent(PipelineId, MouseEventType, MouseButton, Point2D<f32>),
|
||||
/// Re-send a mouse move event that was sent to the parent window.
|
||||
ForwardMouseMoveEvent(PipelineId, Point2D<f32>),
|
||||
/// Requests that the constellation retrieve the current contents of the clipboard
|
||||
GetClipboardContents(IpcSender<String>),
|
||||
/// <head> tag finished parsing
|
||||
HeadParsed,
|
||||
/// All pending loads are complete.
|
||||
LoadComplete(PipelineId),
|
||||
/// A new load has been requested.
|
||||
LoadUrl(PipelineId, LoadData),
|
||||
/// Dispatch a mozbrowser event to a given iframe. Only available in experimental mode.
|
||||
MozBrowserEvent(PipelineId, SubpageId, MozBrowserEvent),
|
||||
/// HTMLIFrameElement Forward or Back navigation.
|
||||
Navigate(Option<(PipelineId, SubpageId)>, NavigationDirection),
|
||||
/// Favicon detected
|
||||
NewFavicon(Url),
|
||||
/// Status message to be displayed in the chrome, eg. a link URL on mouseover.
|
||||
NodeStatus(Option<String>),
|
||||
/// Notification that this iframe should be removed.
|
||||
RemoveIFrame(PipelineId),
|
||||
/// A load has been requested in an IFrame.
|
||||
ScriptLoadedURLInIFrame(IframeLoadInfo),
|
||||
/// Requests that the constellation set the contents of the clipboard
|
||||
SetClipboardContents(String),
|
||||
/// Requests that the constellation inform the compositor of the a cursor change.
|
||||
SetCursor(Cursor),
|
||||
/// Notifies the constellation that the viewport has been constrained in some manner
|
||||
ViewportConstrained(PipelineId, ViewportConstraints),
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue