Abstract
Thousands of users are streamlining their Web interactions through user scripts using special weavers such as Greasemonkey. Thousands of programmers are releasing their scripts in public repositories. Millions of downloads prove the success of this approach. So far, most scripts are just a few lines long. Although the amateurism of this community can partially explain this fact, it can also stem from the doubt about whether larger efforts will pay off. The fact that scripts directly access page structure makes scripts fragile to page upgrades. This brings the nightmare of maintenance, even more daunting considering the leisure-driven characteristic of this community. On these grounds, this work introduces interfaces for scripting. Akin to the JavaScript programming model, Scripting Interfaces are event-based, but rather than being defined in terms of low-level, user-interface events, Scripting Interfaces abstract these DOM events into conceptual events. Scripts can now subscribe to or notify of conceptual events in a similar way to what they did before. So-developed scripts improve their change resilience, portability, readability and easiness to collaborative development of scripts. This is achieved with no paradigm shift: programmers keep using native JavaScript mechanisms to handle conceptual events.
Chapter PDF
Similar content being viewed by others
References
Greasemonkey Homepage, http://www.greasespot.net/
Greasemonkey in Wikipedia, http://en.wikipedia.org/wiki/Greasemonkey
JSON (JavaScript Object Notation), http://json.org/
JSON Schema, http://json-schema.org/
W3C DOM Level 2, http://www.w3.org/DOM/DOMTR#dom2
Yahoo Pipes, http://pipes.yahoo.com/pipes/
Ennals, R., Brewer, E.A., Garofalakis, M.N., Shadle, M., Gandhi, P.: Intel Mash Maker: join the web. SIGMOD Record (2007)
Huynh, D., Mazzocchi, S., Karger, D.R.: Piggy Bank: Experience the Semantic Web Inside Your Web Browser. In: Gil, Y., Motta, E., Benjamins, V.R., Musen, M.A. (eds.) ISWC 2005. LNCS, vol. 3729, pp. 413–430. Springer, Heidelberg (2005)
Java Community Process (JCP). JSR 168: Portlet Specification Version 1.0 (2003), http://www.jcp.org/en/jsr/detail?id=168
Khare, R., Çelik, T.: Microformats: a pragmatic path to the semantic web. In: The 15th International Conference on World Wide Web (2007)
Kushmerick, N.: Languages for Web Data Extraction. In: Encyclopedia of Database Systems, p. 1595. Springer, Heidelberg (2009)
Parnas, D.L.: On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM 15, 1053–1058 (1972)
Magoulas, G.D., Chen, S.Y.(eds.): Adaptable and Adaptive Hypermedia Systems. IRM Press (2005)
Yu, J., Benatallah, B., Casati, F., Daniel, F.: Understanding Mashup Development. IEEE Internet Computing 12, 44–52 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Díaz, O., Arellano, C., Iturrioz, J. (2010). Interfaces for Scripting: Making Greasemonkey Scripts Resilient to Website Upgrades. In: Benatallah, B., Casati, F., Kappel, G., Rossi, G. (eds) Web Engineering. ICWE 2010. Lecture Notes in Computer Science, vol 6189. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13911-6_16
Download citation
DOI: https://doi.org/10.1007/978-3-642-13911-6_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-13910-9
Online ISBN: 978-3-642-13911-6
eBook Packages: Computer ScienceComputer Science (R0)