mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
moved IFrameLoadInfo and IFrameSandboxState to script_traits
This commit is contained in:
parent
99d0142293
commit
0ef003c20a
5 changed files with 37 additions and 30 deletions
|
@ -30,8 +30,8 @@ use msg::compositor_msg::Epoch;
|
||||||
use msg::constellation_msg::AnimationState;
|
use msg::constellation_msg::AnimationState;
|
||||||
use msg::constellation_msg::WebDriverCommandMsg;
|
use msg::constellation_msg::WebDriverCommandMsg;
|
||||||
use msg::constellation_msg::{DocumentState, FrameId, PipelineId};
|
use msg::constellation_msg::{DocumentState, FrameId, PipelineId};
|
||||||
use msg::constellation_msg::{IframeLoadInfo, IFrameSandboxState, MozBrowserEvent, NavigationDirection};
|
|
||||||
use msg::constellation_msg::{Key, KeyModifiers, KeyState, LoadData};
|
use msg::constellation_msg::{Key, KeyModifiers, KeyState, LoadData};
|
||||||
|
use msg::constellation_msg::{MozBrowserEvent, NavigationDirection};
|
||||||
use msg::constellation_msg::{PipelineNamespace, PipelineNamespaceId};
|
use msg::constellation_msg::{PipelineNamespace, PipelineNamespaceId};
|
||||||
use msg::constellation_msg::{SubpageId, WindowSizeData};
|
use msg::constellation_msg::{SubpageId, WindowSizeData};
|
||||||
use msg::constellation_msg::{self, ConstellationChan, Failure};
|
use msg::constellation_msg::{self, ConstellationChan, Failure};
|
||||||
|
@ -45,6 +45,7 @@ use profile_traits::mem;
|
||||||
use profile_traits::time;
|
use profile_traits::time;
|
||||||
use sandboxing;
|
use sandboxing;
|
||||||
use script_traits::{CompositorEvent, ConstellationControlMsg, LayoutControlMsg};
|
use script_traits::{CompositorEvent, ConstellationControlMsg, LayoutControlMsg};
|
||||||
|
use script_traits::{IFrameLoadInfo, IFrameSandboxState};
|
||||||
use script_traits::{LayoutMsg as FromLayoutMsg, ScriptMsg as FromScriptMsg, ScriptThreadFactory};
|
use script_traits::{LayoutMsg as FromLayoutMsg, ScriptMsg as FromScriptMsg, ScriptThreadFactory};
|
||||||
use script_traits::{TimerEventRequest};
|
use script_traits::{TimerEventRequest};
|
||||||
use std::borrow::ToOwned;
|
use std::borrow::ToOwned;
|
||||||
|
@ -829,7 +830,7 @@ impl<LTF: LayoutThreadFactory, STF: ScriptThreadFactory> Constellation<LTF, STF>
|
||||||
// will result in a new pipeline being spawned and a frame tree being added to
|
// will result in a new pipeline being spawned and a frame tree being added to
|
||||||
// containing_page_pipeline_id's frame tree's children. This message is never the result of a
|
// containing_page_pipeline_id's frame tree's children. This message is never the result of a
|
||||||
// page navigation.
|
// page navigation.
|
||||||
fn handle_script_loaded_url_in_iframe_msg(&mut self, load_info: IframeLoadInfo) {
|
fn handle_script_loaded_url_in_iframe_msg(&mut self, load_info: IFrameLoadInfo) {
|
||||||
let old_pipeline_id = load_info.old_subpage_id.map(|old_subpage_id| {
|
let old_pipeline_id = load_info.old_subpage_id.map(|old_subpage_id| {
|
||||||
self.find_subpage(load_info.containing_pipeline_id, old_subpage_id).id
|
self.find_subpage(load_info.containing_pipeline_id, old_subpage_id).id
|
||||||
});
|
});
|
||||||
|
|
|
@ -36,12 +36,6 @@ impl<T: Serialize + Deserialize> Clone for ConstellationChan<T> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(PartialEq, Eq, Copy, Clone, Debug, Deserialize, Serialize)]
|
|
||||||
pub enum IFrameSandboxState {
|
|
||||||
IFrameSandboxed,
|
|
||||||
IFrameUnsandboxed
|
|
||||||
}
|
|
||||||
|
|
||||||
// We pass this info to various threads, so it lives in a separate, cloneable struct.
|
// We pass this info to various threads, so it lives in a separate, cloneable struct.
|
||||||
#[derive(Clone, Copy, Deserialize, Serialize)]
|
#[derive(Clone, Copy, Deserialize, Serialize)]
|
||||||
pub struct Failure {
|
pub struct Failure {
|
||||||
|
@ -206,23 +200,6 @@ bitflags! {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Specifies the information required to load a URL in an iframe.
|
|
||||||
#[derive(Deserialize, Serialize)]
|
|
||||||
pub struct IframeLoadInfo {
|
|
||||||
/// Url to load
|
|
||||||
pub url: Option<Url>,
|
|
||||||
/// Pipeline ID of the parent of this iframe
|
|
||||||
pub containing_pipeline_id: PipelineId,
|
|
||||||
/// The new subpage ID for this load
|
|
||||||
pub new_subpage_id: SubpageId,
|
|
||||||
/// The old subpage ID for this iframe, if a page was previously loaded.
|
|
||||||
pub old_subpage_id: Option<SubpageId>,
|
|
||||||
/// The new pipeline ID that the iframe has generated.
|
|
||||||
pub new_pipeline_id: PipelineId,
|
|
||||||
/// Sandbox type of this iframe
|
|
||||||
pub sandbox: IFrameSandboxState,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Deserialize, HeapSizeOf, Serialize)]
|
#[derive(Deserialize, HeapSizeOf, Serialize)]
|
||||||
pub enum MouseEventType {
|
pub enum MouseEventType {
|
||||||
Click,
|
Click,
|
||||||
|
|
|
@ -26,10 +26,11 @@ use dom::virtualmethods::VirtualMethods;
|
||||||
use dom::window::Window;
|
use dom::window::Window;
|
||||||
use js::jsapi::{JSAutoCompartment, JSAutoRequest, RootedValue, JSContext, MutableHandleValue};
|
use js::jsapi::{JSAutoCompartment, JSAutoRequest, RootedValue, JSContext, MutableHandleValue};
|
||||||
use js::jsval::{UndefinedValue, NullValue};
|
use js::jsval::{UndefinedValue, NullValue};
|
||||||
use msg::constellation_msg::IFrameSandboxState::{IFrameSandboxed, IFrameUnsandboxed};
|
use msg::constellation_msg::{ConstellationChan, MozBrowserEvent};
|
||||||
use msg::constellation_msg::{ConstellationChan, IframeLoadInfo, MozBrowserEvent};
|
|
||||||
use msg::constellation_msg::{NavigationDirection, PipelineId, SubpageId};
|
use msg::constellation_msg::{NavigationDirection, PipelineId, SubpageId};
|
||||||
use page::IterablePage;
|
use page::IterablePage;
|
||||||
|
use script_traits::IFrameLoadInfo;
|
||||||
|
use script_traits::IFrameSandboxState::{IFrameSandboxed, IFrameUnsandboxed};
|
||||||
use script_traits::ScriptMsg as ConstellationMsg;
|
use script_traits::ScriptMsg as ConstellationMsg;
|
||||||
use std::ascii::AsciiExt;
|
use std::ascii::AsciiExt;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
|
@ -105,7 +106,7 @@ impl HTMLIFrameElement {
|
||||||
self.containing_page_pipeline_id.set(Some(window.pipeline()));
|
self.containing_page_pipeline_id.set(Some(window.pipeline()));
|
||||||
|
|
||||||
let ConstellationChan(ref chan) = window.constellation_chan();
|
let ConstellationChan(ref chan) = window.constellation_chan();
|
||||||
let load_info = IframeLoadInfo {
|
let load_info = IFrameLoadInfo {
|
||||||
url: url,
|
url: url,
|
||||||
containing_pipeline_id: window.pipeline(),
|
containing_pipeline_id: window.pipeline(),
|
||||||
new_subpage_id: new_subpage_id,
|
new_subpage_id: new_subpage_id,
|
||||||
|
|
|
@ -49,6 +49,7 @@ use net_traits::image_cache_thread::ImageCacheThread;
|
||||||
use net_traits::storage_thread::StorageThread;
|
use net_traits::storage_thread::StorageThread;
|
||||||
use profile_traits::mem;
|
use profile_traits::mem;
|
||||||
use std::any::Any;
|
use std::any::Any;
|
||||||
|
use url::Url;
|
||||||
use util::ipc::OptionalOpaqueIpcSender;
|
use util::ipc::OptionalOpaqueIpcSender;
|
||||||
use util::mem::HeapSizeOf;
|
use util::mem::HeapSizeOf;
|
||||||
|
|
||||||
|
@ -325,3 +326,29 @@ pub enum EventResult {
|
||||||
/// Prevented by web content
|
/// Prevented by web content
|
||||||
DefaultPrevented,
|
DefaultPrevented,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Whether the sandbox attribute is present for an iframe element
|
||||||
|
#[derive(PartialEq, Eq, Copy, Clone, Debug, Deserialize, Serialize)]
|
||||||
|
pub enum IFrameSandboxState {
|
||||||
|
/// Sandbox attribute is present
|
||||||
|
IFrameSandboxed,
|
||||||
|
/// Sandbox attribute is not present
|
||||||
|
IFrameUnsandboxed
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Specifies the information required to load a URL in an iframe.
|
||||||
|
#[derive(Deserialize, Serialize)]
|
||||||
|
pub struct IFrameLoadInfo {
|
||||||
|
/// Url to load
|
||||||
|
pub url: Option<Url>,
|
||||||
|
/// Pipeline ID of the parent of this iframe
|
||||||
|
pub containing_pipeline_id: PipelineId,
|
||||||
|
/// The new subpage ID for this load
|
||||||
|
pub new_subpage_id: SubpageId,
|
||||||
|
/// The old subpage ID for this iframe, if a page was previously loaded.
|
||||||
|
pub old_subpage_id: Option<SubpageId>,
|
||||||
|
/// The new pipeline ID that the iframe has generated.
|
||||||
|
pub new_pipeline_id: PipelineId,
|
||||||
|
/// Sandbox type of this iframe
|
||||||
|
pub sandbox: IFrameSandboxState,
|
||||||
|
}
|
||||||
|
|
|
@ -2,11 +2,12 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* 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 http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
use IFrameLoadInfo;
|
||||||
use canvas_traits::CanvasMsg;
|
use canvas_traits::CanvasMsg;
|
||||||
use euclid::point::Point2D;
|
use euclid::point::Point2D;
|
||||||
use euclid::size::Size2D;
|
use euclid::size::Size2D;
|
||||||
use ipc_channel::ipc::IpcSender;
|
use ipc_channel::ipc::IpcSender;
|
||||||
use msg::constellation_msg::{AnimationState, DocumentState, IframeLoadInfo, NavigationDirection};
|
use msg::constellation_msg::{AnimationState, DocumentState, NavigationDirection};
|
||||||
use msg::constellation_msg::{Failure, MozBrowserEvent, PipelineId};
|
use msg::constellation_msg::{Failure, MozBrowserEvent, PipelineId};
|
||||||
use msg::constellation_msg::{LoadData, SubpageId};
|
use msg::constellation_msg::{LoadData, SubpageId};
|
||||||
use msg::constellation_msg::{MouseButton, MouseEventType};
|
use msg::constellation_msg::{MouseButton, MouseEventType};
|
||||||
|
@ -72,7 +73,7 @@ pub enum ScriptMsg {
|
||||||
/// Notification that this iframe should be removed.
|
/// Notification that this iframe should be removed.
|
||||||
RemoveIFrame(PipelineId),
|
RemoveIFrame(PipelineId),
|
||||||
/// A load has been requested in an IFrame.
|
/// A load has been requested in an IFrame.
|
||||||
ScriptLoadedURLInIFrame(IframeLoadInfo),
|
ScriptLoadedURLInIFrame(IFrameLoadInfo),
|
||||||
/// Requests that the constellation set the contents of the clipboard
|
/// Requests that the constellation set the contents of the clipboard
|
||||||
SetClipboardContents(String),
|
SetClipboardContents(String),
|
||||||
/// Mark a new document as active
|
/// Mark a new document as active
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue