IP Library Granted Patent US 11,625,265
Granted Patent B2
US 11,625,265 · App. 17/347,108 · Granted Apr 11, 2023

Enabling execution of program instructions in the background

Inventors: Jason Foreman (Saint Charles, IL); Wesley Peter (Sammamish, WA)
Assignee: Salesforce, Inc.
G06F9/461G06F9/485G06F9/541G06F9/545
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,625,265
App. No.
17/347,108
Granted
Apr 11, 2023
Kind
B2
Abstract

Techniques are disclosed relating to the execution of a set of program instructions in the background. A parent environment of an application executing on a computer system may receive a request from a first child environment within the parent environment to execute a set of program instructions. The first child environment does not permit the set of program instructions to be executed within the first child environment while the application is backgrounded. In response to the request, the parent environment may spawn a second child environment within the parent environment that permits the set of program instructions to be executed while the application is backgrounded. The parent environment may cause the set of program instructions to be executed within the second child environment and may return a result of the executing to the first child environment.

Claims (38)

1. A method, comprising:

determining, by a web application executing within a first child environment contained in a parent environment of an application that is executing on a computer system, to execute a set of program instructions, wherein the set of program instructions cannot be executed within the first child environment while the application is backgrounded;

selecting, by the web application, an application program interface (API) from a plurality of APIs for communicating with the parent environment, wherein the API is selected based on an operating system executing on the computer system;

sending, by the web application via the API, a request to the parent environment to execute the set of program instructions, and wherein the parent environment is operable to spawn a second child environment in which the set of program instructions can be executed while the application is backgrounded; and

receiving, by the web application from the parent environment, a result of executing the set of program instructions within the second child environment.

2. The method of claim 1 , wherein the request specifies a location at which the set of program instructions are stored, wherein the location is external to the computer system.

3. The method of claim 1 , wherein the request specifies that the set of program instructions are to be executed periodically.

4. The method of claim 1 , wherein the web application is operable to cause execution of the set of program instructions within the first child environment in response to determining that the parent environment cannot spawn another environment in which the set of program instructions can be executed while the application is backgrounded.

5. The method of claim 1 , further comprising:

sending a data request to the parent environment for data generated by execution of the set of program instructions, wherein the result is received in response to sending the data request.

6. The method of claim 1 , wherein the parent environment is operable to instruct an operating system that is executing on the computer system to cause continued execution of the second child environment when the application is backgrounded.

7. The method of claim 1 , wherein the web application does not continue to execute while the application is backgrounded.

8. The method of claim 1 , wherein the first child environment is a webview environment that enables the web application to present one or more web pages to a user of the computer system.

9. A non-transitory computer readable medium having program instructions stored thereon that are capable of causing a computer system to perform operations comprising:

determining to execute a set of program instructions that cannot be executed within a first child environment contained in a parent environment of an application that is executing on the computer system while the application is backgrounded;

selecting an application program interface (API) from a plurality of APIs for communicating with the parent environment, wherein the API is selected based on an operating system executing on the computer system;

sending, via the API, a request to the parent environment to execute the set of program instructions, and wherein the parent environment is operable to spawn a second child environment in which the set of program instructions can be executed while the application is backgrounded; and

receiving, from the parent environment, a result of executing the set of program instructions within the second child environment.

10. The medium of claim 9 , wherein the request includes a uniform resource locator specifying a remote server system at which the set of program instructions are stored.

11. The medium of claim 9 , wherein the operations further comprise:

determining whether the set of program instructions can be provided to the parent environment for execution within the second child environment; and

causing execution of the set of program instructions within the first child environment in response to determining that the set of program instructions cannot be provided to the parent environment for execution within the second child environment.

12. The medium of claim 9 , wherein the request specifies that the set of program instructions are to be executed periodically.

13. The medium of claim 9 , wherein the request is sent to the parent environment via a bridge application that is executing within the first child environment.

14. A method, comprising:

determining, by a web application executing within a first child environment contained in a parent environment of an application that is executing on a computer system, to execute a set of program instructions, wherein the set of program instructions cannot be executed within the first child environment while the application is backgrounded;

determining, by the web application, whether the set of program instructions can be provided to the parent environment for execution within a second child environment, wherein the web application is operable to cause execution of the set of program instructions within the first child environment in response to determining that the set of program instructions cannot be provided to the parent environment for execution within the second child environment;

sending, by the web application, a request to the parent environment to execute the set of program instructions, and wherein the parent environment is capable of spawning the second child environment in which the set of program instructions can execute while the application is backgrounded; and

receiving, by the web application from the parent environment, a result of executing the set of program instructions within the second child environment.

15. The method of claim 14 , wherein sending the request includes:

communicating, by the web application, with another application executing within the first child environment to transmit the set of program instructions from the web application to the parent environment via the other application.

16. The method of claim 14 , wherein the request specifies a remote server system from which to retrieve the set of program instructions for execution in the second child environment.

17. The method of claim 14 , further comprising:

selecting, by the web application, an application program interface (API) from a plurality of APIs for communicating with the parent environment, wherein the API is selected based on an operating system executing on the computer system.

18. The method of claim 14 , further comprising:

sending a data request to the parent environment for data generated by execution of the set of program instructions, wherein the result is received in response to sending the data request.

19. The method of claim 14 , wherein the request specifies that the set of program instructions are to be executed periodically.

20. The method of claim 14 , wherein the parent environment is operable to deallocate the second child environment in response to the set of program instructions completing execution.

Assignments (2)
CHANGE OF NAME Recorded Mar 10, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 063039/0941 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2021
From: FOREMAN, JASON; PETER, WESLEY
To: SALESFORCE.COM, INC.
Reel/Frame 056536/0213 →
Continuity (2)
Continuation 16712634 · Dec 12, 2019
Related Publication 20210303335A1 · Sep 30, 2021