Ability to create new TopLevelBrowsingContext

This commit is contained in:
Paul Rouget 2017-07-15 07:35:59 +02:00
parent 899aa0c371
commit bb3ac8f266
5 changed files with 24 additions and 12 deletions

View file

@ -818,6 +818,13 @@ impl<Window: WindowMethods> IOCompositor<Window> {
self.webrender.set_profiler_enabled(!profiler_enabled);
self.webrender_api.generate_frame(self.webrender_document, None);
}
WindowEvent::NewBrowser(url, response_chan) => {
let msg = ConstellationMsg::NewBrowser(url, response_chan);
if let Err(e) = self.constellation_chan.send(msg) {
warn!("Sending NewBrowser message to constellation failed ({}).", e);
}
}
}
}

View file

@ -71,6 +71,8 @@ pub enum WindowEvent {
/// Toggles the Web renderer profiler on and off
ToggleWebRenderProfiler,
Reload(TopLevelBrowsingContextId),
/// Create a new top level browsing context
NewBrowser(ServoUrl, IpcSender<TopLevelBrowsingContextId>),
}
impl Debug for WindowEvent {
@ -93,6 +95,7 @@ impl Debug for WindowEvent {
WindowEvent::Quit => write!(f, "Quit"),
WindowEvent::ToggleWebRenderProfiler => write!(f, "ToggleWebRenderProfiler"),
WindowEvent::Reload(..) => write!(f, "Reload"),
WindowEvent::NewBrowser(..) => write!(f, "NewBrowser"),
}
}
}