Patent ID: 8914813

Claim:
A system for enabling cross-browser extensions, comprising: a computing device; a translation module, implemented on the computing device, configured to: receive a cross-browser command included in a browser extension, wherein the received cross-browser command is formatted according to a cross-browser extension application program interface, and wherein the cross-browser command instructs a native browser to access a document object model of a page, and interpret the cross-browser command to issue at least one native command formatted according to a native browser extension application program interface to the native browser to execute the cross-browser command; and a DOM (document object model) interface module, implemented on the computing device, configured to run on a renderer thread of the native browser, separate from the translation module, that renders the loaded page, wherein the DOM interface module, when loaded in the renderer thread, is configured to: receive a message from the translation module to access a document object model of a page loaded in a native browser, and access the document object model in response to the message, wherein the cross-browser extension application program interface provides, by message passing from the translation module to the document object model through a thread separate from the renderer thread, a stable interface that prevents deadlocks to implement browser extensions that can operate in a plurality of different types of web browsers.