IP Library Granted Patent US 10,664,648
Granted Patent B2
US 10,664,648 · App. 15/935,600 · Granted May 26, 2020

Webpage rendering using a remotely generated layout node tree

Inventors: Dan Amiga (Ramat Hasharon, IL); Dor Knafo (Tel Aviv-Jaffa, IL); Yoav Horman (Tel Aviv-Jaffa, IL); Yehoshua Chen (Tel Aviv-Jaffa, IL)
Assignee: CA, Inc.
G06F40/154G06F16/957G06F40/14H04L63/00H04L67/02
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 10,664,648
App. No.
15/935,600
Granted
May 26, 2020
Kind
B2
Abstract

Webpage rendering using a remotely generated layout node tree. In one embodiment, a method may include generating, at a remote network device, a layout tree based on webpage data received from a webserver, translating, at the remote network device, the layout tree into a layout node tree, serializing, at the remote network device, the layout node tree, sending, from the remote network device, the serialized layout node tree to a local network device, receiving, at the local network device, the serialized layout node tree, deserializing, at the local network device, the serialized layout node tree to obtain the layout node tree, constructing, at the local network device, a webpage using the layout node tree, and rendering, at the local network device, the webpage in a browser, the webpage being rendered to appear substantially the same as if the webpage were rendered on the remote network device using the layout tree.

Claims (58)

1. A computer-implemented method for webpage rendering using a remotely generated layout node tree, at least a portion of the method being performed by a remote network device comprising one or more processors and by a local network device comprising one or more processors, the method comprising:

(a) generating, at the remote network device, a layout tree based on webpage data received from a webserver, the webpage data received from the webserver including malicious executable content resulting in the layout tree including the malicious executable content;

(b) translating, at the remote network device, the layout tree into a layout node tree by traversing each object in the layout tree, translating traversed markup language objects into markup language nodes and traversed style sheet objects into style sheet nodes, and adding the translated markup language nodes and the translated style sheet nodes to the layout node tree, the translating of the layout tree into the layout node tree resulting in the malicious executable content being excluded from the layout node tree;

(c) serializing, at the remote network device, the layout node tree;

(d) sending, from the remote network device, the serialized layout node tree to the local network device over a network;

(e) receiving, at the local network device, the serialized layout node tree;

(f) deserializing, at the local network device, the serialized layout node tree to obtain the layout node tree;

(g) constructing, at the local network device, a webpage using the layout node tree; and

(h) rendering, at the local network device, the webpage in a browser, the webpage being rendered to appear as if the webpage were rendered on the remote network device using the layout tree.

2. The method of claim 1 , wherein:

the markup language objects are Hypertext Markup Language (HTML) objects;

the markup language nodes are HTML nodes;

the style sheet objects are Cascading Style Sheet (CSS) objects; and

the style sheet nodes are CSS nodes.

3. The method of claim 2 , wherein the translating at (b) further includes omitting, from the layout tree, any traversed object that is not an HTML object or a CSS object.

4. The method of claim 3 , wherein the translating at (b) further includes, for each omitted object, connecting any descendant object of the omitted object in the layout tree to any ancestor object of the omitted object in the layout tree.

5. The method of claim 2 , wherein the translating at (b) of each traversed HTML object into an HTML node includes computing a CSS for the HTML object and adding the computed CSS to the HTML node.

6. The method of claim 1 , wherein the generating at (a) is performed in response to the browser, at the local network device, requesting access to the webserver.

7. The method of claim 1 , wherein the webpage data received from the webserver includes one or more of Hypertext Markup Language (HTML) data, Cascading Style Sheet (CSS) data, Fonts data, data, and Scalable Vector Graphics (SVG) data.

8. The method of claim 1 , further comprising:

(i) detecting, at the local network device, input from a user entered into the webpage rendered in the browser;

(j) sending, from the local network device to the remote network device, the input;

(k) sending, from the remote network device to the webserver, the input;

(l) receiving, at the remote network device, updated webpage data from the webserver; and

(m) repeating (a) through (h) based on the updated webpage data received from the webserver.

9. The method of claim 8 , wherein:

the repeating of (b) is performed by only translating markup language objects and style sheet objects that were not previously translated; and

the constructing at (g) includes reusing markup language nodes and style sheet nodes that were previously translated at (b) and previously deserialized at (f).

10. The method of claim 8 , wherein the input from the user includes one or more of mouse input, keyboard input, and touchscreen input.

11. One or more non-transitory computer-readable media comprising one or more computer-readable instructions that, when executed by one or more processors of a remote network device or of a local network device, cause the remote network device or the local network device to perform a method for webpage rendering using a remotely generated layout node tree, the method comprising:

(a) generating, at the remote network device, a layout tree based on webpage data received from a webserver, the webpage data received from the webserver including malicious executable content resulting in the layout tree including the malicious executable content;

(b) translating, at the remote network device, the layout tree into a layout node tree by traversing each object in the layout tree, translating traversed markup language objects into markup language nodes and traversed style sheet objects into style sheet nodes, and adding the translated markup language nodes and the translated style sheet nodes to the layout node tree, the translating of the layout tree into the layout node tree resulting in the malicious executable content being excluded from the layout node tree;

(c) serializing, at the remote network device, the layout node tree;

(d) sending, from the remote network device, the serialized layout node tree to the local network device over a network;

(e) receiving, at the local network device, the serialized layout node tree;

(f) deserializing, at the local network device, the serialized layout node tree to obtain the layout node tree;

(g) constructing, at the local network device, a webpage using the layout node tree; and

(h) rendering, at the local network device, the webpage in a browser, the webpage being rendered to appear as if the webpage were rendered on the remote network device using the layout tree.

12. The one or more non-transitory computer-readable media of claim 11 , wherein:

the markup language objects are Hypertext Markup Language (HTML) objects;

the markup language nodes are HTML nodes;

the style sheet objects are Cascading Style Sheet (CSS) objects; and

the style sheet nodes are CSS nodes.

13. The one or more non-transitory computer-readable media of claim 12 , wherein the translating at (b) further includes omitting, from the layout tree, any traversed object that is not an HTML object or a CSS object.

14. The one or more non-transitory computer-readable media of claim 13 , wherein the translating at (b) further includes, for each omitted object, connecting any descendant object of the omitted object in the layout tree to any ancestor object of the omitted object in the layout tree.

15. The one or more non-transitory computer-readable media of claim 12 , wherein the translating at (b) of each traversed HTML object into an HTML node includes computing the CSS for the HTML object and adding the computed CSS to the HTML node.

16. The one or more non-transitory computer-readable media of claim 11 , wherein the generating at (a) is performed in response to the browser, at the local network device, requesting access to the webserver.

17. The one or more non-transitory computer-readable media of claim 11 , wherein the webpage data received from the webserver includes one or more of Hypertext Markup Language (HTML) data, Cascading Style Sheet (CSS) data, Fonts data, script data, and Scalable Vector Graphics (SVG) data.

18. The one or more non-transitory computer-readable media of claim 11 , wherein the method further comprises:

(i) detecting, at the local network device, input from a user entered into the webpage rendered in the browser;

(j) sending, from the local network device to the remote network device, the input;

(k) sending, from the remote network device to the webserver, the input;

(l) receiving, at the remote network device, updated webpage data from the webserver; and

(m) repeating (a) through (h) based on the updated webpage data received from the web server.

19. The one or more non-transitory computer-readable media of claim 18 , wherein:

the repeating of (b) is performed by only translating markup language objects and style sheet objects that were not previously translated; and

the constructing at (g) includes reusing markup language nodes and style sheet nodes that were previously translated at (b) and previously deserialized at (f).

20. The one or more non-transitory computer-readable media of claim 18 , wherein the input from the user includes one or more of mouse input, keyboard input, and touchscreen input.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2018
From: AMIGA, DAN; KNAFO, DOR; CHEN, YEHOSHUA; HORMAN, YOAV
To: SYMANTEC CORPORATION
Reel/Frame 045435/0868 →