usenix conference policies
Modeling and Reasoning about DOM Events
12 Tuesday | 13 Wednesday | 14 Thursday | 15 Friday |
---|---|---|---|
HotCloud '12 | TaPP '12 | ||
WiAC '12 | USENIX ATC '12 | ||
UCMS '12 | HotStorage '12 | NSDR '12 | |
USENIX Cyberlaw '12 | WebApps '12 |
Benjamin S. Lerner, Matthew J. Carroll, Dan P. Kimmel, Hannah Quay-de la Vallee, and Shriram Krishnamurthi, Brown University
Web applications are fundamentally reactive. Code in a web page runs in reaction to events, which are triggered either by external stimuli or by other events. The DOM, which specifies these behaviors, is therefore central to the behavior of web applications. We define the first formal model of event behavior in the DOM, with high fidelity to the DOM specification. Our model is concise and executable, and can therefore be used for testing and verification. We have applied it in several settings: to establish some intended meta-properties of the DOM, as an oracle for testing the behavior of browsers (where it found real errors), to demonstrate unwanted interactions between extensions and validate corrections to them, and to examine the impact of a web sandbox. The model composes easily with models of other web components, as a step toward full formal modeling of the web.
Open Access Media
USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.
author = {Benjamin S. Lerner and Matthew J. Carroll and Dan P. Kimmel and Hannah Quay-de la Vallee and Shriram Krishnamurthi},
title = {Modeling and Reasoning about {DOM} Events},
booktitle = {3rd USENIX Conference on Web Application Development (WebApps 12)},
year = {2012},
isbn = {978-931971-94-2},
address = {Boston, MA},
pages = {1--12},
url = {https://www.usenix.org/conference/webapps12/technical-sessions/presentation/lerner},
publisher = {USENIX Association},
month = jun
}
connect with us