A generic framework for allowing web applications to support plugins