IP Library Granted Patent US 8,589,950
Granted Patent B2
US 8,589,950 · App. 12/985,338 · Granted Nov 19, 2013

Processing user input events in a web browser

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,589,950
App. No.
12/985,338
Granted
Nov 19, 2013
Kind
B2
Abstract

A method and computing device are provided for processing user events received via a user interface, such as a touchscreen, in multiple threads. When a user event is received for a target element in a webpage, the user event is dispatched to both a main browser thread and a secondary thread. The secondary thread processes user events in accordance with established default actions defined within the browser, while the main thread processes the user events in accordance with any event handlers defined for that target element. The main thread processing may be delayed by other interleaved task, and the secondary thread may be given priority over the main thread. When the secondary thread completes processing, an updated webpage is displayed. When the main thread subsequently completes processing, its updated rendering of the webpage is displayed. The secondary thread thus provides an early user interface response to the user event.

Claims (37)

1. A method, comprising:

in response to a user event received for a target element in a webpage, the webpage being received and currently rendered for display by a device, the device being provided with a browser engine configured with a default handling action for the received user event,

concurrently dispatching the user event for processing in a main thread and a secondary thread;

processing the user event in the main thread using an event handler associated with said target element and received with the webpage by the device;

processing the user event in the secondary thread using the default handling action at least partially concurrently with the processing of the user event in the main thread;

while the processing of the user event in the main thread and the processing of the user event in the secondary thread are executing concurrently, the main thread determining that the default handling action is to be prevented for the user event;

the main thread notifying the secondary thread to terminate; and

updating the current rendering of the webpage according to the processing completed by that first one of the main thread.

2. The method of claim 1 , wherein said rendering is updated according to the processing completed by the secondary thread, the method further comprising:

displaying said updated current rendering of the webpage;

upon completion of said processing of the user event by the main thread, the main thread updating said current rendering of said webpage for display; and

displaying said webpage according to the processing completed by the main thread.

3. The method of claim 1 , wherein said processing of the user event by the secondary thread commences before said processing of the user event by the main thread.

4. The method of claim 1 , wherein said processing of the user event by the secondary thread is delayed by a predetermined period.

5. The method of claim 1 , further comprising displaying said current rendering of the webpage.

6. The method of claim 1 , wherein said user event is either a mouse event or a touch event.

7. The method of claim 1 , wherein said event handler associated with said target element is assigned to said target element.

8. The method of claim 1 , wherein said event handler associated with said target element is assigned to an ancestor of said target element.

9. The method of claim 1 , wherein the event handler comprises a JavaScript script provided for said webpage.

10. The method of claim 1 , wherein the default handling action comprises either one of a scrolling action and a zoom action.

11. The method of claim 1 , wherein the event handler is comprised in the webpage as received by the device.

12. The method of claim 1 , wherein the event handler is referenced in a header of the webpage and retrieved by the device separately from the webpage.

13. The method of claim 1 , wherein the event handler comprises an instruction to pre-empt execution of the default handling action, the method further comprising the main thread notifying the secondary thread to terminate, such that the current rendering of the webpage is updated according to the processing completed by the main thread.

14. A device, including:

a display;

at least one communication subsystem;

a browser engine;

at least one processor in communication with the display and the at least one communication subsystem, the at least one processor being configured to execute the browser engine and to enable:

in response to a user event received for a target element in a webpage, the webpage being received using the at least one communication subsystem and currently rendered for display by the computing device, the browser engine being configured with a default handling action for the received user event, concurrently dispatching the user event for processing in a main thread and a secondary thread;

processing the user event in the main thread using an event handler associated with said target element and received with the webpage by the computing device;

processing the user event in the secondary thread using the default handling action at least partially concurrently with the processing of the user event in the main thread;

while the processing of the user event in the main thread and the processing of the user event in the secondary thread are executing concurrently, the main thread determining that the default handling action is to be prevented for the user event;

the main thread notifying the secondary thread to terminate; and

updating the current rendering of the webpage according to the processing completed by that first one of the main thread.

15. The computing device of claim 14 , wherein the event handler is comprised in the webpage as received by the computing device.

16. The computing device of claim 14 , wherein the event handler is referenced in a header of the webpage and retrieved by the computing device separately from the webpage.

17. The computing device of claim 14 , wherein the event handler comprises an instruction to pre-empt execution of the default handling action.

Assignments (6)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Oct 18, 2013
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 031439/0714 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER FROM 12/985,337 PREVIOUSLY RECORDED ON REEL 026341 FRAME 0948. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT SHOULD HAVE BEEN RECORDED AGAINST 12/985,338.. Recorded Jul 8, 2011
From: FIDLER, ELI JOSHUA; NILSSON, KARL ARVID; TAPUSKA, DAVID FRANCIS; MAK, GENEVIEVE ELIZABETH
To: RESEARCH IN MOTION LIMITED
Reel/Frame 026565/0786 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 4, 2011
From: RESEARCH IN MOTION CORPORATION
To: RESEARCH IN MOTION LIMITED
Reel/Frame 026539/0927 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2011
From: TREAT, ADAM CHESTER
To: RESEARCH IN MOTION CORPORATION
Reel/Frame 026342/0072 →