Return a reference in BrowserContext::frame_element()

This commit is contained in:
Anthony Ramine 2015-10-17 02:17:25 +02:00
parent 1f31d5b856
commit 264e943597
3 changed files with 8 additions and 8 deletions

View file

@ -52,8 +52,8 @@ impl BrowsingContext {
self.active_document().window()
}
pub fn frame_element(&self) -> Option<Root<Element>> {
self.frame_element.as_ref().map(JS::root)
pub fn frame_element(&self) -> Option<&Element> {
self.frame_element.as_ref().map(|element| &**element)
}
pub fn window_proxy(&self) -> *mut JSObject {

View file

@ -1923,14 +1923,14 @@ impl DocumentProgressHandler {
let browsing_context = window_ref.browsing_context();
let browsing_context = browsing_context.as_ref().unwrap();
browsing_context.frame_element().map(|frame_element| {
let frame_window = window_from_node(frame_element.r());
if let Some(frame_element) = browsing_context.frame_element() {
let frame_window = window_from_node(frame_element);
let event = Event::new(GlobalRef::Window(frame_window.r()), "load".to_owned(),
EventBubbles::DoesNotBubble,
EventCancelable::NotCancelable);
let target = EventTargetCast::from_ref(frame_element.r());
let target = EventTargetCast::from_ref(frame_element);
event.r().fire(target);
});
};
document.r().notify_constellation_load();

View file

@ -411,7 +411,7 @@ impl WindowMethods for Window {
// https://html.spec.whatwg.org/multipage/#dom-frameelement
fn GetFrameElement(&self) -> Option<Root<Element>> {
self.browsing_context().as_ref().unwrap().frame_element()
self.browsing_context().as_ref().unwrap().frame_element().map(Root::from_ref)
}
// https://html.spec.whatwg.org/multipage/#dom-navigator
@ -1245,7 +1245,7 @@ impl Window {
let browsing_context = browsing_context.as_ref().unwrap();
browsing_context.frame_element().map(|frame_element| {
let window = window_from_node(frame_element.r());
let window = window_from_node(frame_element);
// FIXME(https://github.com/rust-lang/rust/issues/23338)
let r = window.r();
let context = r.browsing_context();