diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-02-11 03:51:47 -0700 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-02-11 03:51:47 -0700 |
commit | fcfa00f4df7e382f1390c26ab3fd322886d2e138 (patch) | |
tree | d9cec49904f0b08388c4b2e02393f05976c643c6 /components/script/script_task.rs | |
parent | 58b7186cea7a61645b38158053e3849d121fa487 (diff) | |
parent | 980b1efb72384f34e16191e37e9faa3142b0fb33 (diff) | |
download | servo-fcfa00f4df7e382f1390c26ab3fd322886d2e138.tar.gz servo-fcfa00f4df7e382f1390c26ab3fd322886d2e138.zip |
auto merge of #4884 : glennw/servo/iframe-load, r=jdm
Diffstat (limited to 'components/script/script_task.rs')
-rw-r--r-- | components/script/script_task.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/components/script/script_task.rs b/components/script/script_task.rs index 4b64700b8bc..983ec996794 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -31,7 +31,7 @@ use dom::htmlelement::HTMLElementTypeId; use dom::htmliframeelement::HTMLIFrameElement; use dom::keyboardevent::KeyboardEvent; use dom::mouseevent::MouseEvent; -use dom::node::{self, Node, NodeHelpers, NodeDamage, NodeTypeId}; +use dom::node::{self, Node, NodeHelpers, NodeDamage, NodeTypeId, window_from_node}; use dom::window::{Window, WindowHelpers, ScriptHelpers}; use dom::worker::{Worker, TrustedWorkerAddress}; use parse::html::{HTMLInput, parse_html}; @@ -1432,6 +1432,20 @@ impl DocumentProgressHandler { let doctarget: JSRef<EventTarget> = EventTargetCast::from_ref(document.r()); event.r().set_trusted(true); let _ = wintarget.dispatch_event_with_target(doctarget, event.r()); + + let window_ref = window.r(); + let browser_context = window_ref.browser_context(); + let browser_context = browser_context.as_ref().unwrap(); + + browser_context.frame_element().map(|frame_element| { + let frame_element = frame_element.root(); + let frame_window = window_from_node(frame_element.r()).root(); + let event = Event::new(GlobalRef::Window(frame_window.r()), "load".to_owned(), + EventBubbles::DoesNotBubble, + EventCancelable::NotCancelable).root(); + let target: JSRef<EventTarget> = EventTargetCast::from_ref(frame_element.r()); + event.r().fire(target); + }); } } |