mirror of
https://github.com/servo/servo.git
synced 2025-06-18 22:34:30 +01:00
Make sandboxed iframes run with different script tasks.
This commit is contained in:
parent
25a3d4a93f
commit
9640324721
9 changed files with 123 additions and 22 deletions
|
@ -93,7 +93,7 @@ enum JSMessage {
|
|||
/// Messages generated by the HTML parser upon discovery of additional resources
|
||||
pub enum HtmlDiscoveryMessage {
|
||||
HtmlDiscoveredStyle(Stylesheet),
|
||||
HtmlDiscoveredIFrame((Url, SubpageId, Future<Size2D<uint>>)),
|
||||
HtmlDiscoveredIFrame((Url, SubpageId, Future<Size2D<uint>>, bool)),
|
||||
HtmlDiscoveredScript(JSResult)
|
||||
}
|
||||
|
||||
|
@ -272,7 +272,7 @@ pub fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode<ScriptV
|
|||
handle_element!(cx, tag, "ul", HTMLUListElementTypeId, HTMLUListElement, []);
|
||||
|
||||
handle_element!(cx, tag, "img", HTMLImageElementTypeId, HTMLImageElement, [(image: None)]);
|
||||
handle_element!(cx, tag, "iframe", HTMLIframeElementTypeId, HTMLIFrameElement, [(frame: None), (size: None)]);
|
||||
handle_element!(cx, tag, "iframe", HTMLIframeElementTypeId, HTMLIFrameElement, [(frame: None), (size: None), (sandbox: None)]);
|
||||
|
||||
handle_element!(cx, tag, "h1", HTMLHeadingElementTypeId, HTMLHeadingElement, [(level: Heading1)]);
|
||||
handle_element!(cx, tag, "h2", HTMLHeadingElementTypeId, HTMLHeadingElement, [(level: Heading2)]);
|
||||
|
@ -401,6 +401,7 @@ pub fn parse_html(cx: *JSContext,
|
|||
let iframe_chan = Cell::new(discovery_chan.clone());
|
||||
do node.with_mut_iframe_element |iframe_element| {
|
||||
let iframe_chan = iframe_chan.take();
|
||||
let sandboxed = iframe_element.is_sandboxed();
|
||||
let elem = &mut iframe_element.parent.parent;
|
||||
let src_opt = elem.get_attr("src").map(|x| x.to_str());
|
||||
for src in src_opt.iter() {
|
||||
|
@ -427,7 +428,8 @@ pub fn parse_html(cx: *JSContext,
|
|||
future_chan: Some(chan),
|
||||
constellation_chan: constellation_chan.clone(),
|
||||
});
|
||||
iframe_chan.send(HtmlDiscoveredIFrame((iframe_url, subpage_id, size_future)));
|
||||
iframe_chan.send(HtmlDiscoveredIFrame((iframe_url, subpage_id,
|
||||
size_future, sandboxed)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue