diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-07-22 12:25:57 -0600 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-07-22 12:25:57 -0600 |
commit | aafc3dfa963b466303d5f241d69036f211aaad00 (patch) | |
tree | 72d504b452672a3997dd2f31c4bf16b0723d5ad7 /components/script/script_task.rs | |
parent | 3f69eadc0d55b2f065d59dae84baeac45a0bdc8e (diff) | |
parent | 79623e7b45c43870c09ed4a34609aabe050c644d (diff) | |
download | servo-aafc3dfa963b466303d5f241d69036f211aaad00.tar.gz servo-aafc3dfa963b466303d5f241d69036f211aaad00.zip |
Auto merge of #6682 - boghison:scripttask, r=jdm
Fix a few issues
- Use SmallVec<[T; N]>
- Make find_iframe a free function
- Make ProgressEvent use enums for bubbles and cancelable
- Change README, as `rust-snapshot-hash` is just a text file
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6682)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/script_task.rs')
-rw-r--r-- | components/script/script_task.rs | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/components/script/script_task.rs b/components/script/script_task.rs index 51937350df2..480514b36b2 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -22,7 +22,7 @@ use document_loader::{LoadType, DocumentLoader, NotifierData}; use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::DocumentBinding::{DocumentMethods, DocumentReadyState}; -use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLIFrameElementCast, NodeCast, EventCast}; +use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, NodeCast, EventCast}; use dom::bindings::conversions::FromJSValConvertible; use dom::bindings::conversions::StringificationBehavior; use dom::bindings::js::{JS, RootCollection, trace_roots}; @@ -35,7 +35,7 @@ use dom::document::{Document, IsHTMLDocument, DocumentHelpers, DocumentProgressH DocumentProgressTask, DocumentSource, MouseEventType}; use dom::element::{Element, AttributeHandlers}; use dom::event::{EventHelpers, EventBubbles, EventCancelable}; -use dom::htmliframeelement::{HTMLIFrameElement, HTMLIFrameElementHelpers}; +use dom::htmliframeelement::HTMLIFrameElementHelpers; use dom::uievent::UIEvent; use dom::node::{Node, NodeHelpers, NodeDamage, window_from_node}; use dom::servohtmlparser::{ServoHTMLParser, ParserContext}; @@ -1105,7 +1105,7 @@ impl ScriptTask { let page = borrowed_page.find(parent_pipeline_id).unwrap(); let doc = page.document(); - let frame_element = self.find_iframe(doc.r(), subpage_id); + let frame_element = doc.find_iframe(subpage_id); if let Some(ref frame_element) = frame_element { let element = ElementCast::from_ref(frame_element.r()); @@ -1125,7 +1125,7 @@ impl ScriptTask { let frame_element = borrowed_page.find(parent_pipeline_id).and_then(|page| { let doc = page.document(); - self.find_iframe(doc.r(), subpage_id) + doc.find_iframe(subpage_id) }); if let Some(ref frame_element) = frame_element { @@ -1141,7 +1141,7 @@ impl ScriptTask { let frame_element = borrowed_page.find(containing_pipeline_id).and_then(|page| { let doc = page.document(); - self.find_iframe(doc.r(), old_subpage_id) + doc.find_iframe(old_subpage_id) }); frame_element.r().unwrap().update_subpage_id(new_subpage_id); @@ -1292,7 +1292,7 @@ impl ScriptTask { borrowed_page.as_ref().and_then(|borrowed_page| { borrowed_page.find(parent_id).and_then(|page| { let doc = page.document(); - self.find_iframe(doc.r(), subpage_id) + doc.find_iframe(subpage_id) }) }) }); @@ -1459,16 +1459,6 @@ impl ScriptTask { window.r().reflow(ReflowGoal::ForDisplay, ReflowQueryType::NoQuery, reason); } - /// Find an iframe element in a provided document. - fn find_iframe(&self, doc: &Document, subpage_id: SubpageId) - -> Option<Root<HTMLIFrameElement>> { - let doc = NodeCast::from_ref(doc); - - doc.traverse_preorder() - .filter_map(HTMLIFrameElementCast::to_root) - .find(|node| node.r().subpage_id() == Some(subpage_id)) - } - /// This is the main entry point for receiving and dispatching DOM events. /// /// TODO: Actually perform DOM event dispatch. @@ -1547,7 +1537,7 @@ impl ScriptTask { let borrowed_page = self.root_page(); let iframe = borrowed_page.find(pipeline_id).and_then(|page| { let doc = page.document(); - self.find_iframe(doc.r(), subpage_id) + doc.find_iframe(subpage_id) }); if let Some(iframe) = iframe.r() { iframe.navigate_child_browsing_context(load_data.url); |