IP Library Granted Patent US 9,876,849
Granted Patent B2
US 9,876,849 · App. 14/547,086 · Granted Jan 23, 2018

Opening local applications from browsers

Inventors: Jessie Lynne Newman (New York, NY); Frank Pape, III (Cortlandt Manor, NY); Ali Akhavan Bitaghsir (New York, NY); Brian Schneider (Brooklyn, NY); James Michael McCollum (Brooklyn, NY); Eric Huayu Zhang (Jersey City, NJ); Rachel Werner Barton (Golden, CO); Marc Miller (New York, NY); Rishi Sharma (San Francisco, CA)
Assignee: GOOGLE LLC
H04L67/10G06F17/30165G06F17/30174G06F17/30194G06F21/00H04L67/06H04L67/42
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,876,849
App. No.
14/547,086
Granted
Jan 23, 2018
Kind
B2
Abstract

Systems and methods are disclosed herein for opening local applications from browsers. A request to open a document associated with a cloud computing system is received from a user. A determination is made that the local device has a copy of the document, and a local application is selected to open the local copy. A message is transmitted to open the local copy with the selected local application.

Claims (57)

1. A computer-implemented method, comprising:

receiving, by a sync client on a local device, a request from a first application on the local device to open a document specified by a user via a user interface of the first application, the document having a document identifier and associated with a first file stored on a server, the request comprising the document identifier and a user identifier of the user, wherein the first application is a browser and the sync client is a component separate from the browser;

determining, by the sync client, that the user associated with the user identifier is an authorized user of the synch client;

determining, by the sync client, that a second file associated with the document identifier is stored on the local device, wherein the second file is created by the sync client by downloading a copy of the first file to the local device;

determining, by the sync client, which applications on the local device are capable of opening the second file;

transmitting, by the sync client to the first application, a list comprising one or more of the determined applications that are on the local device and are capable of opening the second file, wherein the determined applications are separate from the browser and the sync client;

receiving, by the sync client from the first application, an indication of a second application selected from the list by the user via the user interface of the first application; and

transmitting, by the sync client, a message to the second application to open the second file with the second application.

2. The method of claim 1 , wherein:

a contents file stores a list of local application identifiers corresponding to a plurality of local applications that are installed on the local device and registered with the sync client;

the message to open the second file comprises an application identifier associated with the second application; and

the method further comprises determining whether the application identifier is included in the contents file.

3. The method of claim 1 , wherein determining that the user is an authorized user of the synch client comprises:

receiving a first hash that is computed based on at least one pre-shared key;

computing, by the first application and based on the at least one pre-shared key, a second hash;

comparing the first hash to the second hash, wherein the user is an authorized user of the synch client if the first hash matches the second hash.

4. The method of claim 3 , wherein the first and second hashes are each computed based at least in part on at least one nonce.

5. The method of claim 1 , wherein at least one of the request, the list, and the indication includes standard input or output streams of data associated with the first application.

6. The method of claim 1 , further comprising creating the second file from a copy of the first file.

7. The method of claim 1 , wherein:

the browser comprises a browser extension; and

the user provides the request via the browser.

8. The method of claim 1 , wherein the list is transmitted to the second application only if the second file is synchronized with the first file.

9. A system comprising:

a memory; and

one or more processors, coupled to the memory,

to:

receive, by a sync client on a local device, a request from a first application on the local device to open a document specified by a user via a user interface of the first application, the document having a document identifier and associated with a first file stored on a server, the request comprising the document identifier and a user identifier of the user, wherein the first application is a browser and the sync client is a component separate from the browser;

determine, by the sync client, that the user associated with the user identifier is an authorized user of the synch client;

determine, by the sync client, that a second file associated with the document identifier is stored on the local device, wherein the second file is created by the sync client by downloading a copy of the first file to the local device;

determine, by the sync client, which applications on the local device are capable of opening the second file;

transmit, by the sync client to the first application, a list comprising one or more of the determined applications that are on the local device and are capable of opening the second file, wherein the determined applications are separate from the browser and the sync client;

receive, by the sync client from the first application, an indication of a second application selected from the list by the user via the user interface of the first application; and

transmit, by the sync client, a message to the second application to open the second file with the second application.

10. The system of claim 9 , wherein:

a contents file stores a list of local application identifiers corresponding to a plurality of local applications that are installed on the local device and registered with the sync client;

the message to open the second file comprises an application identifier associated with the second application; and

the message to open the second file is transmitted based on a determination that the application identifier is included in the contents file.

11. The system of claim 9 , wherein to determine that the user is an authorized user of the synch client, the one or more processors are to:

receive a first hash that is computed based on at least one pre-shared key;

compute, by the first application and based on the at least one pre-shared key, a second hash;

compare the first hash to the second hash, wherein the user is authorized to access the second file if the first hash matches the second hash.

12. The system of claim 11 , wherein the first and second hashes are each computed based at least in part on at least one nonce.

13. The system of claim 9 , wherein at least one of the request, the list, and the indication includes standard input or output streams of data associated with the first application.

14. The system of claim 9 , wherein the one or more processors are to create the second file from a copy of the first file.

15. The system of claim 9 , wherein:

the browser comprises a browser extension; and

the user provides the request via the browser.

16. The system of claim 9 , wherein the list is transmitted to the second application only if the second file is synchronized with the first file.

17. A non-transitory computer readable medium comprising instructions, which when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving, by a sync client on a local device, a request from a first application on the local device to open a document specified by a user via a user interface of the first application, the document having a document identifier and associated with a first file stored on a server, the request comprising the document identifier and a user identifier of the user, wherein the first application is a browser and the sync client is a component separate from the browser;

determining, by the sync client, that the user associated with the user identifier is an authorized user of the synch client;

determining, by the sync client, that a second file associated with the document identifier is stored on the local device, wherein the second file is created by the sync client by downloading a copy of the first file to the local device;

determining, by the sync client, which applications on the local device are capable of opening the second file;

transmitting, by the sync client to the first application, a list comprising one or more of the determined applications that are on the local device and are capable of opening the second file, wherein the determined applications are separate from the browser and the sync client;

receiving, by the sync client from the first application, an indication of a second application selected from the list by the user via the user interface of the first application; and

transmitting, by the sync client, a message to the second application to open the second file with the second application.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2014
From: NEWMAN, JESSIE LYNNE; PAPE, FRANK, III; BITAGHSIR, ALI AKHAVAN; SCHNEIDER, BRIAN; MCCOLLUM, JAMES MICHAEL; ZHANG, ERIC HUAYU; BARTON, RACHEL WERNER; MILLER, MARC; SHARMA, RISHI
To: GOOGLE INC.
Reel/Frame 034202/0698 →
Continuity (2)
Provisional Application 62075825 · Nov 5, 2014
Related Publication 20160127452A1 · May 5, 2016