Self-recovering application
First Claim
1. A method for recovering a process in an application, the method comprising:
- running, within an application executing at a computing device, a guest process, the guest process storing and processing untrusted content;
running, within the application and in parallel with the guest process, an embedder process, the embedder process storing and processing trusted content and a guest process state, the guest process state comprising stored or displayed values and data of the guest process for re-loading the guest process;
signaling for updating the guest process state in the embedder process based on asynchronous communication between the guest process and the embedder process controlled or triggered by a user input event corresponding to an event to be handled by the guest process;
signaling for adding the event to be handled to a queue for processing by the guest process, the queue comprising multiple events to be handled by the guest process;
signaling for receiving, at the embedder process, an indication of an execution failure of the guest process;
signaling for recovering the guest process after the execution failure based on the guest process state stored by the embedder process;
signaling for handling, by the embedder process, the event added to the queue until the guest process is recovered; and
if the guest process has become operational after the indication of the execution failure of the guest process, then signaling for handling, by the guest process, unprocessed events in the queue.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for recovering a process in an application are disclosed. According to some aspects, a guest process is run within an application executing at a computing device. The guest process stores and processes untrusted content. An embedder process is run within the application and in parallel with the guest process. The embedder process stores and processes trusted content and a guest process state. The guest process state is periodically updated based on asynchronous communication between the guest process and the embedder process. The embedder process receives an indication of an execution failure of the guest process. The guest process is recovered after the execution failure based on the guest process state stored by the embedder process.
20 Citations
20 Claims
-
1. A method for recovering a process in an application, the method comprising:
-
running, within an application executing at a computing device, a guest process, the guest process storing and processing untrusted content; running, within the application and in parallel with the guest process, an embedder process, the embedder process storing and processing trusted content and a guest process state, the guest process state comprising stored or displayed values and data of the guest process for re-loading the guest process; signaling for updating the guest process state in the embedder process based on asynchronous communication between the guest process and the embedder process controlled or triggered by a user input event corresponding to an event to be handled by the guest process; signaling for adding the event to be handled to a queue for processing by the guest process, the queue comprising multiple events to be handled by the guest process; signaling for receiving, at the embedder process, an indication of an execution failure of the guest process; signaling for recovering the guest process after the execution failure based on the guest process state stored by the embedder process; signaling for handling, by the embedder process, the event added to the queue until the guest process is recovered; and if the guest process has become operational after the indication of the execution failure of the guest process, then signaling for handling, by the guest process, unprocessed events in the queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable medium for recovering a process in an application, the computer-readable medium comprising instructions which, when executed by a computer, cause the computer to implement a method, the method comprising:
-
running, within an application executing at the computer, a guest process, the guest process storing and processing untrusted content for presentation to a user of the computer; running, within the application and in parallel with the guest process, an embedder process, the embedder process storing and processing trusted content and a guest process state, the embedder process being stored locally at the computer and lacking bugs and the guest process state comprising stored or displayed values and data of the guest process for re-loading the guest process; signaling for updating the guest process state in the embedder process based on asynchronous communication between the guest process and the embedder process controlled or triggered by a user input event corresponding to an event to be handled by the guest process; signaling for adding the event to be handled to a queue for processing by the guest process, the queue comprising multiple events to be handled by the guest process; signaling for receiving, at the embedder process, an indication of an execution failure of the guest process; signaling for recovering the guest process after the execution failure based on the guest process state stored by the embedder process; signaling for handling, by the embedder process, the event added to the queue until the guest process is recovered; and if the guest process has become operational after the indication of the execution failure of the guest process, then signaling for handling, by the guest process, unprocessed events in the queue. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A system for recovering a process in an application, the system comprising:
-
one or more processors; and a memory comprising instructions which, when executed by the one or more processors, cause the one or more processors to implement a method, the method comprising; running, within an application executing at a computing device, a guest process, the guest process storing and processing untrusted content; running, within the application and in parallel with the guest process, an embedder process, the embedder process storing and processing trusted content and a guest process state, the guest process state comprising stored or displayed values and data of the guest process for re-loading the guest process; signaling for updating the stored guest process state at the embedder process controlled or triggered by a user input event corresponding to an event to be handled by the guest process; signaling for adding the event to be handled to a queue for processing by the guest process, the queue comprising multiple events to be handled by the guest process; signaling for receiving, at the embedder process, an indication of an execution failure of the guest process; signaling for recovering the guest process after the execution failure based on the guest process state stored by the embedder process; signaling for handling, by the embedder process, the event added to the queue until the guest process is recovered; and if the guest process has become operational after the indication of the execution failure of the guest process, then signaling for handling, by the guest process, unprocessed events in the queue. - View Dependent Claims (17, 18, 19, 20)
-
Specification