Back to Search Start Over

Dynamic Software Updates for Unmodified Browsers through Multi-Version Execution

Authors :
Venkateshwaran, Siddhanth
Kidane, Ellen
Pina, Luís
Publication Year :
2021

Abstract

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. 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 5MB to store such events, and the memory grows at a modest rate of 23.1KB/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 13 seconds, SINATRA uses MVX to allow the user to keep interacting with the old browser. Finally, SINATRA changes the roles in 353ms, and the user starts interacting with the new browser, effectively performing a browser update with zero downtime and no loss of state.<br />Comment: 23 pages, 5 tables, 8 figures

Details

Database :
arXiv
Publication Type :
Report
Accession number :
edsarx.2106.04655
Document Type :
Working Paper