Dynamic Software Updates for Unmodified Browsers through Multi-Version Execution

06/08/2021
by   Siddhanth Venkateshwaran, et al.
0

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.

READ FULL TEXT
research
03/10/2023

CXLMemSim: A pure software simulated CXL.mem for performance characterization

The emerging CXL.mem standard provides a new type of byte-addressable re...
research
04/11/2019

Synthesizing Database Programs for Schema Refactoring

Many programs that interact with a database need to undergo schema refac...
research
09/04/2017

Reversing Imperative Parallel Programs

We propose an approach and a subsequent extension for reversing imperati...
research
08/02/2018

Regulating Access to System Sensors in Cooperating Programs

Modern operating systems such as Android, iOS, Windows Phone, and Chrome...
research
09/06/2021

SENSATION: An Authoring Tool to Support Event-State Paradigm in End-User Development

In this paper, we present the design and the evaluation of an authoring ...
research
02/10/2023

Transactional Panorama: A Conceptual Framework for User Perception in Analytical Visual Interfaces

Many tools empower analysts and data scientists to consume analysis resu...
research
07/04/2018

Multi-Stage JavaScript

Multi-stage languages support generative metaprogramming via macros eval...

Please sign up or login with your details

Forgot password? Click here to reset