aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/html/hubbub_html_parser.rs
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-12-12 19:36:51 -0800
committerPatrick Walton <pcwalton@mimiga.net>2013-12-13 10:43:27 -0800
commit21e8c72a7526a32733453221d4ed10ac070521dd (patch)
tree03204e5058c7b16f07a3718d240d3bacfd9a0021 /src/components/script/html/hubbub_html_parser.rs
parent499aa97fa4424cad9585e57987665542003e2597 (diff)
downloadservo-21e8c72a7526a32733453221d4ed10ac070521dd.tar.gz
servo-21e8c72a7526a32733453221d4ed10ac070521dd.zip
constellation: Stop using futures for frame sizes.
This will allow us to stop going to the DOM in order to handle iframe sizing. Instead we can just store the pipeline and frame IDs of iframes inside the flow tree itself.
Diffstat (limited to 'src/components/script/html/hubbub_html_parser.rs')
-rw-r--r--src/components/script/html/hubbub_html_parser.rs34
1 files changed, 14 insertions, 20 deletions
diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs
index b36e1d60cf2..e73d1205950 100644
--- a/src/components/script/html/hubbub_html_parser.rs
+++ b/src/components/script/html/hubbub_html_parser.rs
@@ -12,26 +12,24 @@ use dom::namespace;
use dom::node::{AbstractNode, ElementNodeTypeId, ScriptView};
use dom::types::*;
use html::cssparse::{InlineProvenance, StylesheetProvenance, UrlProvenance, spawn_css_parser};
-use js::jsapi::JSContext;
-use style::Stylesheet;
use script_task::page_from_context;
-use std::cast;
-use std::cell::Cell;
-use std::comm;
-use std::comm::{Port, SharedChan};
-use std::str;
-use std::str::eq_slice;
-use std::from_str::FromStr;
+use extra::url::Url;
use hubbub::hubbub;
+use js::jsapi::JSContext;
use servo_msg::constellation_msg::{ConstellationChan, SubpageId};
use servo_net::image_cache_task::ImageCacheTask;
use servo_net::resource_task::{Load, Payload, Done, ResourceTask, load_whole_resource};
use servo_util::tree::{TreeNodeRef, ElementLike};
use servo_util::url::make_url;
-use extra::future::Future;
-use extra::url::Url;
-use geom::size::Size2D;
+use std::cast;
+use std::cell::Cell;
+use std::comm::{Port, SharedChan};
+use std::comm;
+use std::from_str::FromStr;
+use std::str::eq_slice;
+use std::str;
+use style::Stylesheet;
macro_rules! handle_element(
($document: expr,
@@ -67,7 +65,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>>, bool)),
+ HtmlDiscoveredIFrame((Url, SubpageId, bool)),
HtmlDiscoveredScript(JSResult)
}
@@ -374,10 +372,6 @@ pub fn parse_html(cx: *JSContext,
let iframe_url = make_url(src.clone(), Some(url2.clone()));
iframe_element.frame = Some(iframe_url.clone());
- // Size future
- let (port, chan) = comm::oneshot();
- let size_future = Future::from_port(port);
-
// Subpage Id
let subpage_id = next_subpage_id.take();
next_subpage_id.put_back(SubpageId(*subpage_id + 1));
@@ -391,11 +385,11 @@ pub fn parse_html(cx: *JSContext,
iframe_element.size = Some(IFrameSize {
pipeline_id: pipeline_id,
subpage_id: subpage_id,
- future_chan: Some(chan),
constellation_chan: constellation_chan.clone(),
});
- iframe_chan.send(HtmlDiscoveredIFrame((iframe_url, subpage_id,
- size_future, sandboxed)));
+ iframe_chan.send(HtmlDiscoveredIFrame((iframe_url,
+ subpage_id,
+ sandboxed)));
}
}
}