Impact of Extensions on Browser Performance: An Empirical Study on Google Chrome
<|reference_start|>Impact of Extensions on Browser Performance: An Empirical Study on Google Chrome: Web browsers have been used widely by users to conduct various online activities, such as information seeking or online shopping. To improve user experience and extend the functionality of browsers, practitioners provide mechanisms to allow users to install third-party-provided plugins (i.e., extensions) on their browsers. However, little is known about the performance implications caused by such extensions. In this paper, we conduct an empirical study to understand the impact of extensions on the user-perceived performance (i.e., energy consumption and page load time) of Google Chrome, the most popular browser. We study a total of 72 representative extensions from 11 categories (e.g., Developer Tools and Sports). We observe that browser performance can be negatively impacted by the use of extensions, even when the extensions are used in unintended circumstances (e.g., when logging into an extension is not granted but required, or when an extension is not used for designated websites). We also identify a set of factors that significantly influence the performance impact of extensions, such as code complexity and privacy practices (i.e., collection of user data) adopted by the extensions. Based on our empirical observations, we provide recommendations for developers and users to mitigate the performance impact of browser extensions, such as conducting performance testing and optimization for unintended usage scenarios of extensions, or adhering to proper usage practices of extensions (e.g., logging into an extension when required).<|reference_end|>
@article{jin2024impact,
    title={Impact of Extensions on Browser Performance: An Empirical Study on
  Google Chrome},
    author={Bihui Jin, Heng Li, Ying Zou},
    journal={arXiv preprint arXiv:2404.06827},
    year={2024},
    archivePrefix={arXiv},
    eprint={2404.06827},
    primaryClass={cs.PF cs.HC cs.SE}
}