mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
Move TrustedNodeAddress to script_layout_interface.
This commit is contained in:
parent
0616a60fd9
commit
68d603a6d0
9 changed files with 19 additions and 18 deletions
|
@ -33,7 +33,7 @@ use dom::node::Node;
|
||||||
use heapsize::HeapSizeOf;
|
use heapsize::HeapSizeOf;
|
||||||
use js::jsapi::{Heap, JSObject, JSTracer};
|
use js::jsapi::{Heap, JSObject, JSTracer};
|
||||||
use js::jsval::JSVal;
|
use js::jsval::JSVal;
|
||||||
use layout_interface::TrustedNodeAddress;
|
use script_layout_interface::TrustedNodeAddress;
|
||||||
use script_thread::STACK_ROOTS;
|
use script_thread::STACK_ROOTS;
|
||||||
use std::cell::UnsafeCell;
|
use std::cell::UnsafeCell;
|
||||||
use std::default::Default;
|
use std::default::Default;
|
||||||
|
|
|
@ -62,7 +62,7 @@ use msg::constellation_msg::PipelineId;
|
||||||
use parse::html::parse_html_fragment;
|
use parse::html::parse_html_fragment;
|
||||||
use ref_slice::ref_slice;
|
use ref_slice::ref_slice;
|
||||||
use script_layout_interface::{HTMLCanvasData, OpaqueStyleAndLayoutData};
|
use script_layout_interface::{HTMLCanvasData, OpaqueStyleAndLayoutData};
|
||||||
use script_layout_interface::{LayoutNodeType, LayoutElementType};
|
use script_layout_interface::{LayoutNodeType, LayoutElementType, TrustedNodeAddress};
|
||||||
use script_traits::UntrustedNodeAddress;
|
use script_traits::UntrustedNodeAddress;
|
||||||
use selectors::matching::matches;
|
use selectors::matching::matches;
|
||||||
use selectors::parser::Selector;
|
use selectors::parser::Selector;
|
||||||
|
@ -2409,17 +2409,6 @@ impl NodeMethods for Node {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// The address of a node known to be valid. These are sent from script to layout,
|
|
||||||
/// and are also used in the HTML parser interface.
|
|
||||||
|
|
||||||
#[derive(Clone, PartialEq, Eq, Copy)]
|
|
||||||
pub struct TrustedNodeAddress(pub *const c_void);
|
|
||||||
|
|
||||||
#[allow(unsafe_code)]
|
|
||||||
unsafe impl Send for TrustedNodeAddress {}
|
|
||||||
|
|
||||||
pub fn document_from_node<T: DerivedFrom<Node> + Reflectable>(derived: &T) -> Root<Document> {
|
pub fn document_from_node<T: DerivedFrom<Node> + Reflectable>(derived: &T) -> Root<Document> {
|
||||||
derived.upcast().owner_doc()
|
derived.upcast().owner_doc()
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@ use dom::element::Element;
|
||||||
use dom::eventtarget::EventTarget;
|
use dom::eventtarget::EventTarget;
|
||||||
use dom::location::Location;
|
use dom::location::Location;
|
||||||
use dom::navigator::Navigator;
|
use dom::navigator::Navigator;
|
||||||
use dom::node::{Node, TrustedNodeAddress, from_untrusted_node_address, window_from_node};
|
use dom::node::{Node, from_untrusted_node_address, window_from_node};
|
||||||
use dom::performance::Performance;
|
use dom::performance::Performance;
|
||||||
use dom::screen::Screen;
|
use dom::screen::Screen;
|
||||||
use dom::storage::Storage;
|
use dom::storage::Storage;
|
||||||
|
@ -59,6 +59,7 @@ use profile_traits::time::{ProfilerCategory, TimerMetadata, TimerMetadataFrameTy
|
||||||
use profile_traits::time::{ProfilerChan, TimerMetadataReflowType, profile};
|
use profile_traits::time::{ProfilerChan, TimerMetadataReflowType, profile};
|
||||||
use reporter::CSSErrorReporter;
|
use reporter::CSSErrorReporter;
|
||||||
use rustc_serialize::base64::{FromBase64, STANDARD, ToBase64};
|
use rustc_serialize::base64::{FromBase64, STANDARD, ToBase64};
|
||||||
|
use script_layout_interface::TrustedNodeAddress;
|
||||||
use script_runtime::{ScriptChan, ScriptPort};
|
use script_runtime::{ScriptChan, ScriptPort};
|
||||||
use script_thread::SendableMainThreadScriptChan;
|
use script_thread::SendableMainThreadScriptChan;
|
||||||
use script_thread::{MainThreadScriptChan, MainThreadScriptMsg, RunnableWrapper};
|
use script_thread::{MainThreadScriptChan, MainThreadScriptMsg, RunnableWrapper};
|
||||||
|
|
|
@ -14,7 +14,7 @@ use ipc_channel::ipc::{IpcReceiver, IpcSender};
|
||||||
use msg::constellation_msg::{PanicMsg, PipelineId, WindowSizeData};
|
use msg::constellation_msg::{PanicMsg, PipelineId, WindowSizeData};
|
||||||
use net_traits::image_cache_thread::ImageCacheThread;
|
use net_traits::image_cache_thread::ImageCacheThread;
|
||||||
use profile_traits::mem::ReportsChan;
|
use profile_traits::mem::ReportsChan;
|
||||||
use script_layout_interface::OpaqueStyleAndLayoutData;
|
use script_layout_interface::{OpaqueStyleAndLayoutData, TrustedNodeAddress};
|
||||||
use script_traits::{ConstellationControlMsg, LayoutControlMsg, LayoutMsg as ConstellationMsg};
|
use script_traits::{ConstellationControlMsg, LayoutControlMsg, LayoutMsg as ConstellationMsg};
|
||||||
use script_traits::{StackingContextScrollState, UntrustedNodeAddress};
|
use script_traits::{StackingContextScrollState, UntrustedNodeAddress};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
@ -37,7 +37,6 @@ pub use dom::htmlobjectelement::is_image_data;
|
||||||
pub use dom::node::{CAN_BE_FRAGMENTED, HAS_CHANGED, HAS_DIRTY_DESCENDANTS, IS_DIRTY};
|
pub use dom::node::{CAN_BE_FRAGMENTED, HAS_CHANGED, HAS_DIRTY_DESCENDANTS, IS_DIRTY};
|
||||||
pub use dom::node::LayoutNodeHelpers;
|
pub use dom::node::LayoutNodeHelpers;
|
||||||
pub use dom::node::Node;
|
pub use dom::node::Node;
|
||||||
pub use dom::node::TrustedNodeAddress;
|
|
||||||
pub use dom::text::Text;
|
pub use dom::text::Text;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -36,13 +36,13 @@ use layout_interface::{CharacterDataTypeId, Document, Element, ElementTypeId};
|
||||||
use layout_interface::{HTMLElementTypeId, LayoutCharacterDataHelpers};
|
use layout_interface::{HTMLElementTypeId, LayoutCharacterDataHelpers};
|
||||||
use layout_interface::{LayoutDocumentHelpers, LayoutElementHelpers, LayoutJS};
|
use layout_interface::{LayoutDocumentHelpers, LayoutElementHelpers, LayoutJS};
|
||||||
use layout_interface::{LayoutNodeHelpers, Node, NodeTypeId};
|
use layout_interface::{LayoutNodeHelpers, Node, NodeTypeId};
|
||||||
use layout_interface::{RawLayoutElementHelpers, Text, TrustedNodeAddress};
|
use layout_interface::{RawLayoutElementHelpers, Text};
|
||||||
use msg::constellation_msg::PipelineId;
|
use msg::constellation_msg::PipelineId;
|
||||||
use range::Range;
|
use range::Range;
|
||||||
use script_layout_interface::restyle_damage::RestyleDamage;
|
use script_layout_interface::restyle_damage::RestyleDamage;
|
||||||
use script_layout_interface::wrapper_traits::{DangerousThreadSafeLayoutNode, LayoutNode, PseudoElementType};
|
use script_layout_interface::wrapper_traits::{DangerousThreadSafeLayoutNode, LayoutNode, PseudoElementType};
|
||||||
use script_layout_interface::wrapper_traits::{ThreadSafeLayoutNode, ThreadSafeLayoutElement};
|
use script_layout_interface::wrapper_traits::{ThreadSafeLayoutNode, ThreadSafeLayoutElement};
|
||||||
use script_layout_interface::{HTMLCanvasData, LayoutNodeType};
|
use script_layout_interface::{HTMLCanvasData, LayoutNodeType, TrustedNodeAddress};
|
||||||
use script_layout_interface::{OpaqueStyleAndLayoutData, PartialStyleAndLayoutData};
|
use script_layout_interface::{OpaqueStyleAndLayoutData, PartialStyleAndLayoutData};
|
||||||
use selectors::matching::{DeclarationBlock, ElementFlags};
|
use selectors::matching::{DeclarationBlock, ElementFlags};
|
||||||
use selectors::parser::{AttrSelector, NamespaceConstraint};
|
use selectors::parser::{AttrSelector, NamespaceConstraint};
|
||||||
|
|
|
@ -15,6 +15,7 @@ gfx_traits = {path = "../gfx_traits"}
|
||||||
heapsize = "0.3.0"
|
heapsize = "0.3.0"
|
||||||
heapsize_plugin = "0.1.2"
|
heapsize_plugin = "0.1.2"
|
||||||
ipc-channel = {git = "https://github.com/servo/ipc-channel"}
|
ipc-channel = {git = "https://github.com/servo/ipc-channel"}
|
||||||
|
libc = "0.2"
|
||||||
msg = {path = "../msg"}
|
msg = {path = "../msg"}
|
||||||
plugins = {path = "../plugins"}
|
plugins = {path = "../plugins"}
|
||||||
range = {path = "../range"}
|
range = {path = "../range"}
|
||||||
|
|
|
@ -22,6 +22,7 @@ extern crate core;
|
||||||
extern crate gfx_traits;
|
extern crate gfx_traits;
|
||||||
extern crate heapsize;
|
extern crate heapsize;
|
||||||
extern crate ipc_channel;
|
extern crate ipc_channel;
|
||||||
|
extern crate libc;
|
||||||
extern crate msg;
|
extern crate msg;
|
||||||
extern crate range;
|
extern crate range;
|
||||||
extern crate selectors;
|
extern crate selectors;
|
||||||
|
@ -36,6 +37,7 @@ pub mod wrapper_traits;
|
||||||
use canvas_traits::CanvasMsg;
|
use canvas_traits::CanvasMsg;
|
||||||
use core::nonzero::NonZero;
|
use core::nonzero::NonZero;
|
||||||
use ipc_channel::ipc::IpcSender;
|
use ipc_channel::ipc::IpcSender;
|
||||||
|
use libc::c_void;
|
||||||
use restyle_damage::RestyleDamage;
|
use restyle_damage::RestyleDamage;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use style::servo::PrivateStyleData;
|
use style::servo::PrivateStyleData;
|
||||||
|
@ -87,3 +89,10 @@ pub struct HTMLCanvasData {
|
||||||
pub width: u32,
|
pub width: u32,
|
||||||
pub height: u32,
|
pub height: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// The address of a node known to be valid. These are sent from script to layout.
|
||||||
|
#[derive(Clone, PartialEq, Eq, Copy)]
|
||||||
|
pub struct TrustedNodeAddress(pub *const c_void);
|
||||||
|
|
||||||
|
#[allow(unsafe_code)]
|
||||||
|
unsafe impl Send for TrustedNodeAddress {}
|
||||||
|
|
1
components/servo/Cargo.lock
generated
1
components/servo/Cargo.lock
generated
|
@ -1937,6 +1937,7 @@ dependencies = [
|
||||||
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ipc-channel 0.2.3 (git+https://github.com/servo/ipc-channel)",
|
"ipc-channel 0.2.3 (git+https://github.com/servo/ipc-channel)",
|
||||||
|
"libc 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"msg 0.0.1",
|
"msg 0.0.1",
|
||||||
"plugins 0.0.1",
|
"plugins 0.0.1",
|
||||||
"range 0.0.1",
|
"range 0.0.1",
|
||||||
|
|
1
ports/cef/Cargo.lock
generated
1
ports/cef/Cargo.lock
generated
|
@ -1795,6 +1795,7 @@ dependencies = [
|
||||||
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ipc-channel 0.2.3 (git+https://github.com/servo/ipc-channel)",
|
"ipc-channel 0.2.3 (git+https://github.com/servo/ipc-channel)",
|
||||||
|
"libc 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"msg 0.0.1",
|
"msg 0.0.1",
|
||||||
"plugins 0.0.1",
|
"plugins 0.0.1",
|
||||||
"range 0.0.1",
|
"range 0.0.1",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue