Installer-free applications using native code modules and persistent local storage
AssigneeGoogle Inc.
InventorsMatthew Papakipos, Antoine Labour, Eric Uhrhane
Life of this patent
Estimating the term…
Abstract
Some embodiments provide a system that executes an application. During operation, the system obtains a resource list associated with the application and stores a set of resources including a native code module from the resource list through communications over a network connection, wherein the resources are stored in persistent local storage. The application then loads the application in the web browser and loads the native code module into a secure runtime environment. Next, the application executes the application independently of the network connection using the native code module and the stored resources.
Claims30
A method comprising:
- obtaining in a computing system a resource list over a network connection, wherein the resource list identifies resources associated with an application, the application providing functionality to a user of the application when the application is executed using the resources identified in the resource list, wherein the functionality comprises a plurality of features of the application;
- obtaining the resources through communications over the network connection and storing the resources in local storage, the local storage being on the computing system and accessible by the computing system without the network connection, wherein the resources include a native code module that includes binary code that can run directly on a central processing unit of the computing system, and a non-native code module;
- loading the application on the computing system;
- loading the native code module into a secure runtime environment on the computing system;
- and
- executing the application on the computing system independently of the network connection, including executing the binary code of the native code module in the secure runtime environment directly on the central processing unit of the computing system on which the application is executing, wherein the binary code is executed on behalf of the application to provide to a user of the application a first subset of the plurality of features of the application and the application uses the non-native code module to provide a user of the application a second subset of the plurality of features different than the first subset.
A computing system comprising:
- one or more processors;
- an application;
- a local server module configured to:
- obtain a resource list over a network connection, wherein the resource list identifies resources associated with the application, the application providing functionality to a user of the application when the application is executed using the resources identified in the resource list, wherein the functionality comprises a plurality of features of the application;
- and
- obtain the resources through communications over a network connection, and store the resources in local storage, the local storage being on the computing system and accessible by the local server module without the network connection, wherein the resources include a native code module that includes binary code that can run directly on the processors, and a non-native code module;
- and
- a secure runtime environment configured to execute the application on the computing system independently of the network connection, including execute the binary code of the native code module directly on the processors of the computing system on which the application is being executed, wherein the binary code is executed on behalf of the application to provide to a user of the application a first subset of the plurality of features of the application and the application uses the non-native code module to provide a user of the application a second subset of the plurality of features different than the first subset.
A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for executing an application, the method comprising:
- obtaining in the computer a resource list over a network connection, wherein the resource list identifies resources associated with the application, the application providing functionality to a user of the application when the application is executed using the resources identified in the resource list, wherein the functionality comprises a plurality of features of the application;
- obtaining the resources through communications over the network connection, and storing the resources in local storage, the local storage being on the computer and accessible by the computer without the network connection, wherein the resources include a native code module that includes binary code that can run directly on a central processing unit of the computer, and a non-native code module;
- loading the application;
- loading the native code module into a secure runtime environment;
- and
- executing the application on the computer independently of the network connection, including executing the binary code of the native code module in the secure runtime environment directly on the central processing unit of the computer on which the application is executing, wherein the binary code is executed on behalf of the application to provide to a user of the application a first subset of the plurality of features of the application and the application uses the non-native code module to provide a user of the application a second subset of the plurality of features different than the first subset.
Dependencies are inferred from the claim text.