Extending the functionality of web browsers