Collaborative web extensions: a P2P approach

Web extensions are powerful software artifacts that allow end-users to adapt and enrich a website. These extensions run on the user's web browser as a single-user software that manipulates available third-party web contents. Many of them offer some collaborative features that depend on a web application. The need of two co-depending software artifacts (the web application as back-end and the web extensions as front-end) increases complexity, making the system harder to develop and maintain. In this paper we tackle this problem by proposing a P2P approach to build collaborative web extensions. The approach involves a middleware and a framework. On the one hand, the middleware serves to manage the resources offered by the browser so multiple P2P extensions can coexist. It ensures that the overall performance of the browser is not degraded by the collaborative web extension. On the other hand, the proposed framework is intended to allow developers without experience in P2P to create collaborative web extensions on top of the middleware. This paper discusses the main challenges of building P2P web extensions, presents the approach, and two case studies focused on the use of the framework for inexperienced developers.