Thu 20 Jul 2023 16:15 - 16:30 at Habib Classroom (Gates G01) - ECOOP 6: Design Chair(s): Shigeru Chiba

Browsers are the main way in which most users experience the internet, which makes them a prime target for malicious entities. The best defense for the common user is to keep their browser always up-to-date, installing updates as soon as they are available. Unfortunately, updating a browser is disruptive as it results in loss of user state. Even though modern browsers reopen all pages (tabs) after an update to minimize inconvenience, this approach still loses all local user state in each page (e.g., contents of unsubmitted forms, including associated JavaScript validation state) and assumes that pages can be refreshed and result in the same contents. We believe this is an important barrier that keeps users from updating their browsers as frequently as possible.

In this paper, we present the design, implementation, and evaluation of SINATRA, which supports instantaneous browser updates that do not result in any data loss through a novel Multi-Version eXecution (MVX) approach for JavaScript programs, combined with a sophisticated proxy. SINATRA works in pure JavaScript, does not require any browser support, thus works on closed-source browsers, and requires trivial changes to each target page, that can be automated. First, SINATRA captures all the non-determinism available to a JavaScript program (e.g., event handlers executed, expired timers, invocations of Math.random). Our evaluation shows that SINATRA requires 6MB to store such events, and the memory grows at a modest rate of 256KB/s as the user keeps interacting with each page. When an update becomes available, SINATRA transfer the state by re-executing the same set of non-deterministic events on the new browser. During this time, which can be as long as 1.5 seconds, SINATRA uses MVX to allow the user to keep interacting with the old browser. Finally, SINATRA changes the roles in less than 10ms, and the user starts interacting with the new browser, effectively performing a browser update with zero downtime and no loss of state.

Thu 20 Jul

Displayed time zone: Pacific Time (US & Canada) change

15:30 - 17:00
ECOOP 6: DesignResearch Papers at Habib Classroom (Gates G01)
Chair(s): Shigeru Chiba The University of Tokyo
15:30
15m
Talk
On the Rise of Modern Software Documentation
Research Papers
Marco Raglianti Software Institute - USI, Lugano, Csaba Nagy Software Institute - USI, Lugano, Roberto Minelli Software Institute - USI, Lugano, Bin Lin Radboud University, Michele Lanza Software Institute - USI, Lugano
DOI
15:45
15m
Talk
Rust for Morello: Always-on Memory Safety, Even in Unsafe Code
Research Papers
Sarah Harris University of Kent, Simon Cooksey University of Kent, Michael Vollmer University of Kent, Mark Batty University of Kent
DOI
16:00
15m
Talk
Modular Abstract Definitional Interpreters for WebAssembly
Research Papers
Katharina Brandl JGU Mainz, Sebastian Erdweg JGU Mainz, Sven Keidel TU Darmstadt, Germany, Nils Hansen JGU Mainz
DOI Pre-print
16:15
15m
Talk
Sinatra: Stateful Instantaneous Updates for Commercial Browsers Through Multi-Version eXecution
Research Papers
Ugnius Rumsevicius University of Illinois - Chicago, Siddhanth Venkateshwaran University of Illinois - Chicago, Ellen Kidane University of Illinois - Chicago, Luís Pina University of Illinois at Chicago
DOI Pre-print
16:30
15m
Talk
The Dolorem Pattern: Growing a Language through Compile-Time Function Execution
Research Papers
Simon Henniger Technical University of Munich, Nada Amin Harvard University
DOI
16:45
15m
Talk
Breaking the Negative Cycle: Exploring the Design Space of Stratification for First-Class Datalog Constraints
Research Papers
Jonathan Lindegaard Starup Aarhus University, Magnus Madsen Aarhus University, Ondřej Lhoták University of Waterloo
DOI