Abstract
We examine overlays, a flexible aspect-like mechanism for third-party declarative extensions of declarative UIs. Overlays can be defined for any markup language and permit extensions to define new content that is dynamically woven into a base UI document. While powerful, overlays are inherently non-modular and may conflict with each other, by defining duplicate or contradictory UI components. We construct an abstract language to capture core overlay semantics, and design an automatic analysis to detect inter-extension conflicts. We apply the analysis to a case study of Firefox extensions, finding several real-world bugs. Our analysis provides low-level feedback to extension developers and high-level reports to end users. Finally, we show how variants of overlays more expressive than those of Firefox complicate conflict detection.
- V. M. Antimirov and P. D. Mosses. Rewriting extended regular expressions. Theoretical Computer Science, 143 (1): 51 -- 72, 1995. Google Scholar
Digital Library
- M. Benedikt and C. Koch. XPath leashed. ACM Computing Surveys (CSUR), 41: 3:1--3:54, Jan. 2009. Google Scholar
Digital Library
- M. Benedikt, W. Fan, and F. Geerts. XPath satisfiability in the presence of DTDs. Journal of the ACM (JACM), 55 (2): 1--79, 2008. Google Scholar
Digital Library
- J. A. Brzozowski. Derivatives of regular expressions. Journal of the ACM (JACM), 11: 481--494, Oct. 1964. Google Scholar
Digital Library
- C. Calcagno, T. Dinsdale-Young, and P. Gardner. Adjunct elimination in context logic for trees. In Z. Shao, editor, Programming Languages and Systems, volume 4807 of Lecture Notes in Computer Science, pages 255--270. Springer Berlin / Heidelberg, 2007. Google Scholar
Digital Library
- J. Cheney. Satisfiability algorithms for conjunctive queries over trees. In International Conference on Database Theory (ICDT), 2011. Google Scholar
Digital Library
- P. Gardner and U. Zarfaty. An introduction to context logic. In D. Leivant and R. de Queiroz, editors, Logic, Language, Information and Computation, volume 4576 of Lecture Notes in Computer Science, pages 189--202. Springer Berlin / Heidelberg, 2007. Google Scholar
Digital Library
- J. Jacobson. A formalization of darcs patch theory using inverse semigroups. Technical Report (09--83), UCLA Computational and Applied Mathematics, Oct. 2009. http://www.math.ucla.edu/ jjacobson/patch-theory/.Google Scholar
- B. S. Lerner. Designing for Extensibility and Planning for Conflict: Experiments in Web-Browser Design. PhD thesis, University of Washington Computer Science & Engineering, Aug. 2011. Google Scholar
Digital Library
- I. Lynagh. Darcs patch theory (more or less). Originally posted to darcs-users mailing list, Sept. 2008. http://lists.osuosl.org/pipermail/darcs-users/2008-August/013040.html.Google Scholar
- Mozilla. XUL overlays. Written Jan. 2010. https://developer.mozilla.org/en/XUL_Overlays.Google Scholar
- M.-J. Nederhof and G. Satta. The language intersection problem for non-recursive context-free grammars. Information and Computation, 192 (2): 172 -- 184, 2004. Google Scholar
Digital Library
- J. Scott. How many Firefox users have add-ons installed? 85%! Written June 2011. http://blog.mozilla.com/addons/2011/06/21/firefox-4-add-on-users/.Google Scholar
Index Terms
Detecting conflicts among declarative UI extensions
Recommendations
Detecting conflicts among declarative UI extensions
DLS '12: Proceedings of the 8th symposium on Dynamic languagesWe examine overlays, a flexible aspect-like mechanism for third-party declarative extensions of declarative UIs. Overlays can be defined for any markup language and permit extensions to define new content that is dynamically woven into a base UI ...
Verified Security for Browser Extensions
SP '11: Proceedings of the 2011 IEEE Symposium on Security and PrivacyPopup blocking, form filling, and many other features of modern web browsers were first introduced as third-party extensions. New extensions continue to enrich browsers in unanticipated ways. However, powerful extensions require capabilities, such as ...
Reconciling transactional conflicts with compiler's help
CGO '12: Proceedings of the Tenth International Symposium on Code Generation and OptimizationSoftware transactional memory(STM) is a promising programming paradigm for shared memory multithreaded programs. While STM offers the promise of being less error-prone and more programmer friendly compared to traditional lock-based synchronization, it ...







Comments