IP Library Granted Patent US 11,057,494
Granted Patent B2
US 11,057,494 · App. 16/883,462 · Granted Jul 6, 2021

Seamless context switch

Inventors: Peng Zhuang (Santa Clara, CA); Yi Meng (Fremont, CA)
Assignee: GOOGLE LLC
H04L67/32G06F9/445H04L67/02H04L67/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 11,057,494
App. No.
16/883,462
Granted
Jul 6, 2021
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for switching contexts in a browser-based application. In one aspect, a system includes a browser execution module configured to receive a request to load a browser-based application with first context data, request application data and the first context data, and receive the application data and the first context data. The system includes a state machine module configured to generate a state machine to access and store context data and load the application with the first context data by storing the first context data in the state machine. The system further includes a state change module configured to intercept a request to load the application with second context data for a second application account, request the second context data, and updated the application with the second context data by storing the second context data in the state machine.

Claims (74)

1. A system comprising:

at least one processor; and

at least one memory storing instructions that, when executed, cause the least one processor to:

execute, via a client device, application data and first context data for a first application account to run a browser-based application in a browser;

during execution of the application data and the first context data for the first application account, receive a request to load the browser-based application with the application data and second context data for a second application account;

in response to receiving the request to load the browser-based application with the application data and the second context data for the second application account:

intercept the request to load the browser-based application with the application data and the second context data for the second application account;

store the first context data in a state machine;

transmit, to a server, an alternate request for the second context data without requesting the application data; and

receive, from the server, and responsive to transmitting the alternate request, the second context data for the second application account; and

in response to receiving the second context data for the second application account:

load the running browser-based application with the second context data without reloading the browser-based application.

2. The system of claim 1 , wherein the instructions further cause the at least one processor to:

subsequent to loading the running browser-based application with the second context data:

receive a further request to load the browser-based application with the application data and the first context data for the first application account;

in response to receiving the further request to load the browser-based application with the application data and the first context data for the first application account:

intercept the further request to load the browser-based application with the application data and the first context data for the first application account;

store the second context data in the state machine;

retrieve, from the state machine, the stored first context data; and

in response to retrieving the stored first context data for the first application account:

load the running browser-based application with the stored first context data without reloading the browser-based application.

3. The system of claim 2 , wherein the state machine, including at least the stored first context data and the stored second context data, is stored locally on the client device.

4. The system of claim 2 ,

wherein the instructions to store the first context data in the state machine cause the at least one processor to store the first context data in a portion of a hierarchically-organized data structure associated with the first context data; and

wherein the instructions to store the second context data in the state machine cause the at least one processor to store the second context data in an additional portion of the hierarchically-organized data structure associated with the second context data that is in addition to the portion associated with the first context data.

5. The system of claim 1 , wherein the instructions further cause the at least one processor to:

in response to intercepting the request to load the browser-based application with the application data and the second context data for the second application account:

generate the alternate request for the second context data, wherein the instructions to generate the alternate request cause the at least one processor to:

modify the request to load the browser-based application with the application data and the second context data for the second application account to only include the second context data for the second application.

6. The system of claim 1 , wherein the request to load the browser-based application with the application data and the second context data for the second application account is received from within the browser-based application.

7. The system of claim 1 , wherein the first context data includes first account data specific to the first application account and first account settings specific to the first application account, and wherein the second context data includes second account data specific to the second application account and second account settings specific to the second application account.

8. The system of claim 1 , wherein the browser-based application is an electronic mail application, wherein the first application account is a first electronic mail account, and wherein the second application account is a second electronic mail account.

9. The system of claim 8 , wherein the request to load the browser-based application with the application data and the second context data for the second application account comprises a request to switch from the first electronic mail account to the second electronic mail account.

10. A method implemented by one or more processors comprising:

executing, via a client device, application data and first context data for a first application account to run a browser-based application in a browser;

during execution of the application data and the first context data for the first application account, receiving a request to load the browser-based application with the application data and second context data for a second application account;

in response to receiving the request to load the browser-based application with the application data and the second context data for the second application account:

intercepting the request to load the browser-based application with the application data and the second context data for the second application account;

storing the first context data in a state machine;

transmitting, to a server, an alternate request for the second context data without requesting the application data; and

receiving, from the server, and responsive to transmitting the alternate request, the second context data for the second application account; and

in response to receiving the second context data for the second application account:

loading the running browser-based application with the second context data without reloading the browser-based application.

11. The method of claim 10 , further comprising:

subsequent to loading the running browser-based application with the second context data:

receiving a further request to load the browser-based application with the application data and the first context data for the first application account;

in response to receiving the further request to load the browser-based application with the application data and the first context data for the first application account:

intercepting the further request to load the browser-based application with the application data and the first context data for the first application account;

storing the second context data in the state machine;

retrieving, from the state machine, the stored first context data; and

in response to retrieving the stored first context data for the first application account:

loading the running browser-based application with the stored first context data without reloading the browser-based application.

12. The method of claim 11 , wherein the state machine, including at least the stored first context data and the stored second context data, is stored locally on the client device.

13. The method of claim 11 ,

wherein storing the first context data in the state machine comprises storing the first context data in a portion of a hierarchically-organized data structure associated with the first context data; and

wherein storing the second context data in the state machine comprises storing the second context data in an additional portion of the hierarchically-organized data structure associated with the second context data that is in addition to the portion associated with the first context data.

14. The method of claim 10 , further comprising:

in response to intercepting the request to load the browser-based application with the application data and the second context data for the second application account:

generating the alternate request for the second context data, wherein generating the alternate request comprises:

modifying the request to load the browser-based application with the application data and the second context data for the second application account to only include the second context data for the second application.

15. The method of claim 10 , wherein the request to load the browser-based application with the application data and the second context data for the second application account is received from within the browser-based application.

16. The method of claim 10 , wherein the first context data includes first account data specific to the first application account and first account settings specific to the first application account, and wherein the second context data includes second account data specific to the second application account and second account settings specific to the second application account.

17. The method of claim 10 , wherein the browser-based application is an electronic mail application, wherein the first application account is a first electronic mail account, and wherein the second application account is a second electronic mail account.

18. The method of claim 17 , wherein the request to load the browser-based application with the application data and the second context data for the second application account comprises a request to switch from the first electronic mail account to the second electronic mail account.

19. A non-transitory computer-readable medium storing instructions that, when executed, cause at least one processor to:

execute, via a client device, application data and first context data for a first application account to run a browser-based application in a browser;

during execution of the application data and the first context data for the first application account, receive a request to load the browser-based application with the application data and second context data for a second application account;

in response to receiving the request to load the browser-based application with the application data and the second context data for the second application account:

intercept the request to load the browser-based application with the application data and the second context data for the second application account;

store the first context data in a state machine;

transmit, to a server, an alternate request for the second context data without requesting the application data; and

receive, from the server, and responsive to transmitting the alternate request, the second context data for the second application account; and

in response to receiving the second context data for the second application account:

load the running browser-based application with the second context data without reloading the browser-based application.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2020
From: ZHUANG, PENG; MENG, YI
To: GOOGLE INC.
Reel/Frame 052908/0959 →
CHANGE OF NAME Recorded Jun 11, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 052910/0454 →
Continuity (2)
Continuation 15445320 · Feb 28, 2017
Related Publication 20200287988A1 · Sep 10, 2020