A method for isolating an extension used by a host process, the method comprising the steps of: detecting an operation by the host process, wherein the operation is related to a functionality of the extension; identifying a proxy for the extension, wherein the proxy supports the functionality related to the operation; loading the proxy into the host process; loading the extension into a virtual process, wherein the virtual process is a virtual instance of the host process; wherein the operation is an invocation of the extension, and wherein the proxy exposes, to the host process, a service API associated with the extension and the virtual process provides, to the extension, a support API associated with the host process; forwarding from the proxy in the host process to the extension in the virtual process a request associated with the operation; and forwarding, to the proxy in the host process, a response from the extension, wherein the response can be used by the proxy to support the operation by the host process; the method further comprising: the proxy rigorously adhering to the service APIs presented by the extension; if the extension attempts to return data to the host process that is not of the form or type that the host is expecting, the proxy identifying the potential problem and not passing that data to the host process; detecting an error in the virtual process; and returning control to the host process with an error indication. detecting an operation by the host process, wherein the operation is related to a functionality of the extension; identifying a proxy for the extension, wherein the proxy supports the functionality related to the operation; loading the proxy into the host process; loading the extension into a virtual process, wherein the virtual process is a virtual instance of the host process; wherein the operation is an invocation of the extension, and wherein the proxy exposes, to the host process, a service API associated with the extension and the virtual process provides, to the extension, a support API associated with the host process; forwarding from the proxy in the host process to the extension in the virtual process a request associated with the operation; and forwarding, to the proxy in the host process, a response from the extension, wherein the response can be used by the proxy to support the operation by the host process; the method further comprising: the proxy rigorously adhering to the service APIs presented by the extension; if the extension attempts to return data to the host process that is not of the form or type that the host is expecting, the proxy identifying the potential problem and not passing that data to the host process; detecting an error in the virtual process; and returning control to the host process with an error indication. the proxy rigorously adhering to the service APIs presented by the extension; if the extension attempts to return data to the host process that is not of the form or type that the host is expecting, the proxy identifying the potential problem and not passing that data to the host process; detecting an error in the virtual process; and returning control to the host process with an error indication.