IP Library Granted Patent US 8,973,016
Granted Patent B1
US 8,973,016 · App. 14/229,576 · Granted Mar 3, 2015

Processing an input event within an application

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 8,973,016
App. No.
14/229,576
Granted
Mar 3, 2015
Kind
B1
Abstract

Processing an input event within an application includes detecting an input event within an application executing on a first thread, the input event being associated with an event handler. A separate execution corresponding to a current state of the application is performed on a second thread based on the event handler associated with the input event. Within the separate execution, a determination is made whether the event handler modifies at least one of a document associated with the application or a default behavior of the application. In a case where the event handler does not modify at least one of the document or the behavior, the subject technology refrains from invoking the event handler on the first thread.

Claims (51)

1. A system for processing an input event within an application, the system comprising:

one or more processors; and

a machine-readable medium comprising instructions stored therein, which when executed by the processors, cause the processors to perform operations comprising:

detecting an input event within an application executing on a first thread, the input event being associated with an event handler;

performing a separate execution corresponding to a current state of the application on a second thread based on the event handler associated with the input event;

determining, within the separate execution, whether the event handler modifies at least one of a document associated with the application or a default behavior of the application; and

refraining, in a case where the event handler does not modify at least one of the document or the default behavior, from invoking the event handler on the first thread.

2. The system of claim 1 , the operations further comprising:

invoking, in a case where the event handler modifies at least one of the document or the default behavior, the event handler on the first thread.

3. The system of claim 2 , wherein invoking the event handler on the first thread comprises queuing the input event for execution on the first thread.

4. The system of claim 1 , the operations further comprising:

determining that a threshold time period has passed in association with the separate execution; and

refraining, in response to determining that the threshold time period has passed, from invoking the event handler on the first thread.

5. The system of claim 1 , the operations further comprising:

determining that an availability of the first thread meets a predetermined threshold of availability;

invoking, in response to determining that the availability meets the predetermined threshold of availability, the event handler on the first thread.

6. The system of claim 1 , wherein performing the separate execution corresponding to the current state of the application comprises backdating a timestamp of the input event to correspond with a timestamp of the first thread.

7. The system of claim 1 , wherein performing the separate execution comprises:

obtaining a snapshot of the application, the snapshot corresponding to the current state of the application at a time of detecting the input event;

performing the separate execution based on the obtained snapshot.

8. The system of claim 1 , wherein the separate execution runs in parallel with execution of the application.

9. The system of claim 1 , wherein execution of the application and the separate execution are performed using Javascript.

10. A machine-readable medium comprising instructions stored therein, which when executed by a system, cause the system to perform operations comprising:

detecting an input event within an application executing on a first thread, the input event being associated with an event handler;

performing a separate execution corresponding to a current state of the application on a second thread based on the event handler associated with the input event;

determining whether the separate execution is limited to read-only access for the application; and

refraining, in a case where the separate execution is limited to read-only access, from invoking the event handler on the first thread.

11. The machine-readable medium of claim 10 , wherein determining whether the separate execution is limited to read-only access comprises:

determining, within the separate execution, whether the event handler modifies a document associated with the application;

determining, within the separate execution, whether the event handler modifies a default behavior of the application.

12. The machine-readable medium of claim 10 , the operations further comprising:

invoking, in a case where the separate execution is not limited to read-only access, the event handler on the first thread.

13. The machine-readable medium of claim 12 , wherein invoking the event handler on the first thread comprises queuing the input event for execution on the first thread.

14. The machine-readable medium of claim 10 , the operations further comprising:

determining that a threshold time period has passed in association with the separate execution; and

refraining, in response to determining that the threshold time period has passed, from invoking the event handler on the first thread.

15. The machine-readable medium of claim 10 , the operations further comprising:

determining that an availability of the first thread meets a predetermined threshold of availability;

invoking, in response to determining that the availability meets the predetermined threshold of availability, the event handler on the first thread.

16. The machine-readable medium of claim 10 , wherein performing the separate execution corresponding to the current state of the application comprises backdating a timestamp of the input event to correspond with a timestamp of the first thread.

17. The machine-readable medium of claim 10 , wherein performing the separate execution comprises:

obtaining a snapshot of the application, the snapshot corresponding to the current state of the application at a time of detecting the input event;

performing the separate execution based on the obtained snapshot.

18. The machine-readable medium of claim 10 , wherein the separate execution runs in parallel with execution of the application.

19. The machine-readable medium of claim 10 , wherein execution of the application and the separate execution are performed using Javascript.

20. A method for processing an input event within an application, the method comprising:

detecting an input event within an application executing on a first thread, the input event being associated with an event handler;

performing a separate execution corresponding to a current state of the application on a second thread based on the event handler associated with the input event;

determining whether the separate execution is limited to read-only access for the application;

refraining, in a case where the separate execution is limited to read-only access, from invoking the event handler on the first thread; and

invoking, in a case where the separate execution is not limited to read-only access, the event handler on the first thread.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2014
From: HATCH, SIMON; PENNER, ERIC SCOTT
To: GOOGLE INC.
Reel/Frame 032669/0206 →