IP Library Granted Patent US 10,178,097
Granted Patent B2
US 10,178,097 · App. 15/842,739 · Granted Jan 8, 2019

System and method for embedding first party widgets in third-party applications

Inventors: Brian Lewis Cairns (Boulder, CO); Victoria Hsiao-Tsung Chou Fritz (Maplewood, NJ); Eric Benson Schoeffler (Boulder, CO); Michael Jeffrey Procopio (Boulder, CO)
Assignee: Google LLC
H04L63/101H04L63/08H04L63/126H04L67/00H04L67/06H04W4/60
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 10,178,097
App. No.
15/842,739
Granted
Jan 8, 2019
Kind
B2
Abstract

Methods and systems for providing a third party application with access to files stored on a server are disclosed. A method may include receiving, from a browser at a client device, a request for a file stored on the server, wherein the request is received via a web page provided by the third party application and rendered by the browser, the web page comprising an embedded user interface (UI) component associated with the server to access the file stored on the server, wherein the request includes a document identifier associated with the file, an application identifier of the third-party application, and an origin identifier, wherein the origin identifier is associated with the web page provided by the third party application and rendered by the browser. The method may further include authenticating the application identifier at the server, wherein authenticating the application identifier comprises determining whether the application identifier references a valid application, and based on the document identifier, the authenticated application identifier and the origin identifier, granting access to the file for the third party application via the embedded UI component.

Claims (54)

1. A method for providing a third party application with access to files stored on a server, the method comprising:

receiving, from a browser at a client device, a request for a file stored on the server, wherein the request is received via a web page provided by the third party application and rendered by the browser, the web page comprising an embedded user interface (UI) component associated with the server to access the file stored on the server, wherein the request includes: a document identifier associated with the file, an application identifier of the third-party application, and an origin identifier, wherein the origin identifier is associated with the web page provided by the third party application and rendered by the browser; authenticating the application identifier at the server, wherein authenticating the application identifier comprises determining whether the application identifier references a valid application; and

based on the document identifier, the authenticated application identifier and the origin identifier, granting access to the file for the third party application via the embedded UI component.

2. The method of claim 1 , further comprising:

receiving an indication of a user selection of the embedded UI component; and

providing a UI to allow a user to share the file with one or more other users.

3. The method of claim 1 , further comprising:

receiving an indication of a user selection of the embedded UI component; and

providing a UI to allow a user to view of a list of files stored on the sever, and to open any of the files in the list, the list comprising the file associated with the document identifier.

4. The method of claim 1 , wherein the web page comprises a plurality of embedded UI components that each provide for a different operation with respect to the file.

5. The method of claim 1 , wherein determining whether the application identifier references the valid application comprises:

determining that the application identifier references a third-party application that was previously installed by a user; and

determining that the application identifier references a third-party application that was previously authorized by the user to access the file stored on the server and associated with the document identifier.

6. The method of claim 1 , further comprising:

determining that the origin identifier and the document identifier are both associated with the application identifier.

7. The method of claim 6 , further comprising:

authenticating the origin identifier at the server, wherein authenticating the origin identifier comprises determining whether the origin identifier is associated with the valid application that is referenced by the authenticated application identifier.

8. The method of claim 6 , further comprising:

the authenticating of the application identifier and the origin identifier are performed before rendering visible at least a portion of the embedded UI component in the web page, the method further comprising:

in response to the authenticating of the application identifier and the origin identifier, rendering visible the at least the portion of the embedded UI component in the web page.

9. The method of claim 1 , wherein the authenticating of the application identifier and the origin identifier are performed after rendering visible a wrapper of the embedded UI component in the web page, wherein in response to determining at least one of the application identifier not referencing the valid application or the origin identifier not being associated with the valid application, denying the embedded UI component access to the server from the third-party application.

10. The method of claim 1 , further comprising:

including an embedded UI component client in the web page;

wrapping the embedded UI component client in an application programming interface (API), wherein the API exposes at least one functionality of the embedded UI component to the third-party application; and

sending a message with the application identifier and the origin identifier from the wrapped embedded UI component client to the embedded UI component.

11. The method of claim 10 , further comprising checking, at the embedded UI component, that the origin identifier associated with the valid third-party application matches an origin of the web page.

12. The method of claim 10 , wherein the message received at the embedded UI component from the embedded UI component client is generated using the browser, wherein the browser automatically sets the origin identifier based on an address of the web page.

13. The method of claim 1 , wherein the embedded UI component comprises one of a sharing interface, a document selection user interface, a file manager user interface, a document editing user interface, a third-party application installation interface, or a toolbar.

14. A system for providing a third party application with access to files stored on a server, the system comprising:

a memory; and

a processor, coupled to the memory, to:

receive, from a browser at a client device, a request for a file stored on the server, wherein the request is received via a web page provided by the third party application and rendered by the browser, the web page comprising an embedded user interface (UI) component associated with the server to access the file stored on the server, wherein the request includes: a document identifier associated with the file, an application identifier of the third-party application, and

an origin identifier, wherein the origin identifier is associated with the web page provided by the third party application and rendered by the browser; authenticating the application identifier at the server, wherein authenticating the application identifier comprises determining whether the application identifier references a valid application; and

based on the document identifier, the authenticated application identifier and the origin identifier, grant access to the file for the third party application via the embedded UI component.

15. The system of claim 14 , wherein the processor is further to:

receive an indication of a user selection of the embedded UI component; and

provide a UI to allow a user to share the file with one or more other users.

16. The system of claim 14 , wherein the processor is further to:

receive an indication of a user selection of the embedded UI component; and

provide a UI to allow a user to view of a list of files stored on the sever, and to open any of the files in the list, the list comprising the file associated with the document identifier.

17. The system of claim 14 , wherein the web page comprises a plurality of embedded UI components that each provide for a different operation with respect to the file.

18. A non-transitory computer readable medium storing computer executable instructions, which, when executed by a processor, causes the processor to perform a method for providing a third party application with access to files stored on a server, the method comprising:

receiving, from a browser at a client device, a request for a file stored on the server, wherein the request is received via a web page provided by the third party application and rendered by the browser, the web page comprising an embedded user interface (UI) component associated with the server to access the file stored on the server, wherein the request includes: a document identifier associated with the file, an application identifier of the third-party application, and an origin identifier, wherein the origin identifier is associated with the web page provided by the third party application and rendered by the browser; authenticating the application identifier at the server, wherein authenticating the application identifier comprises determining whether the application identifier references a valid application; and

based on the document identifier, the authenticated application identifier and the origin identifier, granting access to the file for the third party application via the embedded UI component.

19. The non-transitory computer readable medium of claim 18 , wherein the method further comprises:

receiving an indication of a user selection of the embedded UI component; and

providing a UI to allow a user to share the file with one or more other users.

20. The non-transitory computer readable medium of claim 18 , wherein the method further comprises:

receiving an indication of a user selection of the embedded UI component; and

providing a UI to allow a user to view of a list of files stored on the sever, and to open any of the files in the list, the list comprising the file associated with the document identifier.

21. The non-transitory computer readable medium of claim 18 , wherein the web page comprises a plurality of embedded UI components that each provide for a different operation with respect to the file.

22. The non-transitory computer readable medium of claim 18 , wherein determining whether the application identifier references the valid application comprises:

determining that the application identifier references a third-party application that was previously installed by a user; and

determining that the application identifier references a third-party application that was previously authorized by the user to access the file stored on the server and associated with the document identifier.

Assignments (2)
CHANGE OF NAME Recorded Jun 25, 2018
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 046428/0051 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2017
From: CAIRNS, BRIAN LEWIS; CHOU FRITZ, VICTORIA HSIAO-TSUNG; SCHOEFFLER, ERIC BENSON; PROCOPIO, MICHAEL JEFFREY
To: GOOGLE INC.
Reel/Frame 044403/0026 →
Continuity (4)
Continuation 14668965 · Mar 25, 2015
Continuation 13841663 · Mar 15, 2013
Provisional Application 61664588 · Jun 26, 2012
Related Publication 20180109532A1 · Apr 19, 2018