ARROW: automated repair of races on client-side web pages

AuthorWang, Weihang; Zheng, Yunhui; Liu, Peng; Xu, Lei; Zhang, Xiangyu; Eugster, Patrick
TypeConference Proceedings
AbstractModern browsers have a highly concurrent page rendering process in order to be more responsive. However, such a concurrent execution model leads to various race issues. In this paper, we present ARROW, a static technique that can automatically, safely, and cost effectively patch certain race issues on client side pages. It works by statically modeling a web page as a causal graph denoting happens-before relations between page elements, according to the rendering process in browsers. Races are detected by identifying inconsistencies between the graph and the dependence relations intended by the developer. Detected races are fixed by leveraging a constraint solver to add a set of edges with the minimum cost to the causal graph so that it is consistent with the intended dependences. The input page is then transformed to respect the repair edges. ARROW has fixed 151 races from 20 real world commercial web sites.
InISSTA 2016 Proceedings of the 25th International Symposium on Software Testing and Analysis, p.201-212