IP Library Granted Patent US 9,384,073
Granted Patent B2
US 9,384,073 · App. 13/409,651 · Granted Jul 5, 2016

Cross-extension messaging using a browser as an intermediary

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,384,073
App. No.
13/409,651
Granted
Jul 5, 2016
Kind
B2
Abstract

A method for mediating messages between at least two browser extensions using a web browser of a computing device includes receiving a request from a first browser extension via a messaging application programming interface provided by the web browser, wherein a receiver of the request is a second browser extension determined by the messaging application programming interface based on a requested functionality included in the request from the first browser extension. The method includes sending, using the messaging application programming interface, the request to the second browser extension when the requested functionality is available in the second browser extension, and sending an error message to the first browser extension using the messaging application programming interface when the requested functionality is not available.

Claims (50)

1. A computer-implemented method comprising:

mediating cross-extension communications between a first browser extension and a second browser extension installed in a web browser running on a computing device, the first browser extension and the second browser extension each providing respective additional functionalities to the web browser, the first browser extension being functionally isolated from the second browser extension, and being unaware of the second browser extension and the additional functionalities being provided by the second browser extension to the web browser,

wherein mediating the cross-extension communications includes:

receiving a request for a web browser functionality from the first browser extension, at a messaging application programming interface in the web browser, the request not identifying the second extension;

determining, by the messaging application programming interface, whether the requested web browser functionality included in the request from the first browser extension is an additional functionality provided to the web browser by the second extension; and

forwarding the request received from the first browser extension, by the messaging application programming interface, to the second browser extension, when the requested web browser functionality is an additional functionality provided to the web browser by the second browser extension;

intercepting, by the messaging application programming interface, an error from the second browser extension;

sending an error message to the first browser extension, by the messaging application programming interface, when the requested web browser functionality is not available, and

automatically forwarding the request received from the first browser extension, by the messaging application programming interface, to a third browser extension installed in the web browser of the computing device; and

automatically outputting, via the web browser of the computing device, an output provided by the third browser extension.

2. The method of claim 1 , wherein the first browser extension and the second browser extension are each separately packaged as an installable bundle of files including a manifest file and at least one HTML file.

3. The method of claim 1 , wherein a unique identifier associated with the second browser extension is unknown to the first browser extension, and the first browser extension communicates with the selected browser extension only via the messaging application programming interface in the web browser.

4. The method of claim 1 , further comprising:

selecting, by the messaging application programming interface, the second browser extension from a plurality of browser extensions installed in the web browser.

5. The method of claim 4 , wherein the selecting includes determining that the second browser extension includes a supported feature requested by the first browser extension.

6. The method of claim 1 , wherein the first browser extension and the second browser extension are both associated with an account of the user.

7. A non-transitory computer readable storage medium having recorded and stored thereon instructions that, when executed by a computing device, cause the computing device to mediate cross-extension communications between a first browser extension and a second browser extension installed in a web browser running on the computing device, the first browser extension and the second browser extension each providing respective additional functionalities to the web browser, the first browser extension being separate and functionally isolated from the second browser extension, and being unaware of the second browser extension and the additional functionalities being provided by the second browser extension to the web browser, wherein mediating the cross-extension communications comprises:

wherein causing the computing device to mediate communications includes:

receiving a request for a web browser functionality from the first browser extension, at a messaging application programming interface in the web browser, the request not identifying the second extension;

determining, by the messaging application programming interface, whether the requested web browser functionality included in the request from the first browser extension is an additional functionality provided to the web browser by the second extension; and

forwarding the request received from the first browser extension, by the messaging application programming interface, to the second browser extension, when the requested web browser functionality is an additional functionality provided to the web browser by the second browser extension;

intercepting, by the messaging application programming interface, an error from the second browser extension;

sending an error message to the first browser extension, by the messaging application programming interface, when the requested web browser functionality is not available and

automatically forwarding the request received from the first browser extension, by the messaging application programming interface, to a third browser extension installed in the web browser of the computing device; and

automatically outputting, via the web browser of the computing device, an output provided by the third browser extension.

8. The non-transitory computer readable storage medium of claim 7 , wherein the first browser extension and the second browser extension are each separately packaged as an installable bundle of files including a manifest file and at least one HTML file.

9. The non-transitory computer readable storage medium of claim 7 , wherein a unique identifier associated with the second browser extension is unknown to the first browser extension, and the first browser extension communicates with the selected browser extension only via the messaging application programming interface in the web browser.

10. The non-transitory computer readable storage medium of claim 7 , wherein meditating the cross-extension communications further includes:

selecting, by the messaging application programming interface, the second browser extension from a plurality of browser extensions installed in the web browser.

11. The non-transitory computer readable storage medium of claim 10 , wherein the selecting includes determining that the second browser extension includes a supported feature requested by the first browser extension.

12. The non-transitory computer readable storage medium of claim 7 , wherein the first browser extension and the second browser extension are both associated with an account of the user.

13. The non-transitory computer readable storage medium of claim 7 , wherein the request for the web browser functionality from the first browser extension includes a request for a speech functionality.

14. An apparatus comprising:

a memory; and

a processor operably coupled to the memory and configured to execute code to mediate cross-extension communications between a first browser extension and a second browser extension installed in a web browser of the apparatus, the first browser extension and the second browser extension each providing respective additional functionalities to the web browser, the first browser extension being separate and functionally isolated from the second browser extension, and being unaware of the second browser extension and the additional functionalities being provided by the second browser extension to the web browser,

wherein meditating the cross-extension communications includes:

receiving a request for a web browser functionality from the first browser extension, at a messaging application programming interface in the web browser, the request not identifying the second extension;

determining, by the messaging application programming interface, whether the requested web browser functionality included in the request from the first browser extension is an additional functionality provided to the web browser by the second extension; and

forwarding the request received from the first browser extension, by the messaging application programming interface, to the second browser extension, when the requested web browser functionality is an additional functionality provided to the web browser by the second browser extension; and

intercepting, by the messaging application programming interface, an error from the second browser extension;

sending an error message to the first browser extension, by the messaging application programming interface, when the requested web browser functionality is not available and

automatically forwarding the request received from the first browser extension, by the messaging application programming interface, to a third browser extension installed in the web browser of the computing device; and

automatically outputting, via the web browser of the computing device, an output provided by the third browser extension.

15. The apparatus of claim 14 , wherein the first browser extension and the second browser extension are each separately packaged as an installable bundle of files including a manifest file and at least one HTML file.

16. The apparatus of claim 14 , wherein a unique identifier associated with the second browser extension is unknown to the first browser extension, and the first browser extension communicates with the selected browser extension only via the messaging application programming interface in the web browser.

17. The apparatus of claim 14 , wherein meditating the cross-extension communications further includes:

selecting, by the messaging application programming interface, the second browser extension from a plurality of browser extensions installed in the web browser.

18. The apparatus of claim 17 , wherein the selecting includes determining that the second browser extension includes a supported feature requested by the first browser extension.

19. The apparatus of claim 14 , wherein the first browser extension and the second browser extension are both associated with an account of the user.

20. The apparatus of claim 14 , wherein the request for the web browser functionality from the first browser extension includes a request for a speech functionality.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2012
From: MAZZONI, DOMINIC; KAY, ERIK
To: GOOGLE INC.
Reel/Frame 028420/0396 →