IP Library › Granted Patent US 11,489,845
Granted Patent B1
US 11,489,845 · App. 17/031,692 · Granted Nov 1, 2022

Speculative rendering

Inventors: Ji Feng (Sunnyvale, CA); Gautam Altekar (Sunnyvale, CA); Yang Yu (Sunnyvale, CA)
Assignee: Menlo Security, Inc.
H04L63/123G06F9/451H04L63/0281H04L63/1408
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,489,845
App. No.
17/031,692
Filed
Sep 24, 2020
Granted
Nov 1, 2022
Kind
B1
Art Unit
2494
USPC
726/12
Abstract

Predictive rendering (also referred to herein as speculative rendering) is disclosed. The predictive rendering is performed by an endpoint browser in response to a user input made by a user. The predictive rendering is verified using a surrogate browser that is executed on a remote server. The verification can be performed asynchronously.

Claims (50)

1. A system, comprising:

a processor configured to:

perform, at a client device, a predictive rendering using an endpoint browser executing on the client device, in response to a user input made by a user interacting with the endpoint browser;

receive, from a surrogate browser system that is executing on a remote server, an indication that the performed predictive rendering at the client device is not correct based on a verification of the performed predictive rendering,

wherein the surrogate browser system is configured to use a surrogate browser to provide a copy of the user input to a remote resource; and

in response to receiving the indication that the predictive rendering is not correct, based at least in part on the verification, perform an adaptive correction on the client device,

wherein the endpoint browser suspends additional predictive rendering at the client device in response to a determination that the predictive rendering is not correct; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system of claim 1 , wherein the indication is received asynchronously to the predictive rendering.

3. The system of claim 1 , wherein the processor is further configured to prefetch contextual information.

4. The system of claim 3 , wherein the contextual information comprises one or more Document Object Model (DOM) elements.

5. The system of claim 3 , wherein the contextual information comprises one or more display lists.

6. The system of claim 3 , wherein the contextual information is used to trigger a rendering of a native user interface widget.

7. The system of claim 1 , wherein the processor is further configured to prefetch a plurality of versions of an element.

8. The system of claim 7 , wherein the element comprises a hover element.

9. The system of claim 1 , wherein the adaptive correction replaces the predictive rendering based on feedback from the surrogate browser.

10. The system of claim 1 , wherein, in response to performing the adaptive correction, remote echoing is used for handling subsequent user input.

11. The system of claim 1 , wherein, in response to performing the adaptive correction, a notification is presented to the user.

12. The system of claim 1 , wherein the processor is configured to cease speculative predictive rendering if a threshold amount of information is not received from the surrogate browser.

13. The system of claim 1 , wherein the processor is configured to determine whether the predictive rendering should be performed for a given field.

14. The system of claim 1 , wherein the user input comprises one or more keystrokes.

15. The system of claim 1 , wherein the user input comprises a hover action over an element.

16. The system of claim 1 , wherein the user input comprises a touch action over an element.

17. A method, comprising:

performing, at a client device, a predictive rendering using an endpoint browser executing on the client device, in response to a user input made by a user interacting with the endpoint browser;

receiving, from a surrogate browser system that is executing on a remote server, an indication that the performed predictive rendering at the client device is not correct based on a verification of the performed predictive rendering,

wherein the surrogate browser system is configured to use a surrogate browser to provide a copy of the user input to a remote resource; and

in response to receiving the indication that the predictive rendering is not correct, based at least in part on the verification, performing an adaptive correction on the client device,

wherein the endpoint browser suspends additional predictive rendering at the client device in response to a determination that the predictive rendering is not correct.

18. The method of claim 17 , wherein the indication is received asynchronously to the predictive rendering.

19. The method of claim 17 , further comprising prefetching contextual information.

20. The method of claim 19 , wherein the contextual information comprises one or more Document Object Model (DOM) elements.

21. The method of claim 19 , wherein the contextual information comprises one or more display lists.

22. The method of claim 19 , wherein the contextual information is used to trigger a rendering of a native user interface widget.

23. The method of claim 17 , further comprising prefetching a plurality of versions of an element.

24. The method of claim 23 , wherein the element comprises a hover element.

25. The method of claim 17 , wherein the adaptive correction replaces the predictive rendering based on feedback from the surrogate browser.

26. The method of claim 17 , wherein, in response to performing the adaptive correction, remote echoing is used for handling subsequent user input.

27. The method of claim 17 , wherein, in response to performing the adaptive correction, a notification is presented to the user.

28. The method of claim 17 , further comprising ceasing speculative predictive rendering if a threshold amount of information is not received from the surrogate browser.

29. The method of claim 17 , further comprising determining whether the predictive rendering should be performed for a given field.

30. The method of claim 17 , wherein the user input comprises one or more keystrokes.

31. The method of claim 17 , wherein the user input comprises a hover action over an element.

32. The method of claim 17 , wherein the user input comprises a touch action over an element.

33. A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

performing, at a client device, a predictive rendering using an endpoint browser executing on the client device, in response to a user input made by a user interacting with the endpoint browser;

receiving, from a surrogate browser system that is executing on a remote server, an indication that the performed predictive rendering at the client device is not correct based on a verification of the performed predictive rendering,

wherein the surrogate browser system is configured to use a surrogate browser to provide a copy of the user input to a remote resource; and

in response to receiving the indication that the predictive rendering is not correct, based at least in part on the verification, performing an adaptive correction on the client device,

wherein the endpoint browser suspends additional predictive rendering at the client device in response to a determination that the predictive rendering is not correct.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2020
From: FENG, JI; ALTEKAR, GAUTAM; YU, YANG
To: MENLO SECURITY, INC.
Reel/Frame 054423/0943 →
Continuity (5)
Provisional Application 62904873 · Sep 24, 2019
Provisional Application 62983270 · Feb 28, 2020
Provisional Application 62989471 · Mar 13, 2020
Provisional Application 62992798 · Mar 20, 2020
Provisional Application 63048610 · Jul 6, 2020
Cited By (5)
US 12,335,658 US 12,386,730 US 12,443,418 US 12,585,478 US 12,634,284