Create initial browser id for compositor on startup.

This commit is contained in:
Josh Matthews 2021-10-16 11:10:25 -04:00
parent 74f1eb199e
commit 6b50d7025c
7 changed files with 47 additions and 39 deletions

View file

@ -217,9 +217,10 @@ impl ServoThread {
.swap_chain()
.expect("Failed to get webrender swap chain")
.clone();
let mut servo = Servo::new(embedder, window, None);
let servo = Servo::new(embedder, window, None);
let id = servo.top_level_browsing_context_id;
let mut servo = servo.servo;
let id = TopLevelBrowsingContextId::new();
servo.handle_events(vec![WindowEvent::NewBrowser(url, id)]);
let swap_chain = match webxr_mode {

View file

@ -306,7 +306,7 @@ pub fn init(
SERVO.with(|s| {
let mut servo_glue = ServoGlue {
webrender_surfman,
servo,
servo: servo.servo,
batch_mode: false,
callbacks: window_callbacks,
browser_id: None,
@ -314,8 +314,7 @@ pub fn init(
events: vec![],
context_menu_sender: None,
};
let browser_id = BrowserId::new();
let _ = servo_glue.process_event(WindowEvent::NewBrowser(url, browser_id));
let _ = servo_glue.process_event(WindowEvent::NewBrowser(url, servo.browser_id));
*s.borrow_mut() = Some(servo_glue);
});

View file

@ -100,9 +100,9 @@ impl App {
xr_discovery,
));
let mut servo = Servo::new(embedder, window.clone(), user_agent.clone());
let browser_id = BrowserId::new();
servo.handle_events(vec![WindowEvent::NewBrowser(get_default_url(), browser_id)]);
let servo_data = Servo::new(embedder, window.clone(), user_agent.clone());
let mut servo = servo_data.servo;
servo.handle_events(vec![WindowEvent::NewBrowser(get_default_url(), servo_data.browser_id)]);
servo.setup_logging();
register_window(window.clone());